2013-09-04 4 views
10

ARMA 모델에 맞는 통계 모델을 사용하고 있습니다. data가 1 차원 배열이다ARMA 통계를 사용한 샘플 밖 예측

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

. 나는에서 샘플 예측을 얻을 알고 :

이제
pred = results.predict(); 

가, 두 번째 데이터 data2을 설정 주어진, 어떻게이 관찰에 기반을 둔 이전에 교정 모델 전망 (예측)와 일련의 생성을 사용할 수 있습니까?

답변

12

문제가 있다고 생각했습니다. 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에 집어 넣으면 잔차를 업데이트해야합니다.

+3

여전히 통계 모델에 문제가 있는지 알고 계십니까? 지금이 패키지에서 더 잘 지원됩니까? – dimab0

+0

res.forecast()를 수행하는 것과 같습니다. http://www.statsmodels.org/dev/generated/statsmodels.tsa.arima_model.ARMAResults.forecast.html#statsmodels.tsa.arima_model.ARMAResults.forecast –