2

I have a monthly time series dataset starting from 2014 January until past month (2021 March as of today). I need to forecast monthly values for it with a 5 year forecast horizon so basically forecasting 60 data points into the future.

Please note that my data is univariate, with columns DATE and VALUE. I need to perform this forecasting exercise for 2 datasets wherein one is a stationary time series and other one is non-stationary time series.

Historical date range: 2014 January to 2021 March

Forecast required: 2021 April to 2026 March

Since I don't have too many historical data points, such forecasting might seem unreasonable. But I would like to seek suggestions from our community to know what approach / model might be my best shot at getting this done.

1 Answers1

3

Seven years of data is quite a lot, so you should be able to detect any trend and seasonality. Then again, five years horizon is also a lot, so note that the long term forecasts will be rather dubious.

I would recommend you use a simple and well understood method, like Exponential Smoothing, or possibly ARIMA. Both are implemented in the forecast and fable packages for R.

I very much recommend the free open forecasting textbook Forecasting: Principles and Practice by Athanasopoulos & Hyndman, either the 2nd ed., or the 3rd ed. They use the R packages I recommend, and their textbook and R packages are truly the gold standard in forecasting.

Stephan Kolassa
  • 95,027
  • 13
  • 197
  • 357
  • Thanks for the response, Stephan. I will definitely look into the material you suggested. But just to add more details, I have 87 historical data points and I need to forecast 60 data points in the future. I agree that it is a lot. But the caveat is, the underlying data show very weak signal in terms trend and seasonality. I already tried ARIMA model with different settings for (p,q,d) hyper parameters, but the predictions that I get are either just a replica of the pattern from the past or a flat line for the predictions. Hence, I thought of seeking some help from our community. – aashay shah Apr 16 '21 at 22:36
  • Although i am not familiar with Exponential Smoothing, but I can definitely check it out and see if it works for my use case. Would you by any chance have some other alternative suggestions too? Given the data is non-stationary. I can check out all the options you suggest. Thanks again. – aashay shah Apr 16 '21 at 22:38
  • I strongly, strongly, strongly recommend fitting `ets()` and/or `auto.arima()` to your data before you try anything more fancy. If there is little signal in your data and these methods do not extract anything, then a more complex model will only overfit. Note that they deal with the most common forms of nonstationarity (trend and seasonality). ... – Stephan Kolassa Apr 17 '21 at 08:06
  • ... Also note that a flat line may indeed be the best forecast, and better than anything that wiggles: [Is it unusual for the MEAN to outperform ARIMA?](https://stats.stackexchange.com/q/124955/1352) Finally, this thread may give you ideas for a way forward: [How to know that your machine learning problem is hopeless?](https://stats.stackexchange.com/q/222179/1352) Also [this earlier answer of mine](https://stats.stackexchange.com/a/355395/1352). – Stephan Kolassa Apr 17 '21 at 08:08
  • 1
    Thanks for the guidance Stephan. I highly appreciate it. I will definitely go through the posts you sent and I've already started digging into exponential smoothing. This looks promising :) – aashay shah Apr 20 '21 at 08:19