我是新来的,我的英语也不是很好。我希望你能理解我。 我正在编写有关引导AR(p)模型的算法的R代码。该算法如下:
我写了代码直到第3(e)点,我想问你是否正确。
1)
set.seed(989)
phi=0.5
p=1
serie1=arima.sim(model=list(ar =phi ,order=c(p,0,0)),n = 100,innov=rnorm(100,0,1))
stima<-arima(serie1,order=c(p,0,0),include.mean=F)
phi.stima=stima$coef
2)
res=stima$residual
res.c=res-mean(res)
3)
a),b)
n=100
M=1000
serie.b=vector("numeric",length=n+M)
ps=round(runif(1,1,n))
serie.b[1]=ps
for(i in (2):(n+M))
serie.b[i]=phi.stima*serie.b[i-1]+res.c[round(runif(1,1,100))]
serie.bb=serie.b[(M+1):(n+M)]
c)
serie.bb=ts(serie.bb)
stima.boot<-arima(serie.bb,order=c(1,0,0),include.mean=F)
phi.stima.boot=stima.boot$coef
phi.res.boot=stima.boot$residual
serie.bb[100]=serie1[100]
previsioni.boot=vector("numeric",length=6)
previsioni.boot[1]=serie1[100]
for(i in (2):(6))
previsioni.boot[i]=phi.stima.boot*previsioni.boot[i-1]
d)
for(i in (2):(100+1000))
serie.b[i]=phi.stima*serie.b[i-1]+res.c[round(runif(1,1,100))]
future_obs_boot=vector("numeric",length=6)
future_obs_boot[1]=serie1[100]
for(i in (2):(6))
future_obs_boot[i]=phi.stima*future_obs_boot[i-1]+res.c[round(runif(1,1,100))]
e)
errore.prev.boot=future_obs_boot[6]-previsioni.boot[6]
如果是正确的话,我该如何执行第4步“将步骤(a)-(e)重复B次,然后复制B引导程序...。”这不是蒙特卡罗模拟吗?但是我不知道在R中申请。
我希望你能帮助我。 问候。 马里奥