本文簡要介紹 python 語言中 scipy.stats.rv_histogram.fit
的用法。
用法:
rv_histogram.fit(data, *args, **kwds)#
從數據中返回對形狀(如果適用)、位置和比例參數的估計。默認估計方法是最大似然估計 (MLE),但也可以使用矩量法 (MM)。
擬合的起始估計由輸入參數給出;對於未提供初始估計的任何參數,調用
self._fitstart(data)
來生成此類參數。通過傳入關鍵字參數
f0
、f1
、...、fn
(用於形狀參數)和floc
和fscale
(分別用於位置和比例參數),可以將某些參數固定為特定值。- data: 數組 或
CensoredData
實例 用於估計分布參數的數據。
- arg1, arg2, arg3,…: 浮點數,可選
任何 shape-characterizing 參數的起始值(未提供的將通過調用
_fitstart(data)
來確定)。沒有默認值。- **kwds: 浮點數,可選
loc:分布位置參數的初始猜測。
尺度:分布尺度參數的初始猜測。
特殊關鍵字參數被認為是固定某些參數:
f0…fn :保持各自的形狀參數固定。或者,可以通過名稱指定要修複的形狀參數。例如,如果
self.shapes == "a, b"
、fa
和fix_a
等效於f0
,並且fb
和fix_b
等效於f1
。floc:將位置參數固定為指定值。
fscale:將比例參數固定為指定值。
優化器:要使用的優化器。優化器必須將
func
和起始位置作為前兩個參數,加上args
(用於傳遞給要優化的函數的額外參數)和disp=0
以抑製作為關鍵字參數的輸出。方法:使用的方法。默認為“MLE”(最大似然估計); “MM”(矩量法)也可用。
- data: 數組 或
- parameter_tuple: 浮點數元組
估計任何形狀參數(如果適用),然後是位置和比例。對於大多數隨機變量,將返回形狀統計信息,但也有例外(例如
norm
)。
- 類型錯誤,ValueError
如果輸入無效
FitError
如果擬合失敗或產生的擬合無效
參數 ::
返回 ::
拋出 ::
注意:
使用
method="MLE"
(默認),通過最小化負對數似然函數來計算擬合。對於超出分布支持的觀測值,應用較大的有限懲罰(而不是無限負對數似然)。和
method="MM"
,通過最小化第一個之間的相對誤差的 L2 範數來計算擬合k原始(大約為零)數據矩和相應的分布矩,其中k是非固定參數的數量。更準確地說,目標函數是:(((data_moments - dist_moments) / np.maximum(np.abs(data_moments), 1e-8))**2).sum()
其中常數
1e-8
避免在數據矩消失的情況下被零除。通常,這個誤差範數可以減少到零。請注意,標準矩量法可能會產生一些數據超出擬合分布支持的參數;這個實現並沒有阻止這種情況。對於任何一種方法,都不能保證返回的答案是全局最優的;它可能隻是局部最優的,或者優化可能完全失敗。如果數據包含
np.nan
、np.inf
或-np.inf
中的任何一個,則fit
方法將引發RuntimeError
。例子:
生成一些數據來擬合:從
beta
分布中抽取隨機變量>>> from scipy.stats import beta >>> a, b = 1., 2. >>> x = beta.rvs(a, b, size=1000)
現在我們可以擬合所有四個參數(
a
、b
、loc
和scale
):>>> a1, b1, loc1, scale1 = beta.fit(x)
我們還可以使用一些有關數據集的先驗知識:讓我們保持
loc
和scale
固定:>>> a1, b1, loc1, scale1 = beta.fit(x, floc=0, fscale=1) >>> loc1, scale1 (0, 1)
我們還可以使用
f
-keywords 來固定形狀參數。要保持 zero-th 形狀參數a
等於 1,請使用f0=1
或等效的fa=1
:>>> a1, b1, loc1, scale1 = beta.fit(x, fa=1, floc=0, fscale=1) >>> a1 1
並非所有分布都返回形狀參數的估計值。例如,
norm
僅返回位置和規模的估計值:>>> from scipy.stats import norm >>> x = norm.rvs(a, b, size=1000, random_state=123) >>> loc1, scale1 = norm.fit(x) >>> loc1, scale1 (0.92087172783841631, 2.0015750750324668)
相關用法
- Python SciPy rv_histogram.expect用法及代碼示例
- Python SciPy rv_histogram.entropy用法及代碼示例
- Python SciPy rv_continuous.entropy用法及代碼示例
- Python SciPy rv_continuous.fit用法及代碼示例
- Python SciPy rv_continuous.expect用法及代碼示例
- Python SciPy rv_discrete.entropy用法及代碼示例
- Python SciPy interpolate.make_interp_spline用法及代碼示例
- Python SciPy stats.anderson用法及代碼示例
- Python SciPy ClusterNode.pre_order用法及代碼示例
- Python SciPy stats.iqr用法及代碼示例
- Python SciPy FortranFile.read_record用法及代碼示例
- Python SciPy ndimage.correlate用法及代碼示例
- Python SciPy special.exp1用法及代碼示例
- Python SciPy special.expn用法及代碼示例
- Python SciPy signal.czt_points用法及代碼示例
- Python SciPy interpolate.krogh_interpolate用法及代碼示例
- Python SciPy ndimage.morphological_gradient用法及代碼示例
- Python SciPy distance.sokalmichener用法及代碼示例
- Python SciPy linalg.eigvalsh_tridiagonal用法及代碼示例
- Python SciPy linalg.cdf2rdf用法及代碼示例
- Python SciPy csc_array.diagonal用法及代碼示例
- Python SciPy fft.idctn用法及代碼示例
- Python SciPy linalg.LaplacianNd用法及代碼示例
- Python SciPy linalg.solve_circulant用法及代碼示例
- Python SciPy hierarchy.ward用法及代碼示例
注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.stats.rv_histogram.fit。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。