ValueWarning: Информация о частоте не была предоставлена, поэтому будет использоваться MS предполагаемой частоты

Я пытаюсь подогнать авторегрессию по sm.tsa.statespace.SARIMAX. Но я встречаю предупреждение, тогда я хочу установить частоту информации для этой модели. Кто встречался с этим, вы можете мне помочь?

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)

Спасибо

1 ответ

Если ваши данные действительно периодические, и у вас нет пробелов во временных рядах, тогда pandas могу вывести частоту.

Если выведенная частота выглядит для вас правильно, вы можете использовать ее, следуя ответу на /questions/38311948/ustanovite-pandastseriesindexdatetimeindexfreq-s-pomoschyu-inferredfreq

Например

train.index = pd.DatetimeIndex(train.index.values,
                               freq=train.index.inferred_freq)
fit1 = sm.tsa.statespace.SARIMAX(...)

Но обратите внимание, что это все еще может дать DatetimeIndex чья частота None если ваши данные не являются действительно периодическими.

Например, если у вас есть ежедневные данные и один день отсутствует, то inferred_freq будет None и пытается пройти freq="D" поднимет ValueError исключение. В этом случае попробуйте собрать DataFrame чтобы присутствовали все даты, а значения в столбцах, которые вы прогнозируете, None в эти даты. Тогда вы можете использовать missing="drop" (или что угодно) с вашим ARIMA модель.

Другие вопросы по тегам