# Alternatives to Using ARIMA for forecasting

I've been dealing with mostly univariate time series data and am wondering what alternative models exist for forecasting instead of ARIMA, ARMA, AR and MA processes,

I know about exponential smoothing, however it can only forecast for one period ahead.

Is there any other model which allow me to forecast multiple periods ahead which is not of the classes listed above?

• Exponential smoothing can forecast any number of steps ahead. Please read OTexts.org/fpp2 – Rob Hyndman Nov 7 '17 at 6:54
• @RobHyndman thanks for the heads up. The comment was made based on my current level of education. – EconJohn Nov 7 '17 at 16:54

In addition to the models mentioned by Stephan Kolossa (thank you for your great answer) I would like to add some other models. As Stephan and Rob already mentioned exponential smoothing is not limited to one period.

Simple models

Often simple models such as

• the average method (forecast::meanf(y,h) in R)
• the naive method (forecast::naive(y,h) in R)
• the seasonal naive method (forecast::snaive(y,h) in R)
• the drift method (forecast::rwf(y,h), drift = TRUE in R)

Often produce better results than more complex and more sophisticated models. They are also often a good benchmark for testing whether your more complicated model performs well.

Models capturing multiple seasonalities

• the bats model (forecast::bats() in R)

• the tbats model (forecast::tbats() in R)

One case in which you use such models is to forecast daily data when you have several years of data. There are several seasonality patterns: some seasonality appears every monday, some appears always at the beginning of a month and there might be also a seasonality pattern at the beginning of each year.

As Rob writes, I am not sure why you believe that smoothing is limited to one-step-ahead forecasts.

> predict(HoltWinters(AirPassengers),n.ahead=12)
Jan      Feb      Mar      Apr      May      Jun      Jul      Aug
1961 453.4977 429.3906 467.0361 503.2574 512.3395 571.8880 652.6095 637.4623
Sep      Oct      Nov      Dec
1961 539.7548 490.7250 424.4593 469.5315
> plot(forecast(ets(AirPassengers),h=12))


Exponential Smoothing and ARIMA are indeed the first forecasting methods you will learn about, but of course there are many more. Some are for specific use cases, e.g., Croston's method for intermittent demands, or Bass models for forecasting new product diffusion. Others are more general, like regression or Dynamic Linear Models (DLMs) to model causal effects, or Singular Spectrum Analysis, or Neural Networks, or even Random Forests - pretty much any Machine Learning method for numerical prediction has already been applied to time series.

You might want to look into a forecasting textbook, e.g., Ord, Fildes & Kourentzes Principles of Business Forecasting (2nd ed., 2017). However, textbooks will again have a strong focus on the "classical" methods. Alternatively, you could browse the abstracts at the International Symposium on Forecasting to get an idea what forecasting researchers are looking at these days.

I agree with the answers by Stephan and the comment by Rob (humbly). My own experience with (S)AR/I/MA(x) is not great, probably due to a lack of understanding. Perhaps an interesting avenue of exploration for you, as it is for me, is looking into Bayesian (structural) methods, in particular it may be worth experimenting with https://facebook.github.io/prophet/. Allthough Prophet reportedly works well for specific usecases (internet traffic), there are some interesting ideas, and the library might be an effective low-barrier entry into Bayesian (structural) methods for you.

• If you haven't had a lot of success with ARIMA, that may in part be due to the fact that there are apparently few Real-life examples of moving average processes. I have a nagging suspicion that ARIMA keeps being taught not because it yields good forecasts, but because mathematicians can prove theorems about them. – Stephan Kolassa Nov 7 '17 at 11:31
• Haha, well, I didn't dare claiming such a thing with my limited knowledge, but I think indeed that the modelling in ARIMA of correlated errors may be good for detecting otherwise unmodelled local trends and fluctuations, but on larger scales and in different settings it is a bit unclear what exactly you are modelling with those error terms, and they just seem to produce results that are very unstable with regards to all kinds of heavy assumptions on stationarity and such. Thanks for the reassurance anyway! – Gijs Nov 7 '17 at 11:43