嗨我尝试用滞后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
答案 0 :(得分:3)
由于回收,你得到一个长度为10的向量。
表示lag =maxlog
(for
循环的最后一步)
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