Python 值警告:未提供频率信息,因此将使用推断的频率MS
我试图通过sm.tsa.statespace.SARIMAX拟合自回归。但是我遇到一个警告,然后我想为这个模型设置频率信息。 谁曾经见过它,你能帮我吗Python 值警告:未提供频率信息,因此将使用推断的频率MS,python,pandas,frequency,statsmodels,Python,Pandas,Frequency,Statsmodels,我试图通过sm.tsa.statespace.SARIMAX拟合自回归。但是我遇到一个警告,然后我想为这个模型设置频率信息。 谁曾经见过它,你能帮我吗 fit1 = sm.tsa.statespace.SARIMAX(train.Demand, order=(1, 0, 0), enforce_stationarity=False, enforce_invertibility=Fal
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)
谢谢如果您的数据确实是周期性的,并且您的时间序列中没有间隔,那么
熊猫
可以推断频率
如果推断的频率对您来说是正确的,您可以通过以下步骤使用它:
比如说
train.index = pd.DatetimeIndex(train.index.values,
freq=train.index.inferred_freq)
fit1 = sm.tsa.statespace.SARIMAX(...)
但请注意,如果您的数据不是真正的周期性数据,则仍然可以给出频率为None
的DatetimeIndex
例如,如果您有每日数据,但缺少一天,则
推断的_freq
将为None
,尝试传递freq=“D”
将引发ValueError
异常。在这种情况下,请尝试构建数据框架
,以便所有日期都存在,并且您预测的列中的值在这些日期都是None
。然后,您可以将missing=“drop”
(或任何内容)与您的ARIMA
模型一起使用。这个问题也可以标记为[pandas],由于错误仅在将日期时间索引的数据帧发送到statsmodels函数时发生。是否有理由不执行此操作没关系,在链接的问题中找到它。