Az ARIMA (1,1,0) sorozat szimulációja

Az ARIMA modelleket az eredeti idősorokhoz illesztettem, és a legjobb modell az ARIMA (1, 1,0). Most azt a modellt szeretném szimulálni. Megírtam az egyszerű AR (1) modellt, de nem értettem, hogyan állítsam be a különbséget az ARI modellen belül (1,1,0). Az AR (1) sorozat következő R kódja:

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

Hogyan illeszthetem be az ARI (1,1) különbségtételt a fenti kódba. Bárki segíthet ebben a tekintetben.

Válasz

Ha szimulálni szeretné az ARIMA-t, használhatja az arima.sim parancsot R-ben, nem szükséges kézzel megtenni. Ez generálja a kívánt sorozatot.

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) 

Megtekintheti ennek elérésének kódját a arima.sim az R parancssorban. Alternatív megoldásként, ha maga csinálja, a valószínűleg keresett funkció diffinv. Kiszámítja az elmaradt különbségek inverzét.

rekurzív szekvenciáknak R szép funkciója van filter. Tehát a hurok

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

írhatsz

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

Ezzel megegyezik a fenti arima.sim példa eredményével:

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

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük