Correlation 은 두 변수 간의 선형적 관계를 측정하고자 할 때 사용한다. 그런데 autocorrelation 은 자기 자신 (auto) 과 correlation 을 알아보고자 할 때 사용한다.자기 자신과의 관계이기 때문에 lag 된 값을 이용한다.예를 들어 discrete time series 데이터가 있을 때, autocorrelation coefficient 는 아래와 같이 구한다.
Lag 1 에 대해 $y_t$ 와 $y_{t-1}$ 의 관계는 $r_1$ 으로 표현하고, ... $y_t$ 와 $y_{t-k}$ 와의 관계는 $r_k$ 로 나타낼 수 있다.$ r_k$ 는 아래처럼 쓸 수 있다.
$$r_k = {\sum_{t=k+1}^T (y_t - \bar{y}) (y_{t-k} - \bar{y}) \over \sum_{t=1}^T (y_t - \bar{y})^2}$$
파이썬에서 autocorrelation 을 직접 구현하지 말고, 그냥 pandas 의 series 로 데이터를 변환하여 쓰자. 예제 코드는 아래와 같다.
import numpy as np import pandas as pd import matplotlib.pyplot as plt np.random.seed(0) s = pd.Series(np.sin(range(1,100))) + pd.Series(np.random.randn(99)) # 임의의 time series 생성 plt.figure(facecolor='w',figsize=(20,3),dpi=120) plt.plot(s) plt.show() s.autocorr(lag=1) # lag 1에 해당하는 autocorrelation을 리턴
'노트정리 > 데이터마이닝 data mining' 카테고리의 다른 글
SQL 연습할만한 웹사이트 (0) | 2024.01.09 |
---|