statsmodel.SARIMAX .forecast () метод не выполняется - PullRequest
0 голосов
/ 23 ноября 2018

Я пытаюсь использовать модель SARIMAX для прогнозирования TS.Тем не менее, я получил какую-то ошибку, которую я не знаю, как справиться.Мой код прост:

import statsmodels.api as sm

fit = sm.tsa.statespace.SARIMAX(train).fit()
sarima = fit.forecast()

данные поезда выглядят как

            y
ds  
2015-01-07  1
2015-01-14  64
2015-01-21  16
2015-01-28  50
2015-02-04  7

Я получил ошибку

 /usr/local/lib/python3.6/dist-packages/statsmodels/tsa/base/datetools.py in 
_date_from_idx(d1, idx, freq)
     84     offset. For now, this needs to be taken care of before you get 
     here.
     85     """
---> 86     return _maybe_convert_period(d1) + int(idx) * 
     _freq_to_pandas[freq]
     87 
     88 

TypeError: unsupported operand type(s) for *: 'int' and 'NoneType'

Есть идеи, что я делаю неправильно?

1 Ответ

0 голосов
/ 23 ноября 2018

SARIMA - довольно сложная прогностическая модель скользящего среднего с множеством параметров и нюансов.Вам нужно будет тщательно изучить детали этого подхода, чтобы убедиться, что вы используете его надлежащим образом.Для простой реализации модели для получения результата должен помочь следующий пример:

Код:

import matplotlib.pyplot as plt
import statsmodels.api as sm
import numpy as np

np.random.seed(100)

data = np.sort(np.random.uniform(0, 1, size=30))
steps_to_predict = 5

model = sm.tsa.statespace.SARIMAX(endog=data,order=(2,0,0),enforce_stationarity=False)
sarima = model.fit()
print(sarima.summary())

# plot   
fig, ax = plt.subplots(1,1, figsize=(20,10))
ax.set_xlim(0,40)
ax.plot(train, "ro-", linewidth=2, markersize=12)
ax.plot(list(range(30,35)), sarima.forecast(steps_to_predict), "bo-", linewidth=2, markersize=12)

Вывод:

enter image description here

*** Обратите внимание, что наблюдаемые данные имеют красный цвет, а прогнозируемые шаги - синего цвета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...