I recently wrote various Python functions to fit ARMA models and make forecasts from them. I am now trying to do the same for ARMA-GARCH models.

To make $h$-step forecasts from ARMA models, I used the innovations algorithm, as described in Brockwell's Introduction to Time Series Analysis and Forecasting. I was wondering whether I could still use this algorithm to make $h$-step forecasts from ARMA-GARCH models?

If not, is there any good literature out there which explains how to make $h$-step interval forecasts from ARMA-GARCH models, and how to compute the prediction error?

  • $\begingroup$ The point forecasts from ARMA-GARCH are exactly the same as from ARMA if you take predicted conditional means as forecasts (which are optimal under square loss). Are you interested in anything beyond that? $\endgroup$ Commented Jun 22, 2018 at 10:07
  • $\begingroup$ Thanks for your reply. Yes, I want to be able to compute the mean squared error of the predictions, i.e., the prediction error. $\endgroup$
    – Jack
    Commented Jun 22, 2018 at 10:11
  • 1
    $\begingroup$ I noticed there is no thread for ARMA-only case, which is quite surprising considering the number of ARMA-related questions on this site. I have posted the ARMA-only question here. $\endgroup$ Commented Jun 23, 2018 at 13:39

2 Answers 2


An ARMA(p,q)-GARCH(r,s) model specifies the conditional distribution of a time series:

\begin{aligned} x_t &= \mu_t + u_t, \\ \mu_t &= \varphi_0 + \varphi_1 x_{t-1} + \dots + \varphi_p x_{t-p} + \theta_1 u_{t-1} + \dots + \theta_q u_{t-q}, \\ u_t &= \sigma_t \varepsilon_t, \\ \sigma_t^2 &= \omega + \alpha_1 u_{t-1}^2 + \dots + \alpha_s u_{t-s}^2 + \beta_1 \sigma_{t-1}^2 + \dots + \beta_r \sigma_{t-r}^2, \\ \varepsilon_t &\sim i.i.d.(0,1). \end{aligned}

(See this answer for an unorthodox, though hopefully enlightening representation of ARMA-GARCH.)

Point forecast
The conditional mean of the distribution is given solely by the ARMA conditional mean equation -- the equation for $\mu_t$. Hence, if the point forecasts are the predicted conditional means (which is a popular choice and is optimal under square loss), the point forecasts from an ARMA-GARCH model will be determined entirely by the estimated ARMA equation. (However, the estimation of the ARMA equation will be affected by the choice of the conditional variance equation and hence will generally differ in presence vs. in absence of GARCH.)

Interval forecast for GARCH with a constant mean (no ARMA)
By the assumption that the innovations in the GARCH process are uncorrelated, the variance of their sum equals the sum of their variances, $$ \text{Var}(u_{t+1}+\dots+u_{t+h})=\text{Var}(u_{t+1})+\dots+\text{Var}(u_{t+h}). $$ A $(1-\alpha)\times 100\%$ level forecast interval is $$ [\ \hat\mu + q_{\alpha/2}(\sigma^2(h)); \ \hat\mu + q_{1-\alpha/2}(\sigma^2(h)) \ ], $$ where $\hat\mu$ is obtained from the conditional mean equation, $\sigma^2(h)=\sum_{i=1}^h \hat\sigma^2_{t+i}$, $\hat\sigma^2_{t+i}$ is obtained iteratively from the conditional variance equation, and $q_{\alpha}$ is the $\alpha$-level quantile of the relevant distribution (Normal if $\varepsilon$ is assumed to be Normal and potentially ugly otherwise; in the latter case, simulation may be needed to obtain the relevant quantiles).

Interval forecast for ARMA-GARCH
To be added.
A simplified answer is available at Hyndman and Athanasopoulos "Forecasting: Principles and Practice", specifically Section 8.8 "Forecasting"; see also Section 3.5 "Prediction intervals" and the thread "Multistep prediction interval for ARMA(p,q) process".

All of the above ignores parameter estimation uncertainty, so the actual intervals should be wider. The problem diminishes with the sample size, though, and vanishes asymptotically.

Keywords: multi-step, multi-period, multistep, multiperiod, multiple step, multiple period, steps ahead, periods ahead, forecast, predict, forecasting, prediction, point, interval, ARMA, ARIMA, GARCH, volatility, variance.

  • $\begingroup$ Thank you. But how do you compute the prediction errors under ARMA-GARCH? I.e., $\mathbb{E}(X_{t+h} - \hat{X}_{t+h})^2$? $\endgroup$
    – Jack
    Commented Jun 22, 2018 at 10:34
  • $\begingroup$ @Jack, I don't understand. The forecast error is $x_{t+h}-\hat x_{t+h}$, i.e. the realization minus the forecast. Are you interested in calculating the expectation of its square? $\endgroup$ Commented Jun 22, 2018 at 10:38
  • 1
    $\begingroup$ @Jack, I updated the answer to include interval forecasts. $\endgroup$ Commented Jun 22, 2018 at 15:07
  • 1
    $\begingroup$ You can refer to Hyndman and Athanasopoulos "Forecasting: Principles and Practice", specifically Section 3.5 "Prediction intervals". There is no GARCH there, so I adapted the material to GARCH myself. $\endgroup$ Commented Jun 23, 2018 at 13:04
  • 1
    $\begingroup$ Oh, it seems I made a mistake in calculating the forecast interval due to the ARMA part (it would be fine for GARCH only, but not ARMA-GARCH). Sorry! I will edit the answer to stress this and, if I find time, will update with a correct answer for ARMA-GARCH. $\endgroup$ Commented Jun 23, 2018 at 13:15

I wanted to stress that Interval forecast for ARMA-GARCH seems incorrect. $\sigma^2(h)$ by definition is always growing in time. However, using that formula could lead to a decreasing $\sigma^2(h)$. Furthermore, if your ARIMA is using less lags (k) than the predicted interval (h), that means that the first h-k predicted variances, are not being used to forecast $\sigma^2(h)$, so could lead to decreasing forecasted $\sigma^2(h)$ (since those h-k coefficients are equal to 0))

  • $\begingroup$ Thanks! I have deleted my guess. Do you have a suggestion of what the correct answer might be? $\endgroup$ Commented Jan 7, 2022 at 18:34
  • $\begingroup$ The funny part is that fGarch package is using tour formula top make arma+garch predictions. It also simply fails and gives an error when trying to forecast h greater than l lags of arima $\endgroup$ Commented Jan 7, 2022 at 18:56
  • $\begingroup$ tour formula? You probably meant your formula, in which case it is quite funny, as I think I came up with it from scratch. And apparently made the same mistake as the author of the package. $\endgroup$ Commented Jan 7, 2022 at 19:50
  • $\begingroup$ Page 319 Peter Brockwell Time Series: Theory and Methods Second Edition. The solution is there, just replacing the sigma squares by your estimations from GARCH. The solution is too complex to be understood for me. $\endgroup$ Commented Jan 24, 2022 at 11:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.