R 대 Excel의 자기 상관 공식


13

R이 랙 -k 자기 상관을 계산하는 방법을 알아 내려고 노력하고 있습니다 (분명히 Minitab과 SAS에서 사용하는 것과 같은 수식입니다). 그래서 시리즈와 k-lagged 버전에 적용된 Excel의 CORREL 함수를 사용하여 비교할 수 있습니다. R과 Excel (CORREL 사용)은 약간 다른 자기 상관 값을 제공합니다.

또한 한 계산이 다른 계산보다 더 정확한지 알고 싶습니다.


R의 공식은 stats.stackexchange.com/questions/81754/… 에서 추가로 분석 및 설명됩니다 .
whuber

답변:


17

정확한 공식은 다음과 같습니다. 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).


고마워요 Wolfgang! 이것이 바로 내가 찾던 것입니다. 이제 Excel에서 복제본을 사용해 볼 수 있습니다 (Excel 만 사용하는 학생들의 경우).
Galit Shmueli

11

자동 상관 관계 (및 Excel에서 사용하는 것)를 계산하는 순진한 방법은 벡터의 2 사본을 만든 다음 첫 번째 사본에서 첫 번째 n 요소를 제거하고 두 번째 사본에서 마지막 n 요소를 제거하는 것입니다 (여기서 n은 지연 시간입니다) 에서 계산). 그런 다음이 두 벡터를 함수에 전달하여 상관 관계를 계산하십시오. 이 방법은 괜찮으며 합리적인 답변을 제공 할 것이지만 비교되는 2 개의 벡터가 실제로 같은 척도라는 사실은 무시합니다.

개선 된 버전 (Wolfgang에 의해 표시됨)은 평균과 분산을 계산하기 위해 전체 벡터를 사용한다는 점을 제외하고 일반 상관과 유사한 기능입니다.


3
다른 차이점은 1 / (nk) 대신에 1 / n 계수입니다. 여기서 n은 계열의 길이이고 k는 지연 수입니다. 이것은 자기 상관 행렬이 양의 한정을 갖도록하기위한 것입니다.
Rob Hyndman 1

1
@Rob : Excel의 CORREL 수식은 nk 대신 n을 사용한다고 생각합니다. 예를 들어, 지연 1 ACF의 경우 COVAR (res [1:49], res [2:50]) / (STDEVP (res [1:49]) * STDEVP를 사용하면 동일한 결과 (Wolfgang의 표기법 사용)를 얻습니다. (res [2:50])) 함수 COVAR 및 STDEVP는 "인구"통계입니다.
Galit Shmueli

@ 갈 리트. COVAR과 STDEVP를 사용하더라도 코드의 분모는 49이지만 자동 상관의 기본 정의는 50을 사용합니다.
Rob Hyndman

1
1 / n 대 1 / (nk) 지점은 위의 다른 지점 외에도 이해하기에 좋습니다. 그러나 실제 / 관측 된 수의 경우, 해당 항이 분자와 분모 모두에 나타나기 때문에 일관된 한 중요하지 않습니다. 분자와 분모에 다른 분수를 사용하면 문제가 발생할 수 있습니다.
Greg Snow
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.