2017-03-09 40 views
0

我試圖預測使用SARIMAX的季節性時間序列。時間序列包含每日PV饋入的最大值,這導致假定365天的週期性。Statsmodels SARIMAX:我該如何處理maxlag錯誤?

這裏是我的代碼:

mod= SARIMAX(realy.Max, order=(0,1,1), seasonal_order=(0,1,1,365)) 
results_SARIMAX = mod.fit(disp= -1) 

seasonal_order設置s到365,因爲我的週期性。我還根據一些預先考慮的因素分別設置變量p,d,q,P,D,Q。 我的問題是,執行的代碼後,得出了以下錯誤:

ValueError: maxlag should be < nobs 

當我設置對於s值從365降低到即150這是工作,但效果不好,因爲這ISN」我的季節性。問題是,maxlag或nobs在哪裏定義,我能夠相應地更改它們?

SARIMAX函數的文檔字符串只是說明季度或月度數據而不是日常數據。 有人有與SARIMAX合作的經驗,並且已經根據日常價值做了一系列時間序列的預測嗎?我已經搜索了互聯網來解決這個問題,但是我找不到任何有用的東西。

類似的問題已經來到了這裏 How to set maxlag when Forecasting Sales for smaller data in SARIMAX? 這裏 How to change maxlag for ARMAX.predict?

但我不知道如何解決這個問題在我的情況,因爲我沒有任何外源性值提交。

我還建立了一個基於ARIMA的模型,我能夠做出適當的預測。由於我沒有非季節性的時間序列,我認爲使用SARIMAX獲得更好的結果可能是一個好主意。不幸的是,我無法處理這個錯誤。

感謝您的幫助提前!

+0

數據如何多年,你呢? – user333700

+1

對不起,我想到了。我獲得了2.5年的數據。 – carlsberg

+0

顯然,同時設置Q = 1和s = 365會出現問題。通過設置Q = 0和S = 365它正在工作。雖然,我不明白這一點。據我瞭解,在季節性ARIMA模型中,我有三個可以使用的旋鈕,分別是P,Q,D。它們中的三個不得大於1。設定Q = 1意味着,我將我的季節性滯後誤差等於s = 365的倍數加到我的時間序列預測中。當它只與Q = 0一起工作時,我再也沒有季節性了! – carlsberg

回答

1

您需要幾年時間(全季節週期)才能估算SARIMAX的季節性部分,請參閱https://github.com/statsmodels/statsmodels/issues/3529

作爲替代方案,您可以使用樣條或fourier系列將季節模式建模爲exog。例如見http://robjhyndman.com/hyndsight/longseasonality/

這是一個使用patsy公式爲OLS和ARMA創建季節性樣條的筆記本草稿。 SARIMAX將以同樣的方式工作。 https://gist.github.com/josef-pkt/1ea164439b239b228557

+0

感謝您的回答。我會檢查這是否有幫助。 – carlsberg

相關問題