ARIMA (1,1,0) serilerinin simülasyonu


11

ARIMA modellerini orijinal zaman serisine yerleştirdim ve en iyi model ARIMA (1,1,0). Şimdi diziyi bu modelden simüle etmek istiyorum. Basit AR (1) modelini yazdım, ancak ARI (1,1,0) modelindeki farkı nasıl ayarlayacağımı anlayamadım. AR (1) serisi için aşağıdaki R kodu:

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

Yukarıdaki koda ARI (1,1) fark terimini nasıl ekleyebilirim? Herhangi biri bana bu konuda yardımcı olur.

Yanıtlar:


21

arima.simR'de kullanabileceğiniz ARIMA'yı simüle etmek istiyorsanız, bunu elle yapmaya gerek yoktur. Bu istediğiniz seriyi yaratacaktır.

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)

arima.simR komut satırına yazarak bunun nasıl yapıldığının koduna bakabilirsiniz . Alternatif olarak, kendiniz yaparsanız, muhtemelen aradığınız işlevdir diffinv. Gecikmiş farklılıkların tersini hesaplar.

Özyinelemeli diziler Riçin güzel bir işlevi vardır filter. Yani döngü kullanmak yerine

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

Yazabilirsin

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

Bu, arima.simyukarıdaki örneğe aynı sonucu verecektir :

diffinv(filter(c(4.1,2.1+e),filter=-0.7048,method="recursive")[-1])
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.