Simulación de la serie ARIMA (1,1,0)

He ajustado los modelos ARIMA a la serie temporal original, y el mejor modelo es ARIMA (1, 1,0). Ahora quiero simular la serie de ese modelo. Escribí el modelo AR (1) simple, pero no pude entender cómo ajustar la diferencia dentro del modelo ARI (1,1,0). El siguiente código R para la serie AR (1) es:

phi= -0.7048 z=rep(0,100) e=rnorm(n=100,0,0.345) cons=2.1 z[1]=4.1 for (i in 2:100) z[i]=cons+phi*z[i-1]+e[i] plot(ts(Y)) 

¿Cómo incluyo el término de diferencia ARI (1,1) en el código anterior? Cualquiera me ayude en este sentido.

Respuesta

Si quieres simular ARIMA puedes usar arima.sim en R, no es necesario hacerlo a mano. Esto generará la serie que desea.

e <- rnorm(100,0,0.345) arima.sim(n=100,model=list(ar=-0.7048,order=c(1,1,0)),start.innov=4.1,n.start=1,innov=2.1+e) 

Puede ver el código de cómo se logra esto escribiendo arima.sim en la línea de comandos R. Alternativamente, si lo hace usted mismo, la función que probablemente esté buscando es diffinv. Calcula la inversa de las diferencias rezagadas. secuencias recursivas R tiene una función agradable filter. Entonces, en lugar de usar loop

z <- rep(NA,100) z[1] <- 4.1 for (i in 2:100) z[i]=cons+phi*z[i-1]+e[i] 

puede escribir

filter(c(4.1,2.1+e),filter=-0.7048,method="recursive") 

Esto dará el resultado idéntico al arima.sim ejemplo anterior:

diffinv(filter(c(4.1,2.1+e),filter=-0.7048,method="recursive")[-1]) 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *