Lê *_*ạch 7 python frequency statsmodels
我尝试通过sm.tsa.statespace.SARIMAX拟合Autoregression。但是我遇到警告,然后我想为此模型设置频率信息。谁曾经遇到过,您能帮我吗?
fit1 = sm.tsa.statespace.SARIMAX(train.Demand, order=(1, 0, 0),
enforce_stationarity=False,
enforce_invertibility=False).fit()
y_hat['AR'] = fit1.predict(start="1975-01-01", end="1975-12-01", dynamic=True)
plt.figure(figsize=(16,8))
plt.plot( train['Demand'], label='Train')
plt.plot(test['Demand'], label='Test')
plt.plot(y_hat_avg['AR'], label='AR')
plt.legend(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_model.py:165: ValueWarning: No frequency
information was provided, so inferred frequency MS will be used.
% freq, ValueWarning)
Run Code Online (Sandbox Code Playgroud)
谢谢
如果您的数据确实是周期性的,并且时间序列中没有间隔,则pandas可以推断出频率。
如果推断出的频率对您来说正确,则可以按照set pandas.tseries.index.DatetimeIndex.freq上的答案与inferred_freq一起使用。
例如
train.index = pd.DatetimeIndex(train.index.values,
freq=train.index.inferred_freq)
fit1 = sm.tsa.statespace.SARIMAX(...)
Run Code Online (Sandbox Code Playgroud)
但是请注意,如果您的数据不是真正的周期性数据,这仍然可以给出DatetimeIndex其频率None。
例如,如果您有每日数据,但缺少一天,inferred_freq则将通过None尝试并通过freq="D"将引发ValueError异常。在这种情况下,请尝试构建您的报告,DataFrame以便所有日期都存在,并且您预测的列中的值都None在这些日期上。然后,您可以missing="drop"在ARIMA模型中使用(或其他方法)。
| 归档时间: |
|
| 查看次数: |
10546 次 |
| 最近记录: |