12.4 예측조합
예측 정확도를 쉽게 높이는 방법은 같은 시계열에 몇 가지 서로 다른 기법을 적용하여, 결과 예측값을 평균하는 것입니다. 거의 50년 전에, 존 베이츠(John Bates)와 클리브 그랭거(Clive Granger)가 유명한 논문(Bates & Granger, 1969)을 썼는데, 여기에서 예측값을 조합하면 종종 더 나은 예측 정확도로 이어진다는 것을 보였습니다. 20년 후에, Clemen (1989) 에서 다음과 같이 이야기 했습니다.
결과는 사실상 만장일치가 된다: 여러 예측값을 조합하는 것은 예측 정확도 증가로 이어진다. 많은 경우에 단순히 예측값의 평균을 구하는 것만으로도 극적인 성능 증가를 만들 수 있다.
가중 평균을 사용하는 것이나 더 복잡하게 조합하는 몇몇 접근 방법에 관한 중요한 연구가 있지만, 단순한 평균을 사용하는 것을 압도할 정도로 뛰어나지는 않다는 것이 알려져 있습니다.
1982년 4월부터 2017년 9월까지 호주 월별 외식 지출 데이터를 이용한 예제를 살펴보겠습니다. 여기에서 다음과 같은 모델을 사용하겠습니다: ETS, ARIMA, STL-ETS, NNAR, 그리고 TBATS. 그런 다음, 마지막 5년(60개월) 관측값을 가지고 결과를 비교하겠습니다.
<- window(auscafe, end=c(2012,9))
train <- length(auscafe) - length(train)
h <- forecast(ets(train), h=h)
ETS <- forecast(auto.arima(train, lambda=0, biasadj=TRUE),
ARIMA h=h)
<- stlf(train, lambda=0, h=h, biasadj=TRUE)
STL <- forecast(nnetar(train), h=h)
NNAR <- forecast(tbats(train, biasadj=TRUE), h=h)
TBATS <- (ETS[["mean"]] + ARIMA[["mean"]] +
Combination "mean"]] + NNAR[["mean"]] + TBATS[["mean"]])/5 STL[[
autoplot(auscafe) +
autolayer(ETS, series="ETS", PI=FALSE) +
autolayer(ARIMA, series="ARIMA", PI=FALSE) +
autolayer(STL, series="STL", PI=FALSE) +
autolayer(NNAR, series="NNAR", PI=FALSE) +
autolayer(TBATS, series="TBATS", PI=FALSE) +
autolayer(Combination, series="Combination") +
xlab("연도") + ylab("10억 $") +
ggtitle("호주 월별 외식비 지출")

Figure 12.5: 다양한 기법을 호주 월별 외식비 지출 데이터에 적용하여 얻은 점 예측값.
c(ETS = accuracy(ETS, auscafe)["Test set","RMSE"],
ARIMA = accuracy(ARIMA, auscafe)["Test set","RMSE"],
`STL-ETS` = accuracy(STL, auscafe)["Test set","RMSE"],
NNAR = accuracy(NNAR, auscafe)["Test set","RMSE"],
TBATS = accuracy(TBATS, auscafe)["Test set","RMSE"],
Combination =
accuracy(Combination, auscafe)["Test set","RMSE"])
#> ETS ARIMA STL-ETS NNAR
#> 0.13700 0.15920 0.19310 0.31769
#> TBATS Combination
#> 0.09406 0.07161
TBATS가 이 시계열에서 특별히 성능이 좋은 것으로 나타나지만, 조합 접근 방식이 훨씬 더 낫습니다. 다른 데이터에서, TBATS는 꽤 안 좋은 것 같지만, 조합 접근 방식이 거의 항상 가장 좋은 기법에 가깝거나 더 좋은 것으로 나타납니다.