AR 모델의 차수 식별과 정상성 검증
AR 모델의 자기회귀 구조를 바탕으로 ACF·PACF 차수 식별, 특성방정식 루트의 정상성 조건, 잔차 진단과 예측 절차를 정리한다.
2026-08-14 · 최초 발행 2024-04-29
과거 관측값으로 현재를 설명하는 AR 모형
AR(Autoregressive) 모델은 현재 관측값을 자신의 과거 값과 오차항으로 표현한다. 시계열 예측에서 기본 골격으로 쓰이며, ACF/PACF를 이용한 차수 식별과 특성방정식의 루트 조건 검증이 핵심이다.
AR(p)는 다음과 같이 쓴다.
y_t = φ1 y_{t-1} + φ2 y_{t-2} + ... + φp y_{t-p} + ε_t
여기서 ε_t는 평균 0, 분산 σ²의 백색잡음으로 가정한다. 약정상성을 만족하려면 특성방정식 1 − φ1 z − φ2 z² − ... − φp z^p = 0의 모든 근 z가 |z| > 1이어야 한다. 단위근이 있거나 |z| ≤ 1인 근이 존재하면 평균과 분산의 시간불변성이 무너지고 발산 또는 비정상 행태가 나타날 수 있다.
AR(p)에서는 ACF가 지수적으로 감소하거나 감쇠 진동을 보이며 서서히 줄어든다. 반면 PACF는 p 시차 이후 급격히 절단(cut-off)되는 경향이 있어 차수 후보를 좁히는 데 사용한다.
식별부터 예측까지 이어지는 점검 흐름
시차 자기상관을 파라미터로 직접 모델링하므로 해석이 비교적 단순하고, 부분자기상관과의 대응 관계도 명확하다. 다만 차수 선택, 정상성 확보, 잔차 진단을 분리하지 않고 진행하면 적합 결과를 신뢰하기 어렵다.
차수 후보는 ACF/PACF 패턴으로 도출한 뒤 AIC/BIC로 최종 선택한다. 정상성 전제가 깨졌다면 차분이나 변환을 적용한 후 다시 식별해야 한다. 추정에는 Yule–Walker, OLS, MLE 등을 사용할 수 있으며, 일반적으로 MLE는 일관성과 효율성이 우수하다. 수렴 여부, 다중공선성, 파라미터 유의성도 함께 확인한다.
진단 단계에서는 Ljung–Box 검정으로 잔차 백색성을 보고, 정규성과 이분산성도 점검한다. arroots로 AR 다항식의 루트를 확인해 정상성 조건을 재검증한다. 예측은 k-step ahead 재귀식으로 수행하고 신뢰구간을 산출하며, 롤링 또는 워크포워드 백테스트로 실제 성능을 확인한다.
비정상으로 판정되면 차분 d를 늘리거나 변환을 다시 적용한다. 근이 단위원 안이나 위(≤1)에 있다면 p를 다시 정하고, 차분 추가 또는 구조 변경(AR→ARMA/ARIMA)을 재시도한다. 잔차 자기상관이 남아 있으면 차수를 높이거나 계절·달력 효과를 반영한다.
ACF와 PACF가 알려주는 차수 후보
| 지표/도구 | 정상성·차수 식별 목적 | 현상·패턴 해석 |
|---|---|---|
| ACF | 감쇠 형태 확인, 과도한 장기기억 탐지 | AR(p)에서 지수/감쇠 진동으로 서서히 감소 |
| PACF | 차수 p 추정 핵심 | p 시차 이후 급격 절단(cut-off) |
| 특성방정식 루트 | 정상성 보증 | 모든 ` |
계절성이 있으면 계절 ACF/PACF에서 피크가 나타날 수 있으므로 SARIMA를 고려한다. 구조적 변동이나 레짐 전환이 존재하는 데이터는 단일 AR 모형만으로 잔차 백색성을 확보하기 어려울 수 있다.
짧은 주기의 변화를 다루는 활용 맥락
금융 수익률의 단기 예측에서는 고빈도 수익률에 남아 있는 약한 자기상관을 포착하고, 롤링 윈도우 재추정으로 시간가변성에 대응할 수 있다.
인프라와 애플리케이션 지표에서는 CPU 사용률, QPS 등의 단주기 자기상관을 모델링하는 데 사용할 수 있다. 예측 결과를 임계치 기반 알람과 연결하면 가짜 양성을 줄이는 데도 활용된다.
수요와 재고의 미시 예측에서는 프로모션·계절 효과를 제거한 뒤 잔차에 자기회귀 모형을 적용해 세밀하게 조정한다. 이 과정은 안전재고 산정에서 분산 추정을 안정화하는 데 쓰인다. AR 기반 예측 잔차의 급증이나 패턴 변화는 이상 신호로도 사용할 수 있다.
정상성 가정이 충족되는 단기 예측에서는 나이브(랜덤워크/평균) 대비 MAE/MAPE가 520% 개선될 수 있다. 경량 추정은 실시간 점수화 지연을 수 ms수십 ms 수준으로 낮추는 데 유리하다. 파라미터 해석과 운영·튜닝이 단순하며, 데이터가 적을 때도 견고한 기본선을 제공한다. 필요하면 ARIMA, SARIMA, ARIMAX 같은 복합 모형으로 확장할 수 있다.
Python으로 적합·진단·예측 수행하기
전제조건: Python 3.10+, statsmodels 0.14+, pandas, numpy, matplotlib 설치. 일부 API는 버전에 따라 다를 수 있음(최신 정보 확인 필요).
# env: python>=3.10, statsmodels>=0.14, pandas, numpy, matplotlib
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
from statsmodels.tsa.arima.model import ARIMA
from statsmodels.stats.diagnostic import acorr_ljungbox
# 1) AR(2) 모의 데이터 생성: y_t = 0.6 y_{t-1} - 0.3 y_{t-2} + ε_t
np.random.seed(42)
n = 800
phi = np.array([0.6, -0.3])
eps = np.random.normal(scale=1.0, size=n)
y = np.zeros(n)
for t in range(2, n):
y[t] = phi[0]*y[t-1] + phi[1]*y[t-2] + eps[t]
s = pd.Series(y, index=pd.date_range("2020-01-01", periods=n, freq="D"))
# 2) ACF/PACF 플롯
fig, ax = plt.subplots(1, 2, figsize=(10, 4))
plot_acf(s, lags=30, ax=ax[0])
plot_pacf(s, lags=30, ax=ax[1], method="ywm")
ax[0].set_title("ACF")
ax[1].set_title("PACF")
plt.tight_layout()
plt.show()
# 3) AR(p) 적합: ARIMA(order=(p,0,0)) 사용
p = 2
model = ARIMA(s, order=(p, 0, 0), trend="n")
res = model.fit()
print(res.summary())
# 4) 정상성 조건 점검: arroots(AR 다항식의 근)
roots = res.arroots
print("AR roots:", roots)
print("All roots outside unit circle:", np.all(np.abs(roots) > 1))
# 5) 잔차 진단: Ljung-Box(지연 10)
lb = acorr_ljungbox(res.resid, lags=[10], return_df=True)
print(lb)
# 6) 예측: 마지막 20일 예측
n_fore = 20
pred = res.get_forecast(steps=n_fore)
mean_forecast = pred.predicted_mean
conf_int = pred.conf_int()
print(mean_forecast.head())
print(conf_int.head())
# 시각화
plt.figure(figsize=(10,4))
plt.plot(s[-100:], label="observed")
plt.plot(mean_forecast.index, mean_forecast.values, label="forecast")
plt.fill_between(conf_int.index, conf_int.iloc[:,0], conf_int.iloc[:,1], color="gray", alpha=0.2, label="95% CI")
plt.legend()
plt.title("AR(2) Forecast")
plt.tight_layout()
plt.show()
ADF와 KPSS를 함께 사용하면 정상성 판단의 강건성을 높일 수 있다. 근이 1에 가까운 near-unit-root 상황에서는 표본 내 적합이 양호해도 외삽 예측의 분산이 급증할 수 있으므로 차분·변환 또는 더 단순한 p 재선정을 권장한다. 계절성이나 캘린더 효과가 강하면 계절 AR을 포함한 SARIMA로 확장한다.