Я пытаюсь сгенерировать некоторые прогнозы ARIMA на основе модели, подходящей для некоторых обучающих данных. Мой общий набор данных состоит из ежемесячных данных с января 2017 года по апрель 2020 года. Я определяю свой набор поездов как месяцы с января 2017 года по январь 2020 года, а мой набор тестов - за месяцы с февраля 2020 года по апрель 2020 года. У меня нет никаких данных
from statsmodels.tsa.arima_model import ARIMA
arima_fit_test = ARIMA(train, order=(3,0,5)).fit()
Я заметил, что, несмотря на то, что я использую ту же самую модель, описанную выше, если я сгенерирую прогнозы для другого заданного периода времени, то есть 3 месяцев против 5 месяцев, мои прогнозы немного отличаются (в частности, за апрель 2020 г.):
# predictions for test set only:
arima_predictions1 = arima_fit_test.predict(start=len(train), end=len(train)+len(test)-1)
# predictions for test set + 2 additional time steps
arima_predictions2 = arima_fit_test.predict(start=len(train), end=len(train)+len(test)-1+2)
Вывод:
arima_predictions1
2020-02-01 8538738.52975
2020-03-01 8544609.80394
2020-04-01 7500561.77990
arima_predictions2
2020-02-01 8538738.52975
2020-03-01 8544609.80394
2020-04-01 7885846.88085
2020-05-01 8376855.52546
2020-06-01 8282621.83543
Почему прогнозы для 2020-04-01
разные? Я использую одну и ту же модель arima_fit_test
для arima_predictions1
и arima_predictions2
, поэтому разве эти два набора прогнозов не должны совпадать на первые 3 месяца? Я также заметил, что если я использую метод .forecast()
, я получаю точно такое же поведение.
EDIT: я заметил, что такое поведение имеет тенденцию происходить только в последний месяц более короткого промежутка времени. Например, если arima_predictions1
выше включал только прогнозы 2020-02-01
и 2020-03-01
, а arima_predictions2
включал только 2020-02-01
, 2020-03-01
, 2020-04-01
, прогнозы для 2020-03-01
были бы единственным прогнозом, отличающимся от два.