2017-10-15 59 views
1

我想用具有差异时间序列的AR(4)模型提前n步预测。对于循环AR模型

模型本身:

X(t)-X(t-1)=a(1)(X(t-1)-X(t-2))+...+a(4)(X(t-4)-X(t-5)) 

=> X(t)=X(t-1)+a(1)(X(t-1)-X(t-2))+...+a(4)(X(t-4)-X(t-5)) 

首次预测:

X(t+1)-X(t)=a(1)(X(t)-X(t-1))+...+a(4)(X(t-3)-X(t-4)) 

=> X(t+1)=X(t)+a(1)(X(t)-X(t-1))+...+a(4)(X(t-3)-X(t-4)) 

二预测:

X(t+2)-X(t+1)=a(1)(X(t+1)-X(t))+...+a(4)(X(t-2)-X(t-3)) 

=> X(t+2)=X(t+1)+a(1)(X(t+1)-X(t))+...+a(4)(X(t-2)-X(t-3)) 
N<-50 
arkoef<-0 
ar<-0 
ARforecast<-numeric(0) 
arkoef<-c(closingkursu[2518],closingkursu[2517],closingkursu[2516],closingkursu[2515],closingkursu[2514]) 
ar<-arkoef 
for(i in 1:N){ 
ARforecast<-c(ARforecast,arkoef[1]+arfit$coef[1]*(arkoef[1]-arkoef[2])+arfit$coef[2]*(arkoef[2]-arkoef[3])+arfit$coef[3]*(arkoef[3]-arkoef[4])+arfit$coef[4]*(arkoef[4]-arkoef[5])) 
ar = c(tail(ARforecast, 1), head(ar, -1))} 

此代码的输出是:

ar1  ar1  ar1  ar1  ar1  ar1  ar1  ar1  ar1  ar1  ar1  ar1  ar1  ar1  ar1  ar1  ar1  ar1  ar1  ar1 
10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 
    ar1  ar1  ar1  ar1  ar1  ar1  ar1  ar1  ar1  ar1  ar1  ar1  ar1  ar1  ar1  ar1  ar1  ar1  ar1  ar1 
10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 
    ar1  ar1  ar1  ar1  ar1  ar1  ar1  ar1  ar1  ar1 
10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 10.19656 

的首次预测似乎是正确的,但环心不是工作10我这个代码试过了。

回答

0

你忘了增加循环中ARforecast向量的值。

N<-50 ; arkoef<-0 ; ar<-0 ; ARforecast<-numeric(0) 
arkoef <- c(closingkursu[2518],closingkursu[2517],closingkursu[2516],closingkursu[2515],closingkursu[2514]) 
ar <- arkoef 

for(i in 1:N){ 
    ARforecast[i+1] <- c(ARforecast[i], arkoef[i]+arfit$coef[i]*(arkoef[i]-arkoef[i+1])+arfit$coef[i+1]*(arkoef[i+1]-arkoef[i+2])+arfit$coef[i+2]*(arkoef[i+2]-arkoef[i+3])+arfit$coef[i+3]*(arkoef[i+3]-arkoef[i+4])) 
    ar = c(tail(ARforecast, 1), head(ar, -1)) 
} 

但我真的不理解你的代码的某些部分(这是什么做的循环中ar?)

+0

的arfit $ COEF [1]到arfit $ COEF [4]固定系数和索引我会改变他们,我假设。但代码给了我50个警告和NA作为价值 – user2968163