Я понимаю, что этот вопрос задавался раньше, но решения не актуальны для новой версии statsmodel
(0.12).
У меня есть этот набор данных в pandas
, имя фрейма данных train
:
date value
2017-01-09 0.331836
2017-01-10 0.330815
2017-01-11 0.329794
2017-01-12 0.328773
2017-01-13 0.327752
... ...
2020-05-29 0.254081
2020-05-30 0.267420
2020-05-31 0.280758
2020-06-01 0.294097
2020-06-02 0.309384
Столбец даты — это индекс, а моя поздняя дата — 2020-06-02. Я хотел бы получить прогнозы на 14 дней с моей последней даты, то есть прогноз на период с 03.06.2020 (включительно) по 16.06.2020 (включительно). Я не уверен, правильно ли я понимаю начальный и конечный параметры.
from statsmodels.tsa.ar_model import AutoReg,ar_select_order
f = 14
mod = ar_select_order(train[y_col].ravel(), maxlag=15)
AutoRegfit = AutoReg(train[y_col].ravel(), trend='c', lags=mod.ar_lags).fit()
AutoRegfit.predict(start=len(train),end=len(train)+f-1,dynamic=False)
>>> array([0.32489822, 0.34010067, 0.35508626, 0.36968769, 0.38416325,
0.39825263, 0.41186002, 0.42501389, 0.43766567, 0.44985079,
0.46153405, 0.47270074, 0.48336156, 0.49351065])
Это выглядит нормально, однако означает ли это, что первое предсказание (0,32489822) относится к дате 2020-06-03 или 2020-06-02? потому что обычно в python, когда вы указываете диапазон, первое значение включается, а последнее не включается.
В документах сказано:
первый прогноз начинается
Значит ли это, что параметры start
должны быть len(train)+1
, а не len(train)
?