robjhyndman / forecast

Forecasting Functions for Time Series and Linear Models
http://pkg.robjhyndman.com/forecast
1.11k stars 341 forks source link

Combining forecasts from auto.arima, ets, and tbats #213

Closed dashaub closed 8 years ago

dashaub commented 8 years ago

This post and a project I'm working on for generating many forecasts in an automated manner has me thinking about selecting between ets(), auto.arima(), and tbats() models in an automated manner and possibly combining the forecasts into an ensemble for a better forecast. http://ellisp.github.io/blog/2016/01/30/hybrid-forecasts/

tl;dr summary Point forecasts obtained by weighting ets() and auto.arima() point forecasts with 1/2 weights are more accurate than point forecasts from either individual method. Prediction intervals tend to overstate the confidence of future values, and using the max() from the upper confidence bound and min() from the lower confidence bound from the individual arima and ets forecasts produces confidence intervals that come closer to matching their purported inclusion certainty for future values.

In general I'd be eager to read any literature recommendations you might have about optimal combination of forecasts generated from various methods.

ellisp commented 8 years ago

hybridf() was coded by me in a fork of {forecast} and I'd be very happy to submit a PR after any feedback / suggestions, if @robjhyndman is interested.

robjhyndman commented 8 years ago

I'd rather wait until the function had some academic support in the form of a published paper backing the particular combination and construction. Alternatively, it could be part of a new package with forecast as a dependency.

There is quite a literature on forecast combination, including the frequent observation that simple averaging is usually better than weighted averaging (known as the "forecast combination puzzle"). See http://www.sciencedirect.com/science/article/pii/S016920701200088X for a recent discussion.