我正在尝试使用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函数的docstring只说明每季度或每月的数据,而不是每日数据。是否有人有使用SARIMAX的经验,并且已经使用基于日期值的时间序列进行了预测?我已经在网上找过了,想解决这个问题,但我找不到任何有用的东西。
类似的问题已经出现在这里How to set maxlag when Forecasting Sales for smaller data in SARIMAX?和这里How to change maxlag for ARMAX.predict?
但在我的例子中,我不知道如何克服这个问题,因为我没有任何外生值可以提交。
我还建立了一个基于ARIMA的模型,我可以用它进行适当的预测。因为我没有非季节性的时间序列,所以我认为使用SARIMAX来获得更好的结果可能是一个好主意。不幸的是,我不能处理这个错误。
提前感谢您的帮助!
发布于 2017-03-10 21:04:30
你需要几年(完整的季节周期)才能估计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
https://stackoverflow.com/questions/42702010
复制相似问题