我正在嘗試使用statsmodels將泊松分佈擬合到我的數據中,但是我對結果感到困惑,並且該如何使用該庫。將統計模型中的泊松分佈擬合到數據中
我的真實數據將是一系列數字,我認爲我應該能夠描述爲具有泊松分佈加上一些異常值,所以最終我想對數據做一個穩健的擬合。
但是出於測試目的,我只是用scipy.stats.poisson
samp = scipy.stats.poisson.rvs(4,size=200)
因此,要適應這種使用statsmodels我想,我只是需要有一個恆定的「endog」
res = sm.Poisson(samp,np.ones_like(samp)).fit()
創建數據集
打印res.summary()
Poisson Regression Results
==============================================================================
Dep. Variable: y No. Observations: 200
Model: Poisson Df Residuals: 199
Method: MLE Df Model: 0
Date: Fri, 27 Jun 2014 Pseudo R-squ.: 0.000
Time: 14:28:29 Log-Likelihood: -404.37
converged: True LL-Null: -404.37
LLR p-value: nan
==============================================================================
coef std err z P>|z| [95.0% Conf. Int.]
------------------------------------------------------------------------------
const 1.3938 0.035 39.569 0.000 1.325 1.463
==============================================================================
好吧,這看起來不正確的,但是,如果我做
res.predict()
我得到一個4.03的數組(這是測試樣本的平均值)。 所以基本上,首先我非常困惑如何解釋statsmodel的這個結果,其次我應該做一些完全不同的事情,如果我對分佈的魯棒參數估計感興趣而不是適應趨勢,但我應該怎麼做呢?
編輯 我真的應該給出更多的細節來回答我的問題的第二部分。
我有一個事件發生在開始時間後的隨機時間。當我繪製許多事件延遲時間的直方圖時,我發現分佈看起來像一個縮放的泊松分佈加上幾個異常點,這些點通常是由我的底層系統中的問題引起的。所以我只想找到數據集的預期時間延遲,排除異常值。如果不是針對異常值,我可以簡單地找到平均時間。我想我可以手動排除它們,但我認爲我可以找到更嚴格的東西。
編輯 在進一步的思考,我會考慮其他的分佈,而不是用Poissonion和我的問題的細節堅持很可能從原來的問題分心,但我在這裏給他們留下反正。
「魯棒」是什麼意思?強大的異常值,強大的錯誤指標,強大的數值問題,......? – user333700
我的意思是強大到異常值 – robochat
我在我的回覆中添加了一些關於異常強勁估計的評論。我剛纔開始研究它,但是在statsmodels中可用之前還有很長的路要走。 – user333700