3.1 몇 가지 단순한 예측 기법

몇 가지 예측 기법은 아주 단순하고 놀라울만큼 효과적입니다. 다음의 4가지 예측 기법을 이 책에서 벤치마크할 때 사용하겠습니다.

평균 기법

이 경우에서는, 예측한 모든 미래 값은 과거 데이터의 평균과 같습니다. 과거 데이터를 \(y_{1},\dots,y_{T}\)라고 쓴다면, 예측값을 다음과 같이 쓸 수 있습니다. \[ \hat{y}_{T+h|T} = \bar{y} = (y_{1}+\dots+y_{T})/T. \] \(\hat{y}_{T+h|T}\)은 데이터 \(y_1,\dots,y_T\)\(y_{T+h}\)를 추정한 것을 단순하게 쓴 것입니다.

meanf(y, h)
# y 에는 시계열이 들어갑니다
# h 에는 예측 범위가 들어갑니다

단순 기법

단순 기법(naïve method)에서는 모든 예측값을 단순하게 마지막 값으로 둡니다. 즉, \[ \hat{y}_{T+h|T} = y_{T}. \] 이 기법은 다양한 경제 금융 시계열을 다룰 때 상당히 잘 들어맞습니다.

naive(y, h)
rwf(y, h) # 위의 것과 같은 역할을 하는 함수

데이터가 확률보행(random walk) 패턴을 따를 때는 단순 기법(naïve method)이 최적이라서( 8.1 절을 참조하시길 바랍니다.), 확률보행 예측값(random walk forecasts)이라고 부르기도 합니다.

계절성 단순 기법(Seasonal naïve method)

계절성이 아주 뚜렷한 데이터를 다룰 때 비슷한 기법이 유용합니다. 이 경우에는, 각 예측값을 연도의 같은 계절의(예를 들면, 이전 연도의 같은 달) 마지막 관측값으로 둡니다. \(T+h\)에 대한 예측을 식으로 쓰면, \[ \hat{y}_{T+h|T} = y_{T+h-m(k+1)}, \] \(m\)은 계절성의 주기(seasonal period), \(k=\lfloor (h-1)/m\rfloor+1\), \(\lfloor u \rfloor\)\(u\)의 정수 부분을 나타냅니다. 식으로 쓰니 실제 내용보다 복잡해보입니다. 예를 들면, 월별 데이터에서 미래의 모든 2월 값들의 예측값이 마지막으로 관측한 2월 값과 같습니다. 분기별 데이터에서, 미래의 모든 2분기 값의 예측치가 마지막으로 관측한 2분기 값과 같습니다. 다른 달과 분기, 다른 계절성 주기에 대해 같은 방식으로 적용할 수 있습니다.

snaive(y, h)

표류 기법

단순 기법(naïve method)을 수정하여 예측값이 시간에 따라 증가하거나 감소하게 할 수 있습니다. 여기에서 (표류(drift)라고 부르는) 시간에 따른 변화량을 과거 데이터에 나타나는 평균 변화량으로 정합니다. 그러면 \(T+h\) 시간에 대한 예측값은 다음과 같이 주어집니다. \[ \hat{y}_{T+h|T} = y_{T} + \frac{h}{T-1}\sum_{t=2}^T (y_{t}-y_{t-1}) = y_{T} + h \left( \frac{y_{T} -y_{1}}{T-1}\right). \] 처음과 마지막 관측값에 선을 긋고 이 선을 미래로 외삽(extrapolation)한 것과 같습니다.

rwf(y, h, drift=TRUE)

예제

그림 3.1은 분기별 맥주 생산량 데이터에 위의 3가지 기법을 적용한 결과를 나타냅니다.

# Set training data from 1992 to 2007
beer2 <- window(ausbeer,start=1992,end=c(2007,4))
# Plot some forecasts
autoplot(beer2) +
  autolayer(meanf(beer2, h=11),
    series="평균", PI=FALSE) +
  autolayer(naive(beer2, h=11),
    series="단순", PI=FALSE) +
  autolayer(snaive(beer2, h=11),
    series="계절성 단순", PI=FALSE) +
  ggtitle("분기별 맥주 생산량 예측값") +
  xlab("연도") + ylab("단위: 백만 리터") +
  guides(colour=guide_legend(title="예측"))
호주 분기별 맥주 생산량 예측값.

Figure 3.1: 호주 분기별 맥주 생산량 예측값.

그림 3.2은 비-계절성 기법을 200일 간의 구글(Google) 주식 일별 종가 시계열에 적용한 결과를 나타냅니다.

# Plot some forecasts
autoplot(goog200) +
  autolayer(meanf(goog200, h=40),
    series="평균", PI=FALSE) +
  autolayer(rwf(goog200, h=40),
    series="나이브", PI=FALSE) +
  autolayer(rwf(goog200, drift=TRUE, h=40),
    series="표류", PI=FALSE) +
  ggtitle("구글 주식 (2013년 12월 6일까지)") +
  xlab("날짜") + ylab("종가(미국 달러)") +
  guides(colour=guide_legend(title="예측"))
200일 간의 구글 주식 일별 종가에 기초한 예측값.

Figure 3.2: 200일 간의 구글 주식 일별 종가에 기초한 예측값.

때때로 이런 단순한 기법 중의 하나가 사용할 수 있는 가장 좋은 예측 기법이 될 수 있습니다. 하지만, 많은 경우에, 이러한 기법은 선택한 기법보다는 벤치마크 역할을 할 것입니다. 즉, 새로운 기법이 이런 단순한 기법보다 좋은지 확인하기 위해, 우리가 다룰 모든 예측 기법을 이런 단순한 기법과 비교할 것입니다. 그렇지 않으면, 그 새로운 기법은 고려하지 않는 것이 낫습니다.