Exponential smoothing and regressors

I have thought quite a lot about including regressors (i.e. covariates) in exponential smoothing (ETS) models, and I have done it a couple of times in my published work. See my 2008 exponential smoothing book (chapter 9) and my 2008 Tourism Management paper. However, there are some theoretical issues with these approaches, which have come to light through the research of Ahmad Farid Osman, one of our PhD students at Monash University. Basically, they are never forecastable in the sense explained in Section 10.2 my 2008 book (forecastability is the ETS equivalent of invertibility in ARIMA models).

Osman has attempted to repair the problem by proposing a different formulation from those in the above references. The only public description of his proposed model is given by Osman and King in this presentation — sorry, they do have a full paper explaining their approach, but it is not publicly available.  However, the model is much messier than the formulation we put in our book, and although it avoids the forecastability issues, I think it is more difficult to interpret. Still, it’s a good attempt at a tough problem, and there’s nothing else around that’s any better.

So don’t expect any code for fitting ETS models with regressors to appear in the forecast package for R anytime soon, and maybe never. Osman may at some stage make his own code available.

Right now, if I have a forecasting problem where I want to use covariates, I tend to use regression with ARMA errors. That’s easy to do using the Arima() or auto.arima() functions in the forecast package for R. It is even possible to handle multiple seasonality in that way with Fourier terms (although that forces the seasonality to be unchanging over time). More flexible models are possible using the arimax() function in the TSA package.

Of course, there is always the dynamic linear model approach, implemented in the dynlm package.

Related Posts:

  • Richard Warnung

    Thank you for this post … I have searched for the “xreg” parameter in the ets-related functions in the forecast package. Now I know why I have not found it. Thus STL + ETS will not work with regressors. I assume STL + ARIMA would work with regressors, I just struggle to “tell” the forecast function which regressors to use for the forecast ….

    • http://robjhyndman.com Rob J Hyndman

      No, STL+ARIMA will not work with regressors. The xreg argument will be used in the fitted model, but not in the forecasts. I’ll add this to the list of things to do in a future version of the package.

  • Pingback: TBATS with regressors | Hyndsight()

  • miketp

    What about a two step process: (1) multiple-liner regression; (2) then use TBATs on the residuals? So instead of a “regression with ARMA errors” it would be “regression with TBATS errors”. Would this not give you the added advantage of having dynamic seasonality that you wouldn’t achieve with a regression including covariates and Fourier series?

    • http://robjhyndman.com/ Rob J Hyndman

      The regression will not be consistently estimated except in some trivial special cases.