🖇 ARIMA란?
🖇 AutoRegressive Model (AR)
🖇 Moving Average Model (MA)
🖇 ARIMA 수식 (통합 모델)
🖇 파라미터 p, d, q의 적합 과정
🖇 Auto-ARIMA와 Overfitting
🖇 ARIMA 확장 모델
🖇 ARIMA 모델 결과 해석
시계열 데이터는 시간 흐름에 따라 수집된 데이터를 의미하며 그 특성상 추세, 계절성, 불규칙성이 섞여 있는 경우가 많다.
이러한 시계열 데이터를 효과적으로 분석하고 미래를 예측하기 위한 통계 모델 중 하나가 ARIMA다. 2017년 이후 LSTM, Transformer와 같은 딥러닝 기반 시계열 모델이 부상했지만, 복잡성이 낮고 비교적 적은 데이터에서 ARIMA는 여전히 우수한 성능을 보인다.
이 글에서는 ARIMA의 기본 개념과 각 구성 요소의 수식적 이해, 파라미터 설정과 자동화 기법(Auto-ARIMA), 확장 모델(SARIMA, ARIMAX 등)의 순서로 정리해 보았다. 시계열 데이터의 구조적 특성과 모델링 전략을 이해하는 것을 목적으로 작성하였다.
ARIMA는 세 가지 요소로 구성된 시계열 모델이다.
ARIMA = AR (AutoRegressive) + I (Integration) + MA (Moving Average)
- AR (자기회귀): 과거 데이터가 현재 값에 영향을 미친다는 가정 하에 이전 값들을 회귀 계수로 결합해 예측
- I (차분): 비정상 데이터를 정상 데이터로 변환하기 위한 차분 처리
- MA (이동 평균): 과거의 예측 오차를 고려해 현재 값을 보정
이 세 가지 요소는 각각 다른 시계열의 성격을 설명하는데, ARIMA는 이들을 결합해 다양한 형태의 시계열에 대응할 수 있는 모델을 구성한다.
각 구성 요소의 의미를 개별적으로 이해하면 ARIMA의 작동 원리를 보다 쉽게 파악할 수 있다.
AR 모델은 특정 시점의 데이터가 과거 데이터의 선형 결합으로 설명될 수 있다는 가정을 기반으로 한다. 데이터에 강한 자기 상관성(autocorrelation)이 존재할 때 효과적이다.
시간의 흐름에 따라 데이터가 자기 자신에게 의존한다는 구조라고 생각하면 이해하기 쉽다.
AR(p) 모델에서 p는 시차(lag)를 의미하며, p 시점 전까지의 데이터를 사용하여 현재를 예측한다.
MA 모델은 과거 시점의 데이터 자체가 아니라, 이전 시점들의 예측 오차(에러)를 기반으로 현재 값을 설명한다.
MA 모델은 실제 데이터가 특정 외부 요인의 충격(사건, 정책, 뉴스 등)에 의해 영향을 받을 수 있다는 점에서 현실적인 해석을 제공한다.
예측 오차 자체가 시스템의 구조 일부로 들어오기 때문에 과거의 예측 실패가 다음 값을 형성한다는 구조적 특징이 있다.
AR과 MA는 정상 시계열을 가정한 모델인데 실제 데이터는 대부분 비정상(non-stationary)이다.
ARIMA는 이 문제를 해결하기 위해 차분(differencing) 과정을 통해 비정상 데이터를 정상 데이터로 변환한 뒤, AR과 MA를 적용한다.
예를 들어 ARIMA(1,1,1)은 1차 차분을 수행한 후 AR(1)과 MA(1)을 적용하는 모델이다.
차분은 다음과 같이 계산된다.
이 과정을 통해 추세(trend)가 제거되고, 시계열이 정상성(stationarity)을 만족하게 된다.
ARIMA 모델은 자기회귀적 구조, 오차 구조, 정상화 처리를 동시에 고려한 예측 모델이라는 점에서 유연성이 높다.
ARIMA 모델을 구축하기 위해서는 적절한 파라미터 (p, d, q)를 선택해야 한다. 이를 위한 대표적인 방법이 Box-Jenkins 방법론이다.
일부 자동화 도구(auto_arima)는 이러한 탐색적 모델링 과정을 내장하고 있다.
위에서 언급한 auto_arima()는 복잡한 탐색을 자동으로 수행해 주는데, 로그 우도(log-likelihood)를 기반으로 step-wise 탐색을 진행한다.
하지만 이 방식은 단점도 존재한다.
따라서 자동 선택된 모델도 해석적 관점에서 검토하고, 시각적으로 잔차와 예측 신뢰도를 평가하는 과정이 병행되어야 한다.
실제 데이터는 추세 외에도 계절성이나 외부 변수 영향을 포함하는 경우가 많다.
이때는 ARIMA의 확장 모델을 고려할 수 있다.
SARIMA = ARIMA + seasonality
ARIMAX = ARIMA + Time series regression
SARIMAX = SARIMA + ARIMAX
예시 상황으로 생각해 보면 월별 판매량처럼 계절성이 있는 데이터는 SARIMA가 효과적이고, 유가나 환율처럼 외부 요인의 영향을 받는 데이터에는 ARIMAX 또는 SARIMAX가 적합하다.
모델이 학습된 이후에는 예측 결과와 함께 잔차 분석을 통해 모델의 적합도를 평가할 수 있다.
잔차 분석을 통해 모델이 관측치를 얼마나 잘 설명하는지 확인할 수 있다.
잔차가 특정 패턴 없이 흩어져 있고 정규성, 독립성을 만족한다면 모델이 데이터를 잘 설명한다고 볼 수 있다.
반대로, 잔차에 패턴이 보인다면 모델 재조정이 필요하다.
ARIMA는 구조가 비교적 단순하지만 차분과 자기회귀, 오차항을 결합함으로써 다양한 패턴을 유연하게 설명할 수 있다는 것을 알 수 있었다.
다만, 모델의 해석과 진단을 충분히 병행하지 않으면 과적합이나 해석 오류가 발생할 수 있기 때문에 자동화에만 의존하지 않고 도메인 기반의 해석이 중요하게 뒷받침되어야 한다는 점도 다시 한 번 이해할 수 있었다.
물론 최근에는 LSTM, Transformer 기반의 딥러닝 모델이 두드러지고 있지만, 데이터가 많지 않거나 모델의 해석 가능성이 중요한 환경에서는 ARIMA가 여전히 중요한 선택지가 될 수 있다는 것을 인지해야겠다.
시계열 데이터를 예측할 때도 데이터의 특성과 분석 목적에 따라 통계적 접근과 딥러닝을 유연하게 선택할 수 있도록 학습 방향을 설정할 수 있었다.