AI Agents & Econometric Coding

Time series · Time series

ARIMA Forecasting after Differencing

ARIMA combines differencing with autoregressive and moving-average dynamics to forecast a nonstationary series.

Model the change, forecast the level

An ARIMA$(1,1,1)$ model applies an ARMA$(1,1)$ model to the first difference (Hyndman and Athanasopoulos, 2021).

$$ \Delta y_t=\phi\Delta y_{t-1}+\varepsilon_t+\theta\varepsilon_{t-1}. $$

With information through date $T$, the one-step change forecast is

$$ \widehat{\Delta y}_{T+1\mid T}=\phi\Delta y_T+\theta\hat\varepsilon_T. $$

The level forecast adds this change to $y_T$.

A one-step calculation

Let $y_T=120$, $\Delta y_T=3$, $\hat\varepsilon_T=-1$, $\phi=0.6$, and $\theta=0.2$.

ComponentContribution
AR term$0.6\times3=1.8$
MA term$0.2\times(-1)=-0.2$
Forecast change1.6
Forecast level121.6

Assumptions and implementation

The differenced process should be approximately stationary and invertible under the stated parameterization. Forecast uncertainty also depends on innovation variance and horizon.

Software can use opposite signs for the moving-average term. It can also include drift or a constant under different meanings after integration. Initial-state and likelihood choices can change estimates in short samples.

Stacked level and first-difference plots reveal which scale the one-step equation forecasts.

Reading a forecast on two scales

The fitted ARMA equation predicts the next change. The reported forecast for the observed series is a level. This distinction prevents a common one-unit error in interpretation. In the example, 1.6 is the expected change from date $T$ to $T+1$. The corresponding level is 121.6 because the last observed level equals 120. A multi-step forecast repeats this accumulation. Uncertainty grows because future innovations enter every later reconstructed level.

Report the forecast origin, horizon, point forecast, and prediction interval. State whether the interval concerns a future observation or its conditional mean. A forecast can be numerically precise and still miss a structural break outside the historical sample.

Model checks and implementation

Plot the level series and its differences before selecting orders. A remaining trend in $\Delta y_t$ suggests another deterministic term or a different transformation. Residual autocorrelation indicates that the chosen AR and MA terms leave predictable structure. Check residual plots, the residual autocorrelation function, and forecast errors from rolling origins.

Record the software convention for $\theta$. Confirm the sign by reproducing the one-step calculation from the final residual. Also record drift, seasonal terms, missing-date handling, and the method used to initialize the likelihood. Compare nearby specifications with out-of-sample errors because information criteria measure in-sample fit with a complexity penalty. Extreme observations can distort parameter estimates and prediction intervals. If the series was logged, transform forecasts with care because exponentiating a conditional log mean does not generally recover the conditional level mean. (Box et al., 2015)

Further reading

Hyndman and Athanasopoulos give an accessible ARIMA treatment with forecasting examples (Hyndman and Athanasopoulos, 2021). Box, Jenkins, Reinsel, and Ljung develop the model family in detail (Box et al., 2015).

Sources and further reading

  1. Rob J. Hyndman, George Athanasopoulos. 2021. Forecasting: Principles and Practice. OTexts. Source.
  2. George E. P. Box, Gwilym M. Jenkins, Gregory C. Reinsel, Greta M. Ljung. 2015. Time Series Analysis: Forecasting and Control. Wiley. Source.

Related reading

About this benchmark task

Status
In the benchmark
Identifier
arima_forecast
Family
Time series
Software
Stata, R, Python
Source
Benchmark task set

Task statement

Fit ARIMA(1,1,1) to the level series y by maximum likelihood, including no constant or drift term. Report the one-step-ahead forecast of y in levels for t = 251 and the 95 percent prediction interval bounds as rows named forecast, lower_95, and upper_95.

Required output

forecast, lower_95, upper_95

Open every recorded run for this task.