3

AR(2)手動で簡単に解決できる時系列の問題がありますが、4 つの異なるプロセスがあり、それぞれに少なくとも 20 のラグを計算したいので、時間がかかります。

私がやりたいことは、次のように rho のユール ウォーカー方程式を使用することです。

二次の自己回帰プロセスがありAR(2)ます。Phi(1)は 0.6 で、Phi(2)0.4 です。

rho(k)までのすべてのラグの相関係数を計算したいと思いk = 20ます。

当然rho(0)1 と になりrho(-1) = rho(1)ます。したがって

rho(1) = phi(1) + phi(2)*rho(1)
rho(k) = phi(1)*rho(k-1) + phi(2)*rho(k-2)

Rでこれを解決したいのですが、どうやって始めればいいのかわかりません。誰か助けてくれませんか?

4

1 に答える 1

0

私のプログラムを R 言語で試すことができます。

R スクリプトの場合:

AR2 <- function(Zt,tetha0,phi1,phi2,nlag)
{
 n <- length(Zt)
 Zbar <- mean(Zt)
 Zt1 <- rep(Zbar,n)
 for(i in 2:n){Zt1[i] <- Zt[i-1]}
 Zt2 <- rep(Zbar,n)
 for(i in 3:n){Zt1[i] <- Zt[i-2]}
 Zhat <- tetha0+phi1*Zt1+phi2*Zt2
 error <- Zt-Zhat
 ACF(error,nlag)
}

ACF <- function(error,nlag)
{
 n <- length(error)
 rho <- rep(0,nlag)
 for(k in 1:nlag)
 {
  a <- 0
  b <- 0
  for(t in 1:(n-k)){a <- a+(error[t]*error[t+k])}
  for(t in 1:n){b <- b+(error[t]^2)}
  rho[k] <- a/b
 }  
 return(rho)
}

R コンソールで:

Zt シリーズ、tetha(0) = 0、phi(1) = 0.6、phi(2) = 0.4、ラグ数 = 20 があるとします。

AR2(Zt,0,0.6,0.4,20)

于 2013-12-20T06:06:04.033 に答える