1

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?

Richard Hardy
  • 54,375
  • 10
  • 95
  • 219
Jack
  • 275
  • 1
  • 2
  • 10
  • 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? – Richard Hardy Jun 22 '18 at 10:07
  • Thanks for your reply. Yes, I want to be able to compute the mean squared error of the predictions, i.e., the prediction error. – Jack Jun 22 '18 at 10:11
  • 1
    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](https://stats.stackexchange.com/questions/352840/multistep-prediction-interval-for-armap-q-process). – Richard Hardy Jun 23 '18 at 13:39

2 Answers2

1

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.

Richard Hardy
  • 54,375
  • 10
  • 95
  • 219
  • 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$? – Jack Jun 22 '18 at 10:34
  • @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? – Richard Hardy Jun 22 '18 at 10:38
  • Ah maybe I've used the wrong terminology. I want to create a prediction interval for my h-step ARMA-GARCH forecasts? In short, how can I do that? – Jack Jun 22 '18 at 10:40
  • @Jack, Are you sure you want the interval or do you want the expectation you wrote above? – Richard Hardy Jun 22 '18 at 10:42
  • I want the interval. But in order to calculate the interval don't you need the conditional variance of $X_{t+h} - \hat{X}_{t+h}$? – Jack Jun 22 '18 at 10:44
  • @Jack, it depends on what distribution you are assuming. If it is normal, variance is enough to calculate the interval. – Richard Hardy Jun 22 '18 at 10:45
  • Thank you. So if I assume the distribution is normal, how can I find the interval? – Jack Jun 22 '18 at 10:46
  • what happens if you don't want to assume that the distribution of the errors is normal ? How to incorporate possible anomalies ( i.e. identified pulses) in computing the bootstrapped limits for an h period out forecast ? – IrishStat Jun 22 '18 at 14:57
  • @IrishStat, The answer above is for an ARMA-GARCH model with *any* distribution and it does not use bootstrap. For an ARMA-GARCH with pulses, that would be a new question. But generally, I would add variables to the conditional mean and/or variance equations to add features beyond the core features generated by ARMA-GARCH. Alternatively, I would alter the assumed distribution of errors. – Richard Hardy Jun 22 '18 at 15:05
  • 1
    @Jack, I updated the answer to include interval forecasts. – Richard Hardy Jun 22 '18 at 15:07
  • @RichardHardy, I was wondering where you saw the formula for the forecast interval which you kindly provided for me? I would like to read a little more about how it has been constructed. – Jack Jun 23 '18 at 10:44
  • 1
    You can refer to Hyndman and Athanasopoulos ["Forecasting: Principles and Practice"](https://otexts.org/fpp2/), specifically Section 3.5 ["Prediction intervals"](https://otexts.org/fpp2/prediction-intervals.html). There is no GARCH there, so I adapted the material to GARCH myself. – Richard Hardy Jun 23 '18 at 13:04
  • 1
    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. – Richard Hardy Jun 23 '18 at 13:15
0

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))

  • Thanks! I have deleted my guess. Do you have a suggestion of what the correct answer might be? – Richard Hardy Jan 07 '22 at 18:34
  • 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 – Javier Moreno Sepena Jan 07 '22 at 18:56
  • *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. – Richard Hardy Jan 07 '22 at 19:50
  • 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. – Javier Moreno Sepena Jan 24 '22 at 11:07