scipy.stats.gaussian_kde.

set_bandwidth#

gaussian_kde.set_bandwidth(bw_method=None)[source]#

使用給定方法計算估算器頻寬。

在呼叫 set_bandwidth 後計算的新頻寬,會用於後續評估估計密度。

參數:
bw_method字串 (str)、純量或可呼叫物件,選填

用於計算估算器頻寬的方法。可以是 ‘scott’、‘silverman’、純量常數或可呼叫物件。如果是純量,將直接用作 kde.factor。如果是可呼叫物件,應接受 gaussian_kde 實例作為唯一參數並傳回純量。如果為 None (預設),則不執行任何操作;將保留目前的 kde.covariance_factor 方法。

註解

版本 0.11 新增。

範例

>>> import numpy as np
>>> import scipy.stats as stats
>>> x1 = np.array([-7, -5, 1, 4, 5.])
>>> kde = stats.gaussian_kde(x1)
>>> xs = np.linspace(-10, 10, num=50)
>>> y1 = kde(xs)
>>> kde.set_bandwidth(bw_method='silverman')
>>> y2 = kde(xs)
>>> kde.set_bandwidth(bw_method=kde.factor / 3.)
>>> y3 = kde(xs)
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots()
>>> ax.plot(x1, np.full(x1.shape, 1 / (4. * x1.size)), 'bo',
...         label='Data points (rescaled)')
>>> ax.plot(xs, y1, label='Scott (default)')
>>> ax.plot(xs, y2, label='Silverman')
>>> ax.plot(xs, y3, label='Const (1/3 * Silverman)')
>>> ax.legend()
>>> plt.show()
../../_images/scipy-stats-gaussian_kde-set_bandwidth-1.png