Machine Learning Forecasting – Techniques for Forecasting Several Periods

arimaforecastingmachine learningtime series

I lately recapped my Time Series knowledge and realised that machine learning mostly gives only one step ahead forecasts.

With one-step-ahead forecasts I mean forecasts which, e.g., if we have hourly data, use the data from 10am to forecast 11am and 11am for 12am etc.

enter image description here

Can machine learning methods produce an h-steps-ahead forecasts? With h-step-ahead forecasts I mean that, e.g., assuming hourly data, we use the data from 10am to make a 7-step-ahead forecast to get estimates for 11,12,13,14,15,16,17 'o clock.

Example pic: enter image description here

Related to my main question I wonder:

  • What are the reasons that I don't see anyone using machine learning to
    make h-step-ahead forecasts?
  • If there is a method using machine
    learning, is it more or less precise than ARIMA?

Best Answer

(Part of this is taken from a previous post of mine) First of all you need to distinguish the two different ways to perform multistep times series forecasting: Recursive forecasting and direct forecasting:

  • In recursive forecasting (also called iterated forecasting) you train your model for one step ahead forecasts only. After the training is done you apply your final model recursively to forecast 1 step ahead, 2 steps ahead, etc...until you reach the desired $n$ steps forecast horizon. To do so, you feed the forecast from each successive step back into the model to generate the next step. This approach is used by traditional forecasting algorithms like ARIMA and Exponential Smoothing algorithms, and can be also used for Machine Learning based forecasting (see this post for an example, and this post for some discussion).
  • Direct forecasting is when you train a separate model for each step (so you are trying to "directly" forecast the $n^{th}$ step ahead instead of reaching $n$ steps recursively. See Ben Taied et al. for a discussion of direct forecasting and more complex combined approaches.

Now to answer your main question:

Can machine learning methods produce an h-steps-ahead forecasts?

Yes ML methods can, and they can produce h-steps ahead forecast using both recursive and direct multistep forecasts. Not only that, but for direct multi-step forecasting they are actually more suited to the task than traditional models like ARIMA or Exponential Smoothing. Note however that for direct multi-step forecasting, you need to specify before hand the h-steps ahead for which you want to forecast and train your model accordingly, whereas for recursive forecasting you can use your model for any number of future steps you want.

Moreover Chevillon & Hendry argue that in some cases direct multi-step forecasting is more accurate than recursive forecasting - implying that ML would be more accurate than traditional methods.

For your other questions:

  • What are the reasons that I don't see anyone using machine learning to make h-step-ahead forecasts?

Many people are using ML for multi-step forecasting, especially using neural netwroks: Hyndman's nnetar method available in the R Forecast package, Kourentzes' nnfor R package, Amazon's DeepAR model, and many others.

XGBoost has been used successfully in a few Kaggle time series competitions as well.

See Bontempi et al. for a general discussion.

  • If there is a method using machine learning, is it more or less precise than ARIMA?

That is an open question, and obviously depends on the data and the application that one is forecasting for.

Related Question