Прогнозирование вне выборки ARMA с помощью статистических моделей

Я использую статистические модели, чтобы соответствовать модели ARMA.

import statsmodels.api as sm
arma    = sm.tsa.ARMA(data, order =(4,4));
results = arma.fit( full_output=False, disp=0);

Где data - одномерный массив. Я знаю, как получить предсказания в выборке:

pred = results.predict();

Теперь, учитывая второй набор данных data2, как я могу использовать ранее откалиброванную модель для создания ряда прогнозов (предсказаний), основанных на этих наблюдениях?


person sirip82    schedule 04.09.2013    source источник


Ответы (2)


Я думал, что это проблема. Если вы запишете его на github, я, скорее всего, не забуду добавить что-то подобное. Механизм прогнозирования (пока) недоступен в виде пользовательских функций, поэтому вам придется сделать что-то вроде этого.

Если вам уже подходит модель, вы можете это сделать.

# this is the nsteps ahead predictor function
from statsmodels.tsa.arima_model import _arma_predict_out_of_sample
res = sm.tsa.ARMA(y, (3, 2)).fit(trend="nc")

# get what you need for predicting one-step ahead
params = res.params
residuals = res.resid
p = res.k_ar
q = res.k_ma
k_exog = res.k_exog
k_trend = res.k_trend
steps = 1

_arma_predict_out_of_sample(params, steps, residuals, p, q, k_trend, k_exog, endog=y, exog=None, start=len(y))

Это новый прогноз на шаг впереди. Вы можете привязать это к y, и вам нужно будет обновить остатки.

person jseabold    schedule 04.09.2013
comment
Вы знаете, сохраняется ли проблема со статистическими моделями? Это лучше поддерживается в пакете сейчас? - person dimab0; 25.01.2017
comment
Это эквивалентно выполнению res.forecast () statsmodels.org/dev/generated/ - person tea_pea; 10.03.2018

Для одномерного вневыборочного прогнозирования (теста) мы можем использовать:

ARMAResults.forecast(steps=1, exog=None, alpha=0.05)

Было бы res.forcast(steps=1)

То же самое доступно и для ARIMA.

ARIMAResults.forecast(steps=1, exog=None, alpha=0.05)

person nitsan    schedule 23.04.2018
comment
Ох, не видел комментарий от мисс Палмер - person nitsan; 23.04.2018