Интервалы прогнозирования для ARMA.predict
Краткое изложение прогноза ARMA для временных рядов (print arma_mod.summary()
) показывает некоторые цифры об доверительном интервале. Можно ли использовать эти числа в качестве интервалов прогнозирования на графике, который показывает прогнозные значения?
ax = indexed_df.ix[:].plot(figsize=(12,8))
ax = predict_price.plot(ax=ax, style='rx', label='Dynamic Prediction');
ax.legend();
Я думаю, код:
from statsmodels.sandbox.regression.predstd import wls_prediction_std
prstd, iv_l, iv_u = wls_prediction_std(results)
найти здесь: доверительные интервалы для прогнозирования модели
... не применимо здесь, поскольку сделано для OLS, а не для прогнозирования ARMA. Я также проверил github, но не нашел ничего нового, которое могло бы иметь отношение к прогнозированию временных рядов.
(Для прогнозов требуются интервалы прогнозирования, особенно когда речь идет о прогнозном прогнозе вне выборки.)
Помощь приветствуется.
1 ответ
Полагаю, для прогнозирования ARMA вне выборки вы можете использовать ARMA.forecast из statsmodels.tsa
Он возвращает три массива: прогнозируемые значения, стандартная ошибка и доверительный интервал для прогнозирования.
Пример с ARMA(1,1), временным рядом y и прогнозом на 1 шаг впереди:
import statsmodels as sm
arma_res = sm.tsa.ARMA(y, order=(1,1)).fit()
preds, stderr, ci = arma_res.forecast(1)