Answers:
确切的方程式在:Venables,WN和Ripley,BD(2002)Modern Applied Statistics with S.第四版中给出。施普林格出版社。我举一个例子:
### simulate some data with AR(1) where rho = .75
xi <- 1:50
yi <- arima.sim(model=list(ar=.75), n=50)
### get residuals
res <- resid(lm(yi ~ xi))
### acf for lags 1 and 2
cor(res[1:49], res[2:50]) ### not quite how this is calculated by R
cor(res[1:48], res[3:50]) ### not quite how this is calculated by R
### how R calculates these
acf(res, lag.max=2, plot=F)
### how this is calculated by R
### note: mean(res) = 0 for this example, so technically not needed here
c0 <- 1/50 * sum( (res[1:50] - mean(res)) * (res[1:50] - mean(res)) )
c1 <- 1/50 * sum( (res[1:49] - mean(res)) * (res[2:50] - mean(res)) )
c2 <- 1/50 * sum( (res[1:48] - mean(res)) * (res[3:50] - mean(res)) )
c1/c0
c2/c0
等(例如,res[1:47]
和res[4:50]
对滞后3)。
天真的方法来计算自动相关(可能是Excel使用的方法)是创建向量的2个副本,然后从第一个副本中删除第一个n个元素,从第二个副本中删除最后一个n个元素(其中n是您的滞后时间)正在计算)。然后将这两个向量传递给函数以计算相关性。这种方法是可以的,并且会给出一个合理的答案,但是它忽略了被比较的两个向量实际上是同一事物的度量的事实。
改进的版本(如Wolfgang所示)与正则相关性相似,只是它使用整个向量来计算均值和方差。
R
的公式会在stats.stackexchange.com/questions/81754/…中进行进一步分析和说明。