[예측방법론] 15강. 지수평활부터 프로펫, 신경망, 예측조합까지

1. 지수평활법 (Exponential Smoothing)

1-1. 개념

과거 값에 가중치를 두는데, 최근 값일수록 더 큰 가중치를 부여하는 방법이에요.

과거 데이터를 오래된 순서대로 잊어버리면서 최근 데이터에 비중을 두는 방식

1-2. 단순 지수평활

y^t+1=αyt+(1α)y^t\hat{y}_{t+1} = \alpha y_t + (1-\alpha) \hat{y}_t

α\alpha

: 평활상수 (0~1)

  • 값이 클수록 최근 데이터 반영 비율↑

1-3. 홀트-윈터스 지수평활

추세와 계절성까지 고려하는 지수평활법

ata_t

: 수준(level)

btb_t

: 추세(trend)

sts_t

: 계절성(seasonality)

적용 가능

  • 계절 없는 데이터 : 홀트 방법

  • 계절 있는 데이터 : 홀트-윈터스

1-4. R 실습

  • ets() 함수는 데이터에 맞는 최적의 지수평활 모형(ETS) 자동으로 찾아줍니다.
  • forecast() 함수는 적합된 모형을 기반으로 미래 값을 예측하는 함수

2. 페이스북 프로펫 (Prophet)

2-1. 개념

페이스북이 개발한 최신 예측도구
시계열 데이터의 추세, 계절성, 휴일효과를 동시에 반영하는 모델

2-2. 수식 구조

yt=gt+st+ht+ϵty_t = g_t + s_t + h_t + \epsilon_t

gtg_t

: 비선형 추세

sts_t

: 계절성

hth_t

: 휴일효과

ϵt\epsilon_t

: 오차

2-3. 특징

  • 결측치, 이상치에도 강함

  • 복잡한 파라미터 조정 없이도 성능 우수

  • R, Python 지원

2-4. R 실습

3. 신경망 (Neural Network)

3-1. 개념

사람 뇌의 뉴런 연결구조를 모방한 머신러닝 기법

  • 복잡한 비선형 패턴 탐지 가능

  • 데이터 패턴 스스로 학습

3-2. 시계열 신경망

  • 자기회귀신경망(NNAR)
    과거 값들을 입력으로 사용해 예측하는 신경망

3-3. R 실습

4. 예측조합 (Forecast Combination)

4-1. 개념

여러 개의 예측결과를 적절하게 조합해 더 좋은 예측치를 얻는 방법

→ 서로 다른 모형의 장점을 활용

4-2. 베이츠와 그랜저 방법

가장 대표적인 조합법

f=αf1+(1α)f2f = \alpha f_1 + (1-\alpha) f_2

가중치는 예측오차의 역수로 결정

4-3. 일반화된 조합식

f=i=1mαifif = \sum_{i=1}^m \alpha_i f_i

αi=σ^i2j=1mσ^j2\alpha_i = \frac{\hat{\sigma}_i^{-2}}{\sum_{j=1}^m \hat{\sigma}_j^{-2}}

→ 예측오차가 작은 모형에 가중치 ↑

4-4. R 실습

조합 라이브러리 별도 설치 가능
직접 평균 조합도 가능

1
2
3
f1 <- forecast(ets(AirPassengers), h=12)
f2 <- forecast(auto.arima(AirPassengers), h=12)
combined <- (f1$mean + f2$mean) / 2
cs

f1 은 ETS 모델로 12개월 예측한 결과

f2 은 자동 ARIMA 모델로 12개월 예측한 결과

combined 는 두 모델 예측값의 평균을 구해서 예측 성능을 높이려는 시도야 (앙상블 개념)


중요 내용 정리

  • 지수평활법 : 최근 데이터 가중치↑

  • 홀트-윈터스법 : 추세, 계절성 포함

  • 프로펫 : 비선형 추세, 계절, 휴일효과 반영

  • 신경망 예측 : 비선형 패턴 학습

  • 예측조합 : 여러 예측값을 가중 평균


객관식 문제

1. 프로펫 모형의 수식에 포함되지 않는 성분은?
① 추세
② 계절성
③ 휴일효과
④ 자기회귀
정답:

2. 베이츠와 그랜저 예측조합법에서 가중치는 무엇의 역수?
① 예측값
② 오차분산
③ 샘플수
④ 추세값
정답:

3. 지수평활법에서 평활상수

α\alpha

값이 1에 가까우면?
① 오래된 값 반영↑
② 최근 값 반영↑
③ 모든 값 동일
④ 예측불가
정답:

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다