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

标签 r statistics time-series

我有一个时间序列问题,我可以轻松手动解决,只是需要很长时间,因为我有 4 个不同的 AR(2) 进程并且想要计算至少 20每个都有滞后。

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

我有一个二阶自回归过程,AR(2)Phi(1) 为 0.6,Phi(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)
}

在 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/

相关文章:

r - 检查column1中的数据是否在一个范围内并在column 2中添加数据

r - 使用 R igraph 的加权 DAG 的最长路径

r - 如何根据增量、非连续数字序列向 R 中的数据帧添加唯一 ID

r - 有人可以解释 R 中 pvclust 函数的输出吗?

pandas - 查找 fft 给出 keyerror :'Aligned ' pandas

r - 将不同长度的向量组合成R中的数据框

python - 如何使用 Python/Pandas 转换为正态分布?

matlab - 使用高斯内核估计向量的 pdf

algorithm - 有哪些用于生成有趣的时间序列数据的紧凑算法?

python - 当我有 FY 和 FQ 字符串时创建会计年度 (FY)、会计季度 (FQ) 时间序列