Simulering av ARIMA (1,1,0) serie

Jeg har montert ARIMA-modellene til den originale tidsserien, og den beste modellen er ARIMA (1, 1,0). Nå vil jeg simulere serien fra den modellen. Jeg skrev den enkle AR (1) -modellen, men jeg kunne ikke forstå hvordan jeg kan justere forskjellen i ARI-modellen (1,1,0). Følgende R-kode for AR (1) -serien er:

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

Hvordan inkluderer jeg forskjellsuttrykket ARI (1,1) i ovennevnte kode. Noen som hjelper meg i denne forbindelse.

Svar

Hvis du vil simulere ARIMA, kan du bruke arima.sim i R, det er ikke nødvendig å gjøre det for hånd. Dette vil generere serien du ønsker.

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) 

Du kan se på koden for hvordan dette oppnås ved å skrive arima.sim i R-kommandolinjen. Alternativt hvis du gjør det selv, er funksjonen du sannsynligvis ser diffinv. Den beregner det omvendte av forsinkede forskjeller.

For rekursive sekvenser R har en fin funksjon filter. Så i stedet for å bruke loop

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

du kan skrive

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

Dette vil gi det samme resultatet til arima.sim eksempel ovenfor:

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

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *