시계열 예측 평가
시간 순서를 지키며 모형의 미래 예측력을 검증하는 방법
시계열 모형을 만들었다고 해서 미래를 정확하게 예측할 수 있는 것은 아닙니다. ARIMA, SARIMA, VAR, GARCH 등 다양한 모형을 적합하더라도 실제 예측 결과가 얼마나 정확한지는 별도로 확인해야 합니다. 다음 달 매출을 1,000만 원으로 예측했는데 실제 매출이 1,200만 원이었다면 예측 오차는 200만 원이고, 이런 오차를 여러 시점에서 비교하면 어떤 모형이 더 나은지 평가할 수 있습니다. 이 장에서는 과거 데이터로 만든 모형이 아직 관측하지 않은 미래 데이터에서도 얼마나 잘 예측하는지 확인하는 방법을 알아봅니다.
예측 오차란 무엇일까?
예측 오차(Forecast Error)는 실제값과 예측값의 차이입니다.
Yt: 실제 관측값 · Ŷt: 모형이 예측한 값 · et: 예측 오차
실제값이 예측값보다 크면 오차는 양수이고, 작으면 음수입니다. 월별 매출 예측 결과가 다음과 같다고 가정해 보겠습니다(단위: 만 원, 설명을 위한 가상 데이터).
| 월 | 실제 매출 | 예측 매출 | 예측 오차 |
|---|---|---|---|
| 1월 | 100 | 95 | +5 |
| 2월 | 110 | 115 | −5 |
| 3월 | 120 | 112 | +8 |
| 4월 | 130 | 125 | +5 |
그림 1처럼 여러 시점의 예측 오차를 모으면 모형이 평균적으로 얼마나 틀리는지, 큰 오차가 얼마나 자주 발생하는지 등을 평가할 수 있습니다.
다만 학습에 사용한 데이터에서 계산한 오차와 실제 미래 구간에서 계산한 오차는 구분해야 합니다. 그림 2에서 모형을 복잡하게 만들수록 학습 구간의 RMSE는 5.4에서 2.6으로 줄지만, 평가 구간의 RMSE는 4.5에서 24.9로 커집니다. 학습 데이터에 잘 맞는 모형이 미래 예측에서도 반드시 좋은 것은 아닙니다.
대표적인 예측 평가 지표
예측 성능을 평가하는 지표에는 여러 종류가 있으며, 어떤 지표를 선택하느냐에 따라 모형의 평가 결과가 달라질 수 있습니다.
평균절대오차(Mean Absolute Error). 오차를 절댓값으로 바꾼 뒤 평균을 계산합니다. 원래 데이터와 같은 단위로 해석할 수 있습니다.
평균제곱근오차(Root Mean Squared Error). 오차를 제곱해 평균을 구하고 제곱근을 계산합니다. 큰 오차에 더 큰 페널티를 줍니다.
평균절대백분율오차(Mean Absolute Percentage Error). 실제값 대비 오차의 비율을 백분율로 나타냅니다. 실제값이 0에 가까우면 불안정합니다.
RMSE = √[ (1/n) Σ (Yt − Ŷt)2 ]
MAPE = (100/n) Σ |(Yt − Ŷt) / Yt|
앞의 예시에서 예측 오차는 5, −5, 8, 5입니다. MAE는 (5 + 5 + 8 + 5) / 4 = 5.75이고, RMSE는 √((25 + 25 + 64 + 25) / 4) ≈ 5.89입니다. 두 지표 모두 낮을수록 좋으며, 이 사례에서는 RMSE가 MAE보다 조금 높습니다.
그림 3의 모형 B는 세 달은 거의 맞히고 한 달을 크게 틀렸습니다. 두 모형의 MAE는 5.75로 같지만, RMSE는 오차를 제곱하기 때문에 큰 오차에 더 민감하게 반응해 B가 8.67로 커집니다. 큰 오차를 특히 피하고 싶다면 RMSE, 평균적인 오차 크기를 직관적으로 파악하고 싶다면 MAE를 우선 살펴볼 수 있습니다.
MAPE를 사용할 때 주의할 점
MAPE는 백분율로 결과를 보여 주기 때문에 이해하기 쉽고, 단위가 다른 변수 사이에서도 직관적으로 비교할 수 있지만 모든 데이터에 적합한 지표는 아닙니다.
그림 4처럼 실제 매출이 0인 달이 있다면 분모가 0이 되어 MAPE를 계산할 수 없고, 실제값이 아주 작은 경우에도 오차 비율이 과도하게 커질 수 있습니다. 이런 데이터에서는 MAE나 RMSE를 고려할 수 있습니다. 데이터의 규모가 서로 다른 시계열을 비교해야 한다면 MASE(Mean Absolute Scaled Error) 같은 척도도 유용합니다.
그림 5처럼 일반적인 설정에서 MASE가 1보다 작으면 해당 모형이 학습 구간의 나이브 예측 오차보다 평가 구간에서 낮은 오차를 보였다는 의미입니다. 다만 데이터와 평가 설정을 일치시켜 해석해야 합니다.
시계열 교차검증은 무엇일까?
일반적인 머신러닝에서는 데이터를 무작위로 학습 세트와 테스트 세트로 나누는 경우가 많습니다. 하지만 시계열에서는 시간 순서가 중요합니다. 미래 데이터를 학습에 포함한 뒤 과거를 예측하도록 평가하면 실제 운영 환경에서는 알 수 없는 정보를 사용하게 됩니다. 이를 데이터 누수(Data Leakage)라고 합니다. 시계열 교차검증(Time Series Cross-Validation)은 시간 순서를 유지하면서 여러 시점에서 예측 성능을 평가하는 방법입니다.
그림 6의 확장 창 방식(Expanding Window)에서는 각 단계에서 학습 데이터가 늘어나고, 검증 대상은 항상 그 이후의 시점에 놓입니다. 과거 4개 시점으로 5번째 시점을 예측한 다음, 학습 데이터에 5번째 시점을 추가해 6번째 시점을 예측합니다. 이런 과정을 반복하면 특정 한 시점에만 의존하지 않고 여러 시점에서 성능을 비교할 수 있습니다. 실제 분석에서는 예측 기간을 한 시점보다 길게 설정해, 예를 들어 매번 다음 3개월을 예측하고 해당 구간의 오차를 평가할 수도 있습니다.
확장 창과 이동 창은 어떻게 다를까?
시계열 교차검증에는 대표적으로 확장 창과 이동 창 방식이 있습니다.
| 구분 | 확장 창 | 이동 창 |
|---|---|---|
| 학습 데이터 | 과거 데이터를 계속 추가 | 일정한 길이의 구간만 사용 |
| 학습 기간 | 점차 길어짐 | 일정하게 유지 |
| 장점 | 과거 정보를 폭넓게 활용 | 최근 데이터에 집중 |
| 고려할 점 | 오래된 패턴이 현재와 다를 수 있음 | 과거 정보 일부를 버리므로 데이터가 적으면 불리할 수 있음 |
그림 7처럼 소비자 행동이 오랫동안 안정적인 시장에서는 확장 창이 유용할 수 있고, 최근 시장 구조가 빠르게 바뀌는 상황에서는 이동 창이 오래된 정보의 영향을 줄이는 데 도움이 될 수 있습니다. 어떤 방법이 더 좋은지는 데이터의 특성과 실제 예측 환경에 따라 달라집니다.
예측 기간에 따라서도 성능이 달라질까?
한 달 뒤의 예측이 정확하다고 해서 12개월 뒤의 예측도 정확한 것은 아닙니다.
| 예측 기간 | 의미 | 주요 고려 사항 |
|---|---|---|
| 1시점 앞 | 다음 달 또는 다음 날 예측 | 단기 패턴과 최근 관측값 |
| 여러 시점 앞 | 다음 3개월 또는 6개월 예측 | 오차 누적과 추세 변화 |
| 장기 예측 | 1년 이상 이후 예측 | 구조적 변화와 불확실성 |
그림 8은 추세와 계절성이 있는 모의 월별 매출에서 37개 시점을 확장 창으로 평가한 결과로, Holt-Winters의 RMSE가 1개월 앞 3.7에서 12개월 앞 5.2로 커집니다. 이처럼 예측 기간이 길어질수록 불확실성이 커지는 경우가 많으므로, 실제 사용 목적에 맞춰 예측 기간을 정하고 해당 기간에 대한 성능을 별도로 평가해야 합니다.
기준 모형과 비교해야 하는 이유는?
복잡한 모형이 단순한 모형보다 항상 좋은 예측을 제공하는 것은 아닙니다. 따라서 예측 모형을 평가할 때는 비교 기준이 되는 단순한 모형을 함께 사용하는 것이 좋습니다. 나이브 예측은 다음 값을 가장 최근 관측값과 같다고 예측하고, 계절 나이브 예측은 직전 계절 주기의 같은 시점 값으로, 평균 예측은 과거 관측값의 평균으로 예측합니다.
월별 매출에 매년 비슷한 계절 패턴이 나타난다면, 지난해 같은 달의 매출을 예측값으로 쓰는 계절 나이브 모형이 강력한 비교 기준이 될 수 있습니다. 그림 9에서도 계절 나이브(7.1)는 나이브(15.5)나 평균(23.7)보다 훨씬 정확했고, Holt-Winters(5.0)는 그보다 조금 더 나았습니다. 복잡한 SARIMA 모형이 단순한 계절 나이브 모형보다 더 낮은 예측 오차를 보이지 않는다면, 복잡한 모형을 선택할 실질적인 이점이 적을 수 있습니다.
실제 분석은 어떤 순서로 진행할까?
그림 10처럼 먼저 다음 날 가격을 예측할지, 향후 6개월의 매출을 예측할지 예측 목적과 기간을 정합니다. 무작위 분할 대신 과거로 학습하고 이후 시점으로 평가하도록 시간 순서를 유지해 구간을 나누고, 나이브나 계절 나이브처럼 단순한 기준 모형을 먼저 계산합니다. 이어서 ARIMA, SARIMA, ETS 등 후보 모형을 학습하는데, 전처리와 변수 선택도 각 학습 구간 안에서 수행해야 합니다. 목적에 맞는 지표로 성능을 비교하고 필요하면 예측 기간별 성능도 따로 확인한 뒤, 평가 결과와 모형의 복잡성, 예측구간을 함께 고려해 최종 모형을 선택하고 불확실성을 보고합니다.
학습 데이터에 잘 맞는 모형이 미래에도 잘 맞는다는 보장은 없습니다.
변수 선택, 결측치 처리, 표준화 등도 실제 예측 시점에서 이용 가능한 정보만 사용해야 합니다.
MAE와 RMSE는 오차의 크기를 서로 다르게 반영하고, MAPE는 실제값이 0에 가까울 때 문제가 발생합니다.
한 달 예측과 12개월 예측의 오차를 같은 조건처럼 비교해서는 안 됩니다.
과거에는 정확했던 모형도 정책, 시장 환경, 소비자 행동 등이 달라지면 성능이 저하될 수 있습니다.
2015년 1월부터 2025년 12월까지의 월별 매출을 대상으로, 2022년 1월부터 2025년 1월까지의 37개 예측 시작 시점에서 확장 창 방식의 시계열 교차검증을 수행하였다. 1–12개월 앞 예측의 평균 RMSE는 Holt-Winters 모형이 5.0으로, 기준 모형인 계절 나이브 예측(7.1)보다 낮았다. 예측 기간이 길어질수록 RMSE는 1개월 앞 3.7에서 12개월 앞 5.2로 증가하였다.
과거에 잘 맞는지가 아니라, 미래를 잘 맞히는지로 모형을 평가합니다.
- 예측 오차는 실제값과 예측값의 차이입니다.
- MAE는 평균적인 절대 오차, RMSE는 큰 오차에 더 민감한 지표입니다.
- MAPE는 백분율로 오차를 나타내지만 실제값이 0이거나 매우 작을 때 주의해야 합니다.
- 시계열 교차검증은 시간 순서를 유지하면서 여러 예측 시점에서 성능을 평가합니다.
- 복잡한 모형을 선택하기 전에 나이브 예측 등 단순한 기준 모형과 비교해야 합니다.
시계열분석 12개 주제를 마치며
| 연구 질문 | 주요 분석 방법 | 장 |
|---|---|---|
| 과거 값과 현재 값은 얼마나 관련 있는가? | 자기상관(ACF · PACF) | 02 |
| 평균과 분산이 시간에 따라 일정한가? | 정상성, 단위근 검정 | 03 |
| 추세 · 계절 · 불규칙 요인을 나누려면? | 시계열 분해 | 04 |
| 최근 값에 더 큰 비중을 두고 예측하려면? | 지수평활법(ETS) | 05 |
| 자기상관 구조를 모형으로 표현하려면? | AR · MA · ARMA | 06 |
| 추세와 계절성이 있는 시계열은? | ARIMA · SARIMA | 07 |
| 외부 변수의 영향을 함께 넣으려면? | SARIMAX, 회귀 + ARIMA 오차 | 08 |
| 여러 시계열이 서로 영향을 주는가? | VAR | 09 |
| 장기적인 균형 관계가 있는가? | 공적분, VECM | 10 |
| 변동성이 시기마다 달라지는가? | ARCH · GARCH | 11 |
| 예측이 얼마나 정확한가? | 시계열 교차검증, MAE · RMSE | 12 |
시계열분석의 핵심은 관측값의 순서가 정보라는 점입니다. 자기상관과 정상성으로 자료의 시간적 특성을 확인하고, 그에 맞는 모형을 고른 뒤, 과거에 잘 맞는지를 넘어 실제 미래 예측에서도 유용한지 시간 순서를 지켜 검증해야 합니다.
예측 모형은 시간 순서를 지킨 교차검증으로 미래 구간에서 평가해야 합니다. MAE · RMSE · MAPE의 특성을 이해해 목적에 맞는 지표를 고르고, 예측 기간별 성능과 단순한 기준 모형과의 비교를 함께 확인합니다.