Exponential smoothing and regressors

I have thought quite a lot about includ­ing regres­sors (i.e. covari­ates) in expo­nen­tial smooth­ing (ETS) mod­els, and I have done it a cou­ple of times in my pub­lished work. See my 2008 expo­nen­tial smooth­ing book (chap­ter 9) and my 2008 Tourism Man­age­ment paper. How­ever, there are some the­o­ret­i­cal issues with these approaches, which have come to light through the research of Ahmad Farid Osman, one of our PhD stu­dents at Monash Uni­ver­sity. Basi­cally, they are never fore­castable in the sense explained in Sec­tion 10.2 my 2008 book (fore­casta­bil­ity is the ETS equiv­a­lent of invert­ibil­ity in ARIMA models).

Osman has attempted to repair the prob­lem by propos­ing a dif­fer­ent for­mu­la­tion from those in the above ref­er­ences. The only pub­lic descrip­tion of his pro­posed model is given by Osman and King in this pre­sen­ta­tion – sorry, they do have a full paper explain­ing their approach, but it is not pub­licly avail­able.  How­ever, the model is much messier than the for­mu­la­tion we put in our book, and although it avoids the fore­casta­bil­ity issues, I think it is more dif­fi­cult to inter­pret. Still, it’s a good attempt at a tough prob­lem, and there’s noth­ing else around that’s any better.

So don’t expect any code for fit­ting ETS mod­els with regres­sors to appear in the fore­cast pack­age for R any­time soon, and maybe never. Osman may at some stage make his own code available.

Right now, if I have a fore­cast­ing prob­lem where I want to use covari­ates, I tend to use regres­sion with ARMA errors. That’s easy to do using the Arima() or auto.arima() func­tions in the fore­cast pack­age for R. It is even pos­si­ble to han­dle mul­ti­ple sea­son­al­ity in that way with Fourier terms (although that forces the sea­son­al­ity to be unchang­ing over time). More flex­i­ble mod­els are pos­si­ble using the arimax() func­tion in the TSA pack­age.

Of course, there is always the dynamic lin­ear model approach, imple­mented in the dynlm pack­age.

Related Posts:

  • Richard War­nung

    Thank you for this post … I have searched for the “xreg” para­me­ter in the ets-​​related func­tions in the fore­cast pack­age. Now I know why I have not found it. Thus STL + ETS will not work with regres­sors. I assume STL + ARIMA would work with regres­sors, I just strug­gle to “tell” the fore­cast func­tion which regres­sors to use for the forecast .…

    • http://robjhyndman.com Rob J Hyndman

      No, STL+ARIMA will not work with regres­sors. The xreg argu­ment will be used in the fit­ted model, but not in the fore­casts. I’ll add this to the list of things to do in a future ver­sion of the package.

  • Pingback: TBATS with regressors | Hyndsight()

  • miketp

    What about a two step process: (1) multiple-​​liner regres­sion; (2) then use TBATs on the resid­u­als? So instead of a “regres­sion with ARMA errors” it would be “regres­sion with TBATS errors”. Would this not give you the added advan­tage of hav­ing dynamic sea­son­al­ity that you wouldn’t achieve with a regres­sion includ­ing covari­ates and Fourier series?

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

      The regres­sion will not be con­sis­tently esti­mated except in some triv­ial spe­cial cases.