Simulation der ARIMA (1,1,0) -Serie

Ich habe die ARIMA-Modelle an die ursprüngliche Zeitreihe angepasst, und das beste Modell ist ARIMA (1, 1,0). Jetzt möchte ich die Serie von diesem Modell simulieren. Ich habe das einfache AR (1) -Modell geschrieben, konnte aber nicht verstehen, wie der Unterschied innerhalb des ARI-Modells (1,1,0) angepasst werden soll. Der folgende R-Code für die AR (1) -Serie lautet:

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)) 

Wie füge ich den Differenzterm ARI (1,1) in den obigen Code ein? Jeder hilft mir in dieser Hinsicht.

Antwort

Wenn Sie ARIMA simulieren möchten, können Sie arima.sim in R verwenden. Dies ist nicht erforderlich. Dadurch wird die gewünschte Serie generiert.

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) 

Sie können den Code anzeigen, wie dies erreicht wird, indem Sie arima.sim in der R-Befehlszeile. Wenn Sie dies selbst tun, suchen Sie wahrscheinlich nach diffinv. Sie berechnet die Umkehrung der verzögerten Differenzen.

Für rekursive Sequenzen R haben eine nette Funktion filter. Verwenden Sie also anstelle der Schleife

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

Sie können schreiben

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

Dies ergibt das gleiche Ergebnis wie im obigen Beispiel arima.sim:

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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.