ACF
ACF
개요
ACF(Autorrelation Function, 자기관함수)는 시계열 분석에서 중요한 개념 중 하나로, 한 시계열 데이터 내에서 서로 다른 시점의 관측값 사이의 상관관계 측정하는 함수입니다 시계열 데이터는 시간에 따라 순차적으로 수집된 데이터이므로, 현재과 과거의 사이에 일정한 관계가 존재할 수 있으며, 이러한 관계를 수치적으로 분석하는 데 ACF가 활용됩니다. ACF는 시계열 모델의 식별, 잔차 분석, 비정상성 탐지 등 다양한 분석 과정에서 핵심적인 역할을 합니다.
ACF의 정의
ACF는 시계열 데이터의 자기상관(autocorrelation)을 계산하는 함수로, 시점 $ t $의 관측값 $ X_t $와 시점 $ t-k $의 관측값 $ X_{t-k} $ 사이의 피어슨 상관 계수를 의미합니다. 여기서 $ k $는 지연(lag) 으로, 몇 시간, 몇 일, 몇 분 전의 데이터와 현재 값을 비교하는지를 나타냅니다.
수학적으로 ACF는 다음과 같이 정의됩니다:
$$ ACF(k) = \frac{\text{Cov}(X_t, X_{t-k})}{\text{Var}(X_t)} = \frac{\gamma(k)}{\gamma(0)} $$
여기서: - $ \gamma(k) $: 지연 $ k $에서의 자기공분산 (autocovariance) - $ \gamma(0) $: 시계열의 분산 (지연 0일 때의 자기공분산)
ACF의 값은 $-1$에서 $1$ 사이의 값을 가지며, 1에 가까울수록 강한 양의 자기상관, -1에 가까울수록 강한 음의 자기상관, 0에 가까울수록 상관이 없다는 의미입니다.
ACF의 해석
ACF는 시계열의 패턴을 이해하는 데 중요한 정보를 제공합니다. 주요 해석 포인트는 다음과 같습니다:
1. 지연(lag)에 따른 상관관계
ACF는 각 지연 $ k $에 대해 계산되며, 이를 그래프로 나타낸 것을 ACF 플롯(또는 코리로그램, correlogram)이라고 합니다. 이 플롯을 통해 다음과 같은 정보를 얻을 수 있습니다: - 빠르게 감소하는 ACF: 데이터가 정상적이고 랜덤한 성향을 가짐 (예: 백색 잡음) - 천천히 감소하는 ACF: 데이터에 추세(trend) 또는 비정상성(non-stationarity)이 존재함 - 주기적인 패턴: ACF가 특정 간격마다 높은 값을 가지면 계절성(seasonality)이 있음을 시사
2. 신뢰구간과 유의성
ACF 플롯에는 일반적으로 95% 신뢰구간(보통 파란색 점선으로 표시)이 함께 나타납니다. 이 신뢰구간을 벗어나는 지연 값은 통계적으로 유의미한 자기상관이 존재함을 의미합니다.
ACF의 활용 분야
1. ARIMA 모델 식별
ACF는 시계열 예측 모델인 ARIMA(AutoRegressive Integrated Moving Average) 모델의 차수를 결정하는 데 핵심적으로 사용됩니다. 특히: - AR(자기회귀) 모델: PACF(편자기상관함수)는 급격히 감소하지만 ACF는 천천히 감소 - MA(이동평균) 모델: ACF는 특정 지연 이후 급격히 0으로 수렴, PACF는 천천히 감소
2. 정상성 검정
ACF가 매우 천천히 감소하거나 지속적으로 높은 값을 유지한다면, 시계열이 비정상(non-stationary)일 가능성이 높습니다. 이 경우 차분(differencing) 등의 전처리가 필요합니다.
3. 잔차 진단
모델 적합 후 잔차(residuals)의 ACF를 분석하면, 모델이 데이터의 패턴을 충분히 설명했는지 확인할 수 있습니다. 이상적인 잔차는 백색 잡음과 유사하여 모든 지연에서 ACF가 0에 가까워야 합니다.
ACF와 PACF의 차이
| 항목 | ACF | PACF |
|---|---|---|
| 정의 | 시점 $ t $와 $ t-k $ 사이의 전체 상관관계 | 시점 $ t $와 $ t-k $ 사이의 직접적인 상관관계, 중간 지연 효과 제거 |
| 활용 | MA 모델 식별, 정상성 평가 | AR 모델 식별 |
| 그래프 특징 | MA(q) 모델: 지연 q 이후 급격히 감소 | AR(p) 모델: 지연 p 이후 급격히 감소 |
예시: MA(1) 모델의 경우 ACF는 지연 1에서 유의미한 상관을 보이다가 지연 2부터는 0에 가까워지지만, PACF는 천천히 감쇠(oscillating decay)하는 패턴을 보입니다.
ACF 계산 예시 (Python 활용)
Python의 [statsmodels](/doc/%EA%B8%B0%EC%88%A0/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EB%B6%84%EC%84%9D%20%EB%8F%84%EA%B5%AC/statsmodels) 라이브러리를 사용하면 쉽게 ACF를 계산하고 시각화할 수 있습니다.
```python import numpy as np import matplotlib.pyplot as plt from statsmodels.tsa.stattools import acf from statsmodels.graphics.tsaplots import plot_acf
예시 시계열 데이터 생성 (AR(1) 프로세스)
np.random.seed(42) n = 100 x = np.zeros(n) for t in range(1, n): x[t] = 0.6 * x[t-1] + np.random.normal(0, 1)
ACF 계산 및 플롯
plot_acf(x, lags=20) plt.title("ACF Plot of AR(1) Process") plt.show() ``이 코드는 자기회귀 계수가 0.6인 AR(1) 모델을 시뮬레이션하고, 지연 20까지의 ACF를 시각화합니다. 결과적으로 ACF는 지수적으로 감소하는 패턴을 보입니다.
참고 자료 및 관련 문서
- Box, G. E. P., Jenkins, G. M., Reinsel, G. C., & Ljung, G. M. (2015). Time Series Analysis: Forecasting and Control. Wiley.
- Hyndman, R. J., & Athanasopoulos, G. (2021). Forecasting: Principles and Practice (3rd ed.). https://otexts.com/fpp3/
- 관련 위키 문서:
- PACF
- ARIMA 모델
- 정상성 (시계열)
ACF는 시계열 분석의 기초이자 핵심 도구로, 데이터의 내재적 구조를 이해하고 적절한 모델을 선택 데 없어서는 안 될 지표입니다. 분석 초기 단계에서 반드시 확인해야 할 요소 중 하나입니다.
이 문서는 AI 모델(qwen-3-235b-a22b-instruct-2507)에 의해 생성된 콘텐츠입니다.
주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.