我试图通过sm.tsa.statespace.SARIMAX拟合自回归。但是我遇到一个警告,然后我想为这个模型设置频率信息。
谁曾经见过它,你能帮我吗
fit1=sm.tsa.statespace.SARIMAX(train.Demand,order=(1,0,0),
强制_平稳性=假,
强制执行_可逆性=False).fit()
y_hat['AR']=fit1.预测(start=“1975-01-01”,end=“1975-12-01”,dynamic=True)
plt.图(figsize=(16,8))
plt.绘图(列车['Demand'],标签='train')
plt.plt(测试['Demand'],标签='test')
plt.绘图(y_hat_avg['AR',label='AR'))
plt.图例(loc='best')
plt.show()
C:\Users\thach.le\Anaconda3\lib\site packages\statsmodels-0.8.0-py3.6-win-
amd64.egg\statsmodels\tsa\base\tsa\u model.py:165:value警告:无频率
已提供信息,因此将使用推断频率MS。
%频率、值(警告)
谢谢
如果您的数据确实是周期性的,并且您的时间序列中没有间隔,那么pandas可以推断频率
如果推断的频率对您来说是正确的,您可以使用它,方法是在Set pandas.tseries.index.DatetimeIndex.freq中使用推断的频率
比如说
train.index=pd.DatetimeIndex(train.index.values,
freq=列车索引(freq)
fit1=sm.tsa.statespace.SARIMAX(…)
但请注意,如果您的数据不是真正的周期性数据,则仍然可以给出频率为None的DatetimeIndex
例如,如果您有每日数据,但缺少一天,则推断的_freq将为None,尝试传递freq=“D”将引发ValueError异常。在这种情况下,请尝试构建数据框架,以便所有日期都存在,并且您预测的列中的值在这些日期都是None。然后,您可以对您的ARIMA模型使用missing=“drop”(或任何内容)