2014-01-15 7 views
3

arima의 예측을 수동으로 확인하고 다른 결과가 나타납니다. 간단한 AR입니다 다음 (1) -example :arima가 작성한 예측을 재현 할 수 없습니다.

set.seed(123) 
D<-rnorm(7) 
> D 
[1] -0.56047565 -0.23017749 1.55870831 0.07050839 0.12928774 1.71506499 0.46091621 

M<-arima(D,order=c(1,0,0)) 
predict(M) 
> predict(M)$pred[1] 
[1] 0.4748763 
# So, the one-step-ahead prediction is: 0.4748763 

# I tried to calculate this manually using the intercept:M$coef[2] and the slope multiplied with the last observation: M$coef[1]*(0.46091621) 
M$coef[2]+M$coef[1]*(0.46091621) 
0.3863168 
# As can be seen, the result now is: 0.3863168 

사람이 어떻게 "maually"같은 결과를 얻을하는 방법을 말해 줄래?

답변

1

물론 좋은 질문입니다. 근본적인 문제는 R의 저자가 "intercept"이라고 부르는 계수가 더 정확하게 "mean"으로 식별된다는 것입니다. 여기

"Time Series Analysis and Its Applications: With R Examples"의 저자에 의해 손

b <- coef(M) 
b[[2]] + b[[1]]*(D[7] - b[[2]]) 
# [1] 0.4748763 

이 매우 화제의 here is a nice discussion하여 계산을 수행 할 수있는 방법이다.

+0

이유는 아마도 'arima'가 먼저 데이터를 손상 시킨다는 것입니다. 나는 어딘가에 읽었지만 그것을 고려하지 않았다고 생각합니다. – DatamineR

+0

@RStudent - 그게 옳은 말로 들리 겠지요. Venables의 유명한 [ "선형 모델에 대한 Exegeses"(경고, pdf)]의 2 ~ 3 페이지 (http://www.stats.ox.ac.uk/pub/MASS3/Exegeses.pdf)에서 언급 된 이유. 이 경우에도 "가로 채기"라는 용어는 오해의 소지가 있습니다. –

관련 문제