Auto correlation coefficient
앞선 포스팅에서 auto covariance coefficient 에 대해 설명하였다. auto covariance coefficient 은 time series 데이터에서의 각각의 time point 간 연관성을 의미하는데, stationary time series 에서는 k 라고하는 parameter 에 의해 달라진다. auto covariance coefficient 의 추정값 c_k 는 아래와 같이 계산된다.
$$ c_k = \frac{\sum^{N-k}_{t=1}(x_t - \bar{x})(x_{t+k}-\bar{x})} {N-k} $$
이번에는 auto correlation coefficient 에 대해 정리해보려고 한다. auto correlation coefficient 도 auto covariance coefficient 와 마찬가지로 time series 데이터에서 time step 별 값의 연관성을 의미하는데 범위를 -1~1로 조정한 것으로 이해할 수 있다. 마치 공분산과 상관계수의 관계와 같다.
auto correlation coefficient 의 계산식은 아래와 같다.
$$ -1 \leq \rho_k = \frac{\gamma_k}{\gamma_0} \leq 1 $$
이 때, rho_k 의 추정값 r_k 는 아래와 같다. c0 는 time step (=lag) 이 0일 때의 auto covariance coefficient 로 이는 분산과 같다.
$$ \rho_k \sim r_k = \frac{c_k}{c_0} $$
$$ c_0 = \frac{\sum^{N}_{t=1}(x_t-\bar{x})^2}{N} $$
Correlogram
rho_k 의 추정값을 k 에 따라 구한 뒤, 이를 시각화해서 표현한 것을 correlogram 이라고 한다. 이 때, rho_0 은 항상 1이다. (자기 자신과의 연관성이기 때문이다.)
$$ r_0 = \frac{c_0}{c_0} , r_1 = \frac{c_1}{c_0} ... $$
R 에서 correlogram 은 acf 함수를 통해 쉽게 그려볼 수 있다.
예제 1)
아래 R 코드는 100개의 표준정규분포를 따르는 데이터를 만든 후, correlogram 을 그리는 코드이다. 파란선은 연관성이 유의한지에 대한 임계치를 의미한다. 유의한 데이터 포인트가 하나 밖에 없고, lag 에 따른 패턴이 보이지 않으므로, 전체적으로 시계열 데이터가 자기상관성이 없다고 결론 내릴 수 있다.
purely_random_process <- ts(rnorm(100))
print(purely_random_process)
plot(purely_random_process)
auto_correlation_coef_by_lags <- acf(purely_random_process)
print(auto_correlation_coef_by_lags)
예제 2)
실제 데이터를 correlogram 을 그려보자. 다음은 모 어플리케이션의 월간 활성 이용자수 (MAU, monthly active user) 추이이다. 이 서비스는 점점 성장하는 추이를 보여주고 있다. 시계열 데이터의 관점에서는 시간에 따른 평균의 변화 (trend) 를 보이는 non-stationary time series 이다.
위 데이터에서 correlogram 을 그리면 아래와 같이 나타난다. lag 에 따른 auto correlation coef 의 패턴이 보이며 (점점 감소), 인접한 데이터 포인트에서는 유의한 상관성을 보이고 있는 것을 확인할 수 있다.
'Data science > Statistics' 카테고리의 다른 글
시계열분석 - Moving average process (0) | 2022.01.24 |
---|---|
시계열분석 - Random walk (0) | 2022.01.24 |
시계열분석 - Week stationarity/Stochastic process/Autocovariance function (0) | 2022.01.24 |
층화 무작위배정을 실제로 하는 방법 (1) | 2019.12.16 |
다중 비교 (Multiple comparison) 문제와 보정 방법 (0) | 2019.12.15 |