Я столкнулся с проблемой с функцией model.forecast() в Python. В частности, он не отображает следующую дату, то есть день после последнего дня в моем y_train, который я использовал для обучения. Вот подробности:
Я работаю над проектом прогнозирования временных рядов.
Я разделил свои данные на y_train и y_test.
Я использую библиотеку AutoRegAutoReg.
Вот упрощенная версия моего кода:
Код: Выделить всё
from statsmodels.tsa.ar_model import AutoReg
data = pd.DataFrame(df).set_index("Date")
data.index = pd.DatetimeIndex(data.index).to_period('D')
# drop nan values
data.fillna(method="ffill", inplace=True)
series_data=data["Price"]
cutoff = int(len(series_data)*0.9)
y_train = series_data.iloc[:cutoff]
y_test = series_data.iloc[cutoff:]
# Fit an autoregressive model to the history with lags=13
model = AutoReg(y_train, lags=13).fit()
# Forecast the next value
forecast=model.forecast()
# Displaying the forecast
print(forecast)
output:2011-09-08 2.799414
Freq: D, dtype: float64
y_test.head(1)
output:Date2018-04-23 2.78
Вывод библиотеки не включает следующую дату после последней даты в y_train. Вместо этого он показывает
Что я пробовал:
- Я проверил, что даты в y_train правильно отформатированы и смежны.
- Я пробовал использовать разные значения для шагов в функции прогноза().
Я хочу, чтобы прогноз отображал прогнозируемое значение на день, следующий сразу за последним днем в y_train.
Дополнительная информация:
- Я использую библиотеку AutoReg.
- print(прогноз) должен дать мне дату2018-04- 23 вместо 08.09.2011
Подробнее здесь: https://stackoverflow.com/questions/785 ... -rather-is