1
$\begingroup$

I have a time series data which increases by a certain value and then remains constant for certain period of time. The increase may be very high or a normal increase. I have to forecast the values for next two years. I have used ARIMA and Holt-Winters Method. Should i select the best fit model by minimum MASE value? Is there any other method to forecast such time series?

Original Time Series Plot

enter image description here

Forecasted using ARIMA

enter image description here

Forecasted using Holt-Winters Method

enter image description here


Edit 1 - After implementing the suggestion this is what i am getting.

Step 1 - Using Diff to remove the trend

enter image description here

Step 2 - Using Diff and log together to remove heteroscedasticity.

enter image description here

Step 3: Forecasting using auto.arima on diff of original time series. Auto.arima is not able to provide any recommended model (p=0,d=0,q=0)!!

enter image description here

$\endgroup$
  • 1
    $\begingroup$ apply log to the series before ARIMA, don't forget to exponentiate it after $\endgroup$ – Aksakal Mar 23 '18 at 3:00
  • $\begingroup$ I have used auto.arima. Wouldn't that work $\endgroup$ – ANURAG GUPTA Mar 23 '18 at 6:24
1
$\begingroup$

ARIMA and Holt-Winters are good benchmarks, but they are really not built to work out-of-the-box for a case such as yours.

The first thing I would suggest is to work not on the original series, but on first differences. Then the changes in slope will turn into changes in level. There is a lot of literature on detecting level changes; the strucchange package for R and the literature cited there would be a good place to start reading.

Once you know when the level shifts occurred, you can treat them historically, by including dummy values for each step, e.g., by first regressing your differenced series on the dummies, then running ARIMA or even Holt-Winters on the residuals - auto.arima() in R does this.

Finally, for forecasting for longer horizons, you will need to first forecast when the next level shift in the differenced series will occur, and how large it will be. (Equivalently, when the slope will change again in the undifferenced series, and how strong the new slope will be.) You will need domain knowledge here, and this is probably the most important part of the entire exercise - if you get the timing or the slope after the next one or two changepoints wrong, your forecasts will likely be way off.

(If you are working with differenced series, don't forget to take cumulative sums of forecasts.)

| cite | improve this answer | |
$\endgroup$

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.