R-код для алгоритма интервалов прогнозирования начальной загрузки для модели AR (p) - PullRequest
0 голосов
/ 14 июня 2019

Я новичок здесь, и мой английский не очень хорош.Я надеюсь, что вы меня понимаете.Я пишу код R для алгоритма о загрузке модели 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.

Я надеюсь, что вы можете мне помочь.Привет.Mario

...