Почему прогнозирование за пределами исходного диапазона невозможно? ValueWarning: поддерживаемый индекс недоступен

Я использовал модель SARIMAX для прогнозирования одного определенного столбца моего фрейма данных pandas. Этот столбец IdCount. Пока я беру исходный размер прогнозирования фрейма данных, все работает нормально. Смотрите мой код здесь:

model=sm.tsa.statespace.SARIMAX(df1['IdCount'],order=(1, 1, 0),seasonal_order=(1,1,1,28))
results=model.fit()

df1['forecast']=results.predict(start=1100,end=1156,dynamic=True)
df1[['IdCount','forecast']].plot(figsize=(12,8))

Последняя запись в моем кадре данных pandas df1 имеет индекс 1156.

Этот код работает.

Но как только я пытаюсь спрогнозировать будущие значения, я больше не получаю никаких результатов.

Это работает:

future_df['forecast'] = results.predict(start = 1155, end = 1156, dynamic= True)

f_df

Этот не работает. Я вообще не получаю результатов для прогноза столбца (Примечание: индекс 1157 будет первым из исходного кадра):

future_df['forecast'] = results.predict(start = 1155, end = 1157, dynamic= True) 

Я получаю это предупреждение, которого не получаю при использовании end = 1156:

/usr/local/lib/python3.6/dist-packages/statsmodels/tsa/base/tsa_model.py:576: ValueWarning: No supported index is available. Prediction results will be given with an integer index beginning at `start`.
  ValueWarning) 

Примечание. Перед этим я создал новый кадр данных future_df с одной пустой строкой и временем в качестве индекса: код здесь:

from pandas.tseries.offsets import DateOffset
future_dates=[df1.index[-1] + DateOffset(hours=x*6)for x in range(0,2)]
future_datest_df=pd.DataFrame(index=future_dates[1:],columns=df1.columns)
future_df=pd.concat([df1,future_datest_df])

Возникает ли это предупреждение и, следовательно, отсутствие прогноза, потому что я неправильно применил DateOffset?

После создания это выглядело так: future_df

И после применения results.predict столбец прогноза был пуст:

новое будущее_df


person Tobitor    schedule 25.11.2020    source источник
comment
Этот вопрос кажется немного трудным для понимания. Возможно, вы получите ответ с большей вероятностью, если вы сможете включить набор кода, который могут запускать другие люди, который вызовет проблему, с которой вы столкнулись.   -  person cfulton    schedule 26.11.2020