2012-04-24 3 views
4

외부 회귀 변수를 사용하여 아리마 모델을 생성 중입니다. 내가 n의 관측치를 가지고 있다고 가정 해 봅시다. forecast 패키지의 predict.Arima 기능은 단지 n + 1 관찰에 대한 예측을합니다.아리마 모델을 사용하여 시리즈 끝을 앞두고있는 기간에 대한 예측 값

는 난이 특정 값 주어진 N 관측 값을 예측하기 위해 필요한, 즉 외부 회귀 변수의 값을 변경해도 N 값 (시리즈의 마지막 값)에 대한 예측을 할 필요 외부 회귀 분석기의 경우.

library(forecast) 
set.seed(123) 
aux <- 1:24 
covari <- aux + rnorm(24,0,2) 
vari <- ts(aux * runif(24,0,3), start=c(2010,1), freq=12) 

mod <- auto.arima(vari, xreg=covari) 

predict(mod, newxreg=20) 

이 코드는 모델을 생성하고 예측을 생성하는 방법을 보여줍니다. 나는 매개 변수 n.ahead을 미리 설정하여 마침표 수를 제어 할 수 있습니다.

predict(mod, newxreg=runif(4,15,25), n.ahead=4) 

이 코드는 시리즈의 다음 4 개 값에 대한 예측을 생성합니다.

내가 필요한 것은 n.ahead=-1입니다. 즉 일련의 내부 값에 대한 예측이지만 외부 회귀 분석기는 다릅니다.

외부 회귀 분석기를 하나만 사용하는 경우에는 가산 모델이므로 xreg의 계수를 곱한 값에 따라 관찰 된 xreg 값의 차이를 더할 수 있기 때문에 작업이 복잡하지 않습니다. 그러나 외부 회귀 변수의 수가 증가하면 더 복잡해집니다.

아리마 모델의 시리즈가 끝나지 않은 값을 예측할 수있는 방법이 있습니까?

답변

3

"예측"이란 무엇을 의미합니까? 시계열과 관련하여, 이는 관측 된 과거 값에 대한 조건부 미래 가치의 추정치입니다. 따라서 관찰 된 값의 "예측"은 단순히 관측 된 값입니다.

그러나 아마도 당신은 가치를 의미합니다. 즉, 모든 이전 관측에 대한 관측의 한 단계 예측. 이 경우 fitted(mod)을 사용하여 원하는 것을 얻을 수 있습니다.

한편, predict.Arima()은 예측 패키지의 일부가 아닙니다. 예측 패키지는 forecast.Arima() 기능을 대체합니다. 예를 들어 :

forecast(mod, xreg=20) 
forecast(mod, xreg=runif(4,15,25), h=4) 

업데이트 : 으로는 주석에서 설명은 영업 이익이 관찰되었던 회귀의 다른 값을 가정 과거 관찰의 "예측"을 원한다. 이를 해석하는 몇 가지 방법이 있습니다.

첫째, 계수는 새로운 정보를 반영하도록 업데이트되고 과거 데이터 만 사용됩니다. 이 경우 모델을 다시 맞추고 맞는 값을 얻으십시오.

둘째, 계수는 업데이트되지 않고 과거 데이터 만 사용됩니다. 그 기능이 없기 때문에 왜 누군가가 그것을 할 필요가 있을지 모르겠습니다. 그러나 다음과 같이 수행 할 수 있습니다.

셋째, 계수가 업데이트되지 않고 모든 데이터가 사용됩니다.그렇다면 우리는

observed + mod$coef["covari"] * (newx - oldx) 
+0

안녕하세요. 실제로 "예측"이라고 말하지 않았습니다. 어쩌면 나는 더 명확해질 수있다 : 나는'xreg'에 대해 다른 값이 주어진다면, 시리즈의 끝이 아닌 시간 동안의 가치를 ** 예측하기를 원한다. 다시 말해, Jan-2010에서 Dez-2011까지의 시계열 및 외부 회귀 분석기에 대한 Arima 모델을 고려할 때, 외부 회귀 분석기에 대해 다른 값을 관찰 한 경우 모델이 Dez-2011에 예측하는 값은 무엇입니까? –

+0

확인. 지금 업데이트 된 –

+0

나는 당신의 문제에 따라 더 자연스러운 또 다른 옵션이 있다는 것을 깨달았습니다. 더 많은 정보가 없으면 필요한 부분 만 추측 할 수 있습니다. –

관련 문제