In my attempt to forecast sales demand by month utilizing the last 3 years of history to predict balance of the year, ets() from forecast() package yields an answer for some time series but not others. I'm following Dr Hyndman's presentation on best fist ets() function.

I understand while the flat forecast (average of the intermittent/volatile inputs) might be the best based on the intermittent history. My question is more of whether the process below has any validity or if it's tottay wonky. For the ones where ets() provides a flat forecast I tried the procedure outlined below to fix it, please let me know if I'm totally lost in my way of thinking:

  1. ETS() flat forecast when there are too many 0's (or volatile)
  2. I increase every observation of the time series by 100
  3. ETS() forecast a curve
  4. Can I just now reduce everything by 100 to get my forecast?
  • $\begingroup$ We're going to need a lot more information about your data & what you're doing to answer this question. You may also want to look at the free online forecasting textbook written by the author of the forecast package in R. $\endgroup$ – gung - Reinstate Monica Aug 14 '12 at 15:52
  • $\begingroup$ In particular, we cannot do anything without knowing the package where to find ets(). $\endgroup$ – gui11aume Aug 14 '12 at 16:03
  • 2
    $\begingroup$ What makes you think a flat forecast function is incorrect? The forecasts are the conditional means of the future demand, and when demand is intermittent, the future demand often has constant mean. $\endgroup$ – Rob Hyndman Aug 15 '12 at 1:24

If you have an additive model, then your proposed method will do nothing. You will get the same forecasts as when applied to the original data.

If you have a multiplicative model, or a mixed model, then you could get different forecasts. But then you need to think about the meaning of your model, and I'm not sure how it can be interpreted. For example, suppose you have an ETS(M,M,N) model --- the simplest multiplicative model with non-constant forecasts. Your model is then

$$y_t -c = \ell_{t-1}b_{t-1}(1+\varepsilon_t)$$

where $\ell_t$ is a local level, $b_t$ is a local growth factor and $\varepsilon_t$ is an iid noise term. The value $c$ is what you've added to your data ($c=100$ in your question). What does this mean? $\ell_t$ and $b_t$ no longer function as the level and growth of the data, but for the shifted data. It is hard to see that this is interpretable.

  • $\begingroup$ Thank you. This is what I was looking for is that it's not appropriate to do this. For the ETS() best fit forecasting by months, is there a minimum number of historical months that I should feed it for optimal/interpretable output? $\endgroup$ – user13296 Aug 16 '12 at 14:21
  • $\begingroup$ Use as much data as you have got unless there has been a major structural break. $\endgroup$ – Rob Hyndman Aug 16 '12 at 23:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.