我有一个时间序列问题,可以很容易地手动进行计算,只是花了很长时间,因为我有4个不同的AR(2)流程,并且每个流程至少要计算20个滞后。

我想做的是将Yule Walker方程用于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解决这个问题,但是我不知道如何开始,有人可以帮我吗?

最佳答案

您可以尝试使用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)

关于r - 计算R中的AR(2)过程的相关系数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12612875/

10-12 23:33