用R中的滞后u计算自相关

时间:2013-03-23 09:44:57

标签: r statistics

嗨我尝试用滞后u计算自相关,u = 1 ... 9

我期待9x1自相关函数。但是当我尝试使用这个代码时,它总是给我10x1自相关函数,第一项= 1.我不知道如何继续。

# initialize a vector to store autocovariance
maxlag <- 9
varstore <- rep(NA,maxlag)
# Calculate Variance
varstore[1] <- sd(as.vector(sample1),na.rm=T)^2

# Estimate autocovariances for all residuals
for (lag in 1:maxlag)
  varstore[lag+1] <- mean(sample1[,1:(10-lag)] * 
                         sample1[,(lag+1):10],na.rm=T)
print(round(varstore,3))
# calculate autocorrelations
corrstore <- varstore/varstore[1]
print(corrstore)

这就是我得到的:

[1] 1.0000000 0.6578243 0.5670389 0.5292314 0.5090411 0.4743944 0.4841038 0.4756297
[9] 0.4275208 0.4048436

1 个答案:

答案 0 :(得分:3)

由于回收,你得到一个长度为10的向量。

表示lag =maxlogfor循环的最后一步)

  varstore[lag+1]  

将使用NA创建一个新条目。要清楚地看到这一点,请尝试以下方法:

v <- NA      ## a vector of length 1
v[10] <- 2
v
[1] NA NA NA NA NA NA NA NA NA  2   ## you get a vector of legnth 10!!

这就是为什么你想要一个长度为9的向量?为什么不使用acf函数?这里是acf函数的输出:

length(acf(1:10)$lag)
[1] 10