ARIMA (1,1,0) -sarjan simulointi

Olen asentanut ARIMA-mallit alkuperäisiin aikasarjoihin, ja paras malli on ARIMA (1, 1,0). Nyt haluan simuloida sarjan siitä mallista. Kirjoitin yksinkertaisen AR (1) -mallin, mutta en voinut ymmärtää, kuinka ARI-mallin (1,1,0) sisäistä eroa voidaan säätää. Seuraava AR (1) -sarjan R-koodi on:

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

Kuinka sisällytän erotermin ARI (1,1) yllä olevaan koodiin. Jokainen auttaa minua tässä suhteessa.

Vastaus

Jos haluat simuloida ARIMAa, voit käyttää arima.sim -sivua R: ssä, sitä ei tarvitse tehdä käsin. Tämä luo haluamasi sarjan.

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) 

Voit tarkastella koodia sen saavuttamiseksi kirjoittamalla arima.sim komentorivillä R. Vaihtoehtoisesti, jos teet sen itse, todennäköisesti etsimäsi funktio on diffinv. Se laskee viivästyneiden erojen käänteisen.

rekursiivisilla jaksoilla R on mukava funktio filter. Joten silmukan

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

voit kirjoittaa

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

Tämä antaa saman tuloksen kuin arima.sim yllä oleva esimerkki:

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

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *