R中AR(2)过程相关系数的计算

R中AR(2)过程相关系数的计算,r,statistics,time-series,R,Statistics,Time Series,我有一个时间序列问题,我可以很容易地手动解决,只是需要很长的时间,因为我有4个不同的AR(2)进程,并且希望为每个进程计算至少20个延迟 我想做的是使用Yule-Walker方程计算rho,如下所示: 我有一个二阶自回归过程,AR(2)φ(1)为0.6,φ(2)为0.4 我想计算小于等于k=20的所有滞后的相关系数rho(k) 所以rho(0)自然是1,而rho(-1)=rho(1)。所以 rho(1) = phi(1) + phi(2)*rho(1) rho(k) = phi(1)*rho(k

我有一个时间序列问题,我可以很容易地手动解决,只是需要很长的时间,因为我有4个不同的
AR(2)
进程,并且希望为每个进程计算至少20个延迟

我想做的是使用Yule-Walker方程计算rho,如下所示:

我有一个二阶自回归过程,
AR(2)
<代码>φ(1)为0.6,
φ(2)
为0.4

我想计算小于等于
k=20的所有滞后的相关系数
rho(k)

所以
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)
}

对不起,我不是以英语为母语的人。你能澄清一下你在理解上有什么问题吗?我认为这应该是可以理解的,抱歉,朋友。@mnel说你应该在你的R控制台中键入
?ARMAacf
。将出现与您的问题相关的帮助文件。干杯