【问题标题】:Computing correlation coefficients for an AR(2) process in R计算 R 中 AR(2) 过程的相关系数
【发布时间】:2012-09-18 17:41:10
【问题描述】:

我有一个时间序列问题,我可以很容易地手动解决,只是它需要很长时间,因为我有 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 中解决这个问题,但我不知道如何开始,有人可以帮我吗?

【问题讨论】:

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

标签: r statistics time-series


【解决方案1】:

你可以试试我的 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, and number of lag = 20

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-18
    • 2021-12-24
    • 1970-01-01
    • 2021-03-18
    • 1970-01-01
    • 2018-09-10
    • 2012-06-25
    • 2015-06-17
    相关资源
    最近更新 更多