3
scipy.stats
模塊中可用的分佈具有fit
方法(http://docs.scipy.org/doc/scipy/reference/stats.html)來估計給定輸入數據的分佈參數。有沒有辦法獲得擬合參數的協方差矩陣,還是我不得不求助於使用scipy.optimize.curve_fit
?用SciPy擬合參數的協方差矩陣
scipy.stats
模塊中可用的分佈具有fit
方法(http://docs.scipy.org/doc/scipy/reference/stats.html)來估計給定輸入數據的分佈參數。有沒有辦法獲得擬合參數的協方差矩陣,還是我不得不求助於使用scipy.optimize.curve_fit
?用SciPy擬合參數的協方差矩陣
參數估計的協方差需要最大似然估計的Hessian,它在scipy.stats中不可用。
statsmodels有一個通用的最大似然類,我只是修復,因此它可以處理這樣的情況。 (我在準備拉請求的中間。固定參數更難以處理超過scipy.stats.distribution。)
http://statsmodels.sourceforge.net/devel/examples/generated/example_gmle.html
mod_par = MyPareto(data)
res = mod_par.fit()
print res.summary()
MyPareto Results
==============================================================================
Dep. Variable: y Log-Likelihood: -149.32
Model: MyPareto AIC: 306.6
Method: Maximum Likelihood BIC: 317.1
Date: Sat, 29 Jun 2013
Time: 11:17:43
No. Observations: 100
Df Residuals: 97
Df Model: 3
==============================================================================
coef std err z P>|z| [95.0% Conf. Int.]
------------------------------------------------------------------------------
shape 2.8604 0.286 10.000 0.000 2.300 3.421
loc -1.2970 4.48e-06 -2.9e+05 0.000 -1.297 -1.297
scale 3.3032 8.06e-06 4.1e+05 0.000 3.303 3.303
==============================================================================
沒有看過的代碼,但我的猜測無論如何,'distrib.fit'可能是'curve_fit'的一個包裝。 – rectummelancolique
我不認爲這是這種情況。 'curve_fit'使用Marquardt-Levenberg算法(非線性最小二乘法)進行擬合。 'distrib.fit'方法使用Maximum-Likelihood。 – xvtk