ARIMA (Autoregressive integrated moving average) is a time series model, a combination of three ideas:

  • autoregressive model (AR)
  • moving average model (MA)
  • integrated (I), meaning some sort of differencing process has been applied that improves upon the simple combination of the previous two ideas

Autoregressive model #

An autoregressive model (using historical values of a variable as features for a linear regression) for the time series \(X_1,X_2,\ldots\) can be written as \[ X_t = c + \sum_{i=1}^{p}\phi_i X_{t-i} + \varepsilon_t \] where \(p\) is the order of the model (how far back we look), \(\phi_i\) are the regression coefficients and \(\varepsilon_t\) is some random error.

Moving average model #

A moving average model can be written as \[ X_t = \mu + \sum_{i=1}^q \theta_i\varepsilon_{t-i} + \varepsilon_t \] where again \(q\) is the order of the model, \(\theta_i\) are parameters and \(\varepsilon_1,\ldots,\varepsilon_t\) are random errors (white noise). A linear regression of the current value of the series against current and previous (observed) white noise error terms.

Integrated #

Still trying to understand where this fits in.

  • Julia contains a package for implementing ARIMA. Maybe I can use this as a chance to learn Julia.
  • Python package.