繁体   English   中英

Statsmodels SARIMAX:如何处理 maxlag 错误?

[英]Statsmodels SARIMAX: How can I deal with the maxlag error?

我正在尝试使用 SARIMAX 预测季节性时间序列。 时间序列包含 PV 馈入的每日最大值,这导致假设为 365 天的周期性。

这是我的代码:

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 时,它正在工作,但结果很糟糕,因为这根本不是我的季节性。 问题是,maxlag 或 nobs 在哪里定义,我可以相应地更改它们吗?

SARIMAX 函数的文档字符串只讲述季度或月度数据,而不是每日数据。 是否有人有使用 SARIMAX 的经验并且已经根据每日值对时间序列进行了预测? 我已经搜索了互联网以解决问题,但我找不到任何有用的东西。

类似的问题已经出现在这里How to set maxlag when Forecasting Sales for small data in SARIMAX? 在这里如何更改 ARMAX.predict 的 maxlag?

但我不明白如何在我的情况下克服这个问题,因为我没有任何外生的价值观要提交。

我还建立了一个基于 ARIMA 的模型,我可以使用它进行正确的预测。 由于我没有非季节性的时间序列,我认为使用 SARIMAX 获得更好的结果可能是个好主意。 不幸的是,我无法处理这个错误。

提前感谢您的帮助!

您需要几年(完整的季节性周期)才能估计 SARIMAX 的季节性部分,请参阅https://github.com/statsmodels/statsmodels/issues/3529

作为替代方案,您可以使用样条线或傅立叶级数将季节性模式建模为exog 参见例如http://robjhyndman.com/hyndsight/longseasonality/

这是一个使用 patsy 公式为 OLS 和 ARMA 创建季节性样条的草稿笔记本。 SARIMAX 将以同样的方式工作。 https://gist.github.com/josef-pkt/1ea164439b239b228557

你可以试试这个,它解决了我的问题:

mod_sl_ar = sm.tsa.statespace.SARIMAX(train[var],exog=train[arimax_vars],order= [0,1,2] , seasonal_order= [0,1,1,52] ,mle_regression=True)
start_params = np.r_[[0] * (mod_sl_ar.k_params - 1), 1]
res_sl_ar = mod_sl_ar.fit(start_params=start_params)
predictions = res_hl_ar.forecast(len(test),exog=test[arimax_vars], dynamic= True)

资源

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM