답변:
정확한 공식은 다음과 같습니다. Venables, WN and Ripley, BD (2002) S. Fourth Edition의 Modern Applied Statistics. Springer-Verlag. 예를 들어 보겠습니다.
### 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은 지연 시간입니다) 에서 계산). 그런 다음이 두 벡터를 함수에 전달하여 상관 관계를 계산하십시오. 이 방법은 괜찮으며 합리적인 답변을 제공 할 것이지만 비교되는 2 개의 벡터가 실제로 같은 척도라는 사실은 무시합니다.
개선 된 버전 (Wolfgang에 의해 표시됨)은 평균과 분산을 계산하기 위해 전체 벡터를 사용한다는 점을 제외하고 일반 상관과 유사한 기능입니다.
R
의 공식은 stats.stackexchange.com/questions/81754/… 에서 추가로 분석 및 설명됩니다 .