시계열 예측

Time Series Forecasting

비즈니스 애널리틱스 · 11주차

시계열 예측의 활용

  • 시계열 예측(time series forecasting): 시간 순서로 쌓인 과거 기록으로 미래 값을 숫자로 내는 일
  • 활용 분야
    • 수요 예측: 생산량, 재고, 발주량 결정
    • 승객·방문객 예측: 열차 편성, 좌석 공급, 인력 배치
    • 매출·비용 예측: 예산과 자금 계획
    • 설비 사용량 예측: 전력·용량 계획
  • 회귀와의 차이: 설명 변수 대신 시간 자체와 과거 값의 패턴을 씀
  • 판단 기준: 학습에 쓰지 않은 기간을 얼마나 잘 맞히는지

이번 주의 결정 문제

월별 승객 수를 어떤 방법으로 예측할 것인가
  • 자료: 미국 철도회사 Amtrak의 월별 승객 수, 1991-01 ~ 2004-03
  • 후보 방법: 직전 값을 그대로 쓰는 단순 예측부터 추세와 계절성을 넣은 회귀까지
  • 판단 기준: 마지막 3년(36개월)을 숨겨 두고, 그 기간을 얼마나 잘 맞히는지

강의 구성

  1. 시계열의 구성 요소
  2. 학습 기간과 검증 기간, 예측 오차 지표
  3. 기준 예측: naive와 seasonal naive
  4. 회귀로 추세와 계절성 표현
  5. 모형 비교와 해석 시 주의
  • 모든 계산 예제: Amtrak 월별 승객 수, 교재(Shmueli 17·18장 노트북)와 같은 자료와 모형

예제 자료: Amtrak 월별 승객 수

1,4001,6001,8002,0002,2001992199419961998200020022004승객 수 (천 명)
  • 1991-01 ~ 2004-03, 159개월, 단위 천 명, 미국 교통통계국(BTS) 공개 자료
  • 최저 1,361 (1996-02), 최고 2,223 (2003-07), 평균 1,822
  • 보이는 패턴: 1996년 무렵까지 줄다가 다시 늘어나는 흐름, 해마다 되풀이되는 오르내림

시계열의 정의와 구성 요소

정의일정한 시간 간격으로 기록한 값의 나열 \(y_1, y_2, \dots, y_n\), \(t\)는 시점 번호
구성 요소뜻Amtrak의 예
수준(level)시계열의 평균적인 크기월 평균 약 1,822천 명
추세(trend)긴 기간에 걸쳐 오르거나 내리는 흐름1996년까지 감소, 이후 증가하는 U자 모양
계절성(seasonality)일정한 주기로 되풀이되는 패턴12개월 주기, 여름에 많고 2월에 적음
잡음(noise)위 패턴으로 설명되지 않는 불규칙한 변동달마다의 들쭉날쭉한 차이
  • 예측 모형: 추세와 계절성을 표현하고, 잡음은 맞히려 하지 않음

Amtrak의 계절성

  • 학습 기간(1991-01 ~ 2001-03)의 월별 평균 승객 수
  • 가장 적은 달: 2월 1,531
  • 가장 많은 달: 8월 1,971
  • 9월에 1,650으로 크게 줄고, 3월에 1,835로 크게 늘어남
  • 12개월마다 같은 모양이 되풀이되므로 예측에 반영할 수 있음
1,4001,6001,8002,000123456789101112월

학습 기간과 검증 기간

정의시간 순서대로 앞부분을 학습 기간(training), 마지막 부분을 검증 기간(holdout)으로 나누고, 학습 기간 자료로만 만든 예측을 검증 기간의 실제 값과 비교함
1,4001,6001,8002,0002,2001992199419961998200020022004승객 수 (천 명)학습 기간검증 기간
  • 학습 기간: 1991-01 ~ 2001-03, 123개월 · 검증 기간: 2001-04 ~ 2004-03, 36개월
  • 무작위로 나누지 않는 이유: 예측할 때는 미래 값을 볼 수 없으므로, 평가도 같은 조건에서 함

예측 오차와 평가 지표

예측 오차실제 값에서 예측값을 뺀 값, 양수이면 실제보다 적게 예측함 \[e_t=y_t-\hat{y}_t\]
지표식뜻
ME\(\frac{1}{m}\sum e_t\)평균적으로 한쪽으로 치우쳤는지, 0에 가까울수록 좋음
MAE\(\frac{1}{m}\sum \lvert e_t\rvert\)평균적으로 몇 천 명 틀리는지
RMSE\(\sqrt{\frac{1}{m}\sum e_t^2}\)큰 오차에 더 큰 벌점
MAPE\(\frac{100}{m}\sum \left\lvert \frac{e_t}{y_t}\right\rvert\)실제 값 대비 몇 % 틀리는지
  • \(m\): 검증 기간의 달 수 36, 예: 2001-04 실제 2,023.8, 예측 2,007.9이면 \(e=15.9\)

naive 예측과 seasonal naive 예측

naive마지막 관측값을 앞으로도 그대로 씀 \[\hat{y}_{n+h}=y_n\]
seasonal naive한 주기 전 같은 달의 값을 씀 \[\hat{y}_{n+h}=y_{n+h-12k}\]
1,4001,6001,8002,0002,2001992199419961998200020022004승객 수 (천 명)학습 기간검증 기간
  • naive: 36개월 모두 2001-03의 값 2,007.9
  • seasonal naive: 2001-04는 2000-04의 값 1,971.5, 2001-05는 2000-05의 값 1,992.3, \(k=\lceil h/12\rceil\)

기준 예측의 오차

검증 기간 36개월, 단위 천 명

방법MEMAERMSEMAPE
naive-14.7115.9142.86.02%
seasonal naive54.784.195.64.25%
  • seasonal naive의 MAE·RMSE·MAPE가 모두 naive보다 작음: 계절성만 반영해도 MAPE가 6.0%에서 4.3%로 줄어듦
  • 기준 예측(benchmark): 계산이 거의 들지 않는 예측, 더 복잡한 모형이 넘어야 할 최소 성적
  • 새 모형이 기준 예측보다 검증 기간 오차가 작지 않으면 쓸 이유가 없음

회귀로 추세 표현: 선형 추세

선형 추세 모형시점 번호 \(t\)를 설명 변수로 쓰는 회귀, \(t=1\)이 1991-01 \[y_t=\beta_0+\beta_1 t+\varepsilon_t,\qquad \hat{y}_t=1,750.36+0.351\,t\]
1,4001,6001,8002,0002,2001992199419961998200020022004승객 수 (천 명)학습 기간검증 기간
  • 실선: 학습 기간의 적합값, 점선: 검증 기간의 예측
  • 한 달에 0.35천 명씩 늘어나는 직선은 U자 추세를 따라가지 못함: 검증 기간 MAPE 10.1%

이차 추세

이차 추세 모형\(t^2\)을 더해 휘어지는 추세를 표현 \[\hat{y}_t=1,888.88-6.298\,t+0.0536\,t^2\]
1,4001,6001,8002,0002,2001992199419961998200020022004승객 수 (천 명)학습 기간검증 기간
  • 줄다가 늘어나는 흐름을 따라감: 검증 기간 MAPE 10.1% → 7.1%
  • 계절성은 아직 반영하지 않음: 예측이 매끈한 곡선

계절성 표현: dummy 변수

dummy 변수그 시점이 해당 달이면 1, 아니면 0인 변수, 1월을 기준으로 2~12월에 11개 \[y_t=\beta_0+\gamma_2 D_{2,t}+\gamma_3 D_{3,t}+\cdots+\gamma_{12} D_{12,t}+\varepsilon_t\]
\(\hat\gamma_m\)2월3월4월5월6월7월8월9월10월11월12월
계절성만-43+261+245+278+233+345+397+76+201+192+230
이차 추세 + 계절성-43+260+261+294+249+361+412+90+215+206+243
  • \(\hat\beta_0\) = 1,574.0: 기준인 1월의 평균, \(\hat\gamma_m\): 1월보다 몇 천 명 많은지
    • 예: 8월 \(\hat\gamma_8\) = +396.7 → 8월 예측 1,970.6
  • 달이 12개인데 dummy가 11개인 이유: 12개를 모두 넣으면 상수항과 겹침
  • 계절성만 넣은 모형은 추세가 없어 해마다 같은 값을 예측함: 검증 기간 MAPE 10.9%

이차 추세와 계절성을 함께 넣은 모형

모형이차 추세와 달 dummy 11개를 함께 넣은 회귀 \[\hat{y}_t=1,696.98-7.156\,t+0.0607\,t^2+\sum_{m=2}^{12}\hat\gamma_m D_{m,t}\]
1,4001,6001,8002,0002,2001992199419961998200020022004승객 수 (천 명)학습 기간검증 기간
  • 학습 기간을 가장 잘 따라감: 학습 기간 MAPE 3.0%
  • 검증 기간 MAPE 6.7%, ME -126: 실제보다 많게 예측하는 쪽으로 치우침

모형 비교: 검증 기간 오차

검증 기간 2001-04 ~ 2004-03, 36개월, 단위 천 명

방법MEMAERMSEMAPE
naive-14.7115.9142.86.02%
seasonal naive54.784.195.64.25%
선형 추세193.1209.4239.510.15%
이차 추세-84.0133.7179.87.08%
계절성217.9217.9229.710.86%
이차 추세 + 계절성-126.2131.7153.36.70%
  • 검증 기간 오차가 가장 작은 방법: seasonal naive, MAE 84.1, MAPE 4.25%
  • 회귀 모형 가운데서는 이차 추세 + 계절성이 가장 작지만 기준 예측을 넘지 못함

학습 기간 오차와 검증 기간 오차

방법학습 기간 MAPE검증 기간 MAPE
선형 추세7.54%10.15%
이차 추세7.02%7.08%
계절성4.33%10.86%
이차 추세 + 계절성3.02%6.70%
  • 학습 기간 오차: 모형이 이미 본 자료에 대한 오차, 항이 많을수록 작아짐
  • 검증 기간 오차: 보지 않은 미래에 대한 오차, 실제 예측 성능에 가까움
  • 이차 추세 + 계절성: 학습 기간 3.0%에서 검증 기간 6.7%로 두 배 넘게 커짐
  • 모형 선택: 검증 기간 오차로 함

잔차 확인

잔차학습 기간의 실제 값에서 적합값을 뺀 값, 모형이 설명하지 못한 부분
-200-100010020019921994199619982000잔차 (천 명)
  • 이차 추세 + 계절성 모형의 학습 기간 잔차
  • 잔차가 몇 달씩 같은 쪽으로 이어짐: 이번 달 잔차와 다음 달 잔차의 상관계수 0.60
  • 잔차에 패턴이 남아 있으면 모형이 아직 설명하지 못한 구조가 있다는 뜻

해석 시 주의

  • 외삽: 이차 추세는 학습 기간 밖에서 계속 휘어짐, 검증 기간이 길수록 예측이 크게 벗어날 수 있음
  • 구조 변화: 학습 기간에 없던 사건이나 정책 변화가 생기면 과거 패턴이 이어지지 않음
  • 검증 기간의 길이와 시점: 실제로 예측할 기간과 같은 길이로 잡음
  • MAPE: 실제 값이 0에 가까우면 커지거나 계산할 수 없음
  • 최종 예측: 방법을 고른 뒤 학습 기간과 검증 기간을 합친 전체 자료로 다시 학습해 미래를 예측함

정리

개념정의예제의 값
구성 요소수준, 추세, 계절성, 잡음U자 추세, 12개월 계절성
기간 나누기시간 순서로 학습 기간과 검증 기간123개월 / 36개월
오차 지표ME, MAE, RMSE, MAPEseasonal naive MAE 84.1, MAPE 4.25%
기준 예측naive \(y_n\), seasonal naive \(y_{n+h-12k}\)복잡한 모형이 넘어야 할 최소 성적
회귀 예측\(t\), \(t^2\), 달 dummy를 설명 변수로이차 추세 + 계절성 검증 MAPE 6.7%
모형 선택검증 기간 오차로 고르고 전체 자료로 다시 학습이 자료에서는 seasonal naive