[TimeSeries] ARIMA 모델

jul ee·2025년 5월 26일

데이터 성장기

목록 보기
113/139

🖇  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는 세 가지 요소로 구성된 시계열 모델이다.

ARIMA = AR (AutoRegressive) + I (Integration) + MA (Moving Average)

  • AR (자기회귀): 과거 데이터가 현재 값에 영향을 미친다는 가정 하에 이전 값들을 회귀 계수로 결합해 예측
  • I (차분): 비정상 데이터를 정상 데이터로 변환하기 위한 차분 처리
  • MA (이동 평균): 과거의 예측 오차를 고려해 현재 값을 보정

이 세 가지 요소는 각각 다른 시계열의 성격을 설명하는데, ARIMA는 이들을 결합해 다양한 형태의 시계열에 대응할 수 있는 모델을 구성한다.

각 구성 요소의 의미를 개별적으로 이해하면 ARIMA의 작동 원리를 보다 쉽게 파악할 수 있다.



🖇  AutoRegressive Model (AR)

AR 모델은 특정 시점의 데이터가 과거 데이터의 선형 결합으로 설명될 수 있다는 가정을 기반으로 한다. 데이터에 강한 자기 상관성(autocorrelation)이 존재할 때 효과적이다.

시간의 흐름에 따라 데이터가 자기 자신에게 의존한다는 구조라고 생각하면 이해하기 쉽다.

yt=c+ϕ1yt1+ϕ2yt2++ϕpytp+ϵty_t = c + \phi_1 y_{t-1} + \phi_2 y_{t-2} + \cdots + \phi_p y_{t-p} + \epsilon_t
  • yty_t:  현재 시점의 관측값
  • cc:  상수항 (intercept)
  • ϕ1\phi_1 \dots, ϕp\phi_p:  과거 시점의 가중치 (회귀 계수)
  • ϵt\epsilon_t:  백색잡음 (random error)

AR(p) 모델에서 p는 시차(lag)를 의미하며, p 시점 전까지의 데이터를 사용하여 현재를 예측한다.



🖇  Moving Average Model (MA)

MA 모델은 과거 시점의 데이터 자체가 아니라, 이전 시점들의 예측 오차(에러)를 기반으로 현재 값을 설명한다.

yt=c+ϵt+θ1ϵt1+θ2ϵt2++θqϵtqy_t = c + \epsilon_t + \theta_1 \epsilon_{t-1} + \theta_2 \epsilon_{t-2} + \cdots + \theta_q \epsilon_{t-q}
  • ϵt\epsilon_t: 현재 시점의 예측 오차
  • θ1\theta_1, \dots, θq\theta_q: 오차에 대한 가중치

MA 모델은 실제 데이터가 특정 외부 요인의 충격(사건, 정책, 뉴스 등)에 의해 영향을 받을 수 있다는 점에서 현실적인 해석을 제공한다.

예측 오차 자체가 시스템의 구조 일부로 들어오기 때문에 과거의 예측 실패가 다음 값을 형성한다는 구조적 특징이 있다.



🖇  ARIMA 수식 (통합 모델)

AR과 MA는 정상 시계열을 가정한 모델인데 실제 데이터는 대부분 비정상(non-stationary)이다.

ARIMA는 이 문제를 해결하기 위해 차분(differencing) 과정을 통해 비정상 데이터를 정상 데이터로 변환한 뒤, AR과 MA를 적용한다.

yt=c+ϕ1yt1++ϕpytp+θ1ϵt1++θqϵtq+ϵty_t' = c + \phi_1 y_{t-1}' + \cdots + \phi_p y_{t-p}' + \theta_1 \epsilon_{t-1} + \cdots + \theta_q \epsilon_{t-q} + \epsilon_t
  • yty'_t:  d차 차분이 적용된 시계열
  • pp:  자기회귀 차수
  • dd:  차분의 횟수
  • qq:  이동 평균 차수

예를 들어 ARIMA(1,1,1)은 1차 차분을 수행한 후 AR(1)과 MA(1)을 적용하는 모델이다.

차분은 다음과 같이 계산된다.

yt=ytyt1y_t' = y_t - y_{t-1}

이 과정을 통해 추세(trend)가 제거되고, 시계열이 정상성(stationarity)을 만족하게 된다.

ARIMA 모델은 자기회귀적 구조, 오차 구조, 정상화 처리를 동시에 고려한 예측 모델이라는 점에서 유연성이 높다.



🖇  파라미터 p, d, q의 적합 과정

ARIMA 모델을 구축하기 위해서는 적절한 파라미터 (p, d, q)를 선택해야 한다. 이를 위한 대표적인 방법이 Box-Jenkins 방법론이다.

적합 절차

  1. 시계열을 시각화하여 추세 및 계절성 파악
  2. 정상성 여부를 판단하고 필요 시 차분(d) 수행
  3. ACF, PACF를 분석하여 AR(p)와 MA(q) 추정
  4. 다양한 조합을 시도하며 AIC, BIC, MSE 등을 기준으로 모델 성능 평가
  5. 성능이 미흡할 경우 파라미터 재조정 및 반복

일부 자동화 도구(auto_arima)는 이러한 탐색적 모델링 과정을 내장하고 있다.



🖇  Auto-ARIMA와 Overfitting

위에서 언급한 auto_arima()는 복잡한 탐색을 자동으로 수행해 주는데, 로그 우도(log-likelihood)를 기반으로 step-wise 탐색을 진행한다.

하지만 이 방식은 단점도 존재한다.

  • 데이터에 과도하게 최적화된 복잡한 모델을 선택할 수 있음 (Overfitting)
  • 예측 성능은 높을 수 있지만 해석력이 떨어지거나 일반화가 어렵다
  • 일반적으로 차분 d는 0~2, AR/MA 차수는 0~3 사이에서 제한하는 것이 안정적임

따라서 자동 선택된 모델도 해석적 관점에서 검토하고, 시각적으로 잔차와 예측 신뢰도를 평가하는 과정이 병행되어야 한다.



🖇  ARIMA 확장 모델

실제 데이터는 추세 외에도 계절성이나 외부 변수 영향을 포함하는 경우가 많다.
이때는 ARIMA의 확장 모델을 고려할 수 있다.

SARIMA  = ARIMA + seasonality

  • ARIMA 모델에 계절성의 요소를 추가한 모델
  • 계절(m)에 대한 AR(P), 차분(D), MA(Q)를 ARIMA 모델에 포함시킴으로써 계절성이 있는 데이터도 모델링할 수 있다.

ARIMAX  = ARIMA + Time series regression

  • dynamic regression model
  • 일반적으로 회귀분석은 시계열 회귀에 적합하지 않은데, 선형회귀는 독립항등분포(iid)를 가정하기 때문에 시계열의 특성과 다르기 때문이다.
  • 하지만 회귀의 오차항이 ARIMA 시계열이라고 가정할 경우, 예측 작업에 회귀분석을 보다 손쉽게 적용할 수 있다.

SARIMAX  = SARIMA + ARIMAX

  • 계절성과 외부 요인을 모두 반영

예시 상황으로 생각해 보면 월별 판매량처럼 계절성이 있는 데이터는 SARIMA가 효과적이고, 유가나 환율처럼 외부 요인의 영향을 받는 데이터에는 ARIMAX 또는 SARIMAX가 적합하다.



🖇  ARIMA 모델 결과 해석

모델이 학습된 이후에는 예측 결과와 함께 잔차 분석을 통해 모델의 적합도를 평가할 수 있다.

  • fitted values:  모델이 계산한 예측값 y^t\hat{y}_t
  • residuals: 실제 관측값과 예측값 간의 차이 et=yty^te_t = y_t - \hat{y}_t
y^t=b0+b1xt,et=yty^t\hat{y}_t = b_0 + b_1 x_t \quad,\quad e_t = y_t - \hat{y}_t

잔차 분석을 통해 모델이 관측치를 얼마나 잘 설명하는지 확인할 수 있다.

잔차가 특정 패턴 없이 흩어져 있고 정규성, 독립성을 만족한다면 모델이 데이터를 잘 설명한다고 볼 수 있다.

반대로, 잔차에 패턴이 보인다면 모델 재조정이 필요하다.





인사이트 및 회고

ARIMA는 구조가 비교적 단순하지만 차분과 자기회귀, 오차항을 결합함으로써 다양한 패턴을 유연하게 설명할 수 있다는 것을 알 수 있었다.

다만, 모델의 해석과 진단을 충분히 병행하지 않으면 과적합이나 해석 오류가 발생할 수 있기 때문에 자동화에만 의존하지 않고 도메인 기반의 해석이 중요하게 뒷받침되어야 한다는 점도 다시 한 번 이해할 수 있었다.

물론 최근에는 LSTM, Transformer 기반의 딥러닝 모델이 두드러지고 있지만, 데이터가 많지 않거나 모델의 해석 가능성이 중요한 환경에서는 ARIMA가 여전히 중요한 선택지가 될 수 있다는 것을 인지해야겠다.

시계열 데이터를 예측할 때도 데이터의 특성과 분석 목적에 따라 통계적 접근과 딥러닝을 유연하게 선택할 수 있도록 학습 방향을 설정할 수 있었다.

profile
AI에 관심을 가지고, 데이터로 가치를 만들어 나가는 과정을 기록합니다.

0개의 댓글