ARIMA(1,1,0)シリーズのシミュレーション

ARIMAモデルを元の時系列に適合させましたが、最適なモデルはARIMA(1、 1,0)。次に、そのモデルからシリーズをシミュレートしたいと思います。単純なAR(1)モデルを作成しましたが、モデルARI(1,1,0)内の差を調整する方法がわかりませんでした。AR(1)シリーズの次のRコードは次のとおりです。

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

上記のコードに差分項ARI(1,1)を含めるにはどうすればよいですか。この点で誰かが助けてくれます。

回答

ARIMAをシミュレートする場合は、Rでarima.simを使用できますが、手動で行う必要はありません。これにより、必要なシリーズが生成されます。

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.sim。または、自分で実行する場合、おそらく探している関数はdiffinvです。遅延差の逆数を計算します。

For再帰シーケンスRには優れた機能filterがあります。したがって、ループを使用する代わりに

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

書くことができます

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

これにより、上記のarima.simの例と同じ結果が得られます。

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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です