This question is a followup of my previous question Forecasting with ARIMA and GARCH: does my plan look alright?

I have a times series $r_t$ and I am trying to estimate its volatility with a GARCH model as in the referred question.

You can for example consider the following time series:

 [1] -0.008230499 -0.025105921 -0.025752496  0.025752496
 [5] -0.008510690  0.041847110 -0.033336420  0.041499731
 [9] -0.008163311  0.024292693 -0.032523192 -0.008298803
[13]  0.080042708  0.000000000  0.088292607  0.041385216
[17] -0.013605652  0.046831300  0.006514681 -0.019672766
[21]  0.013158085 -0.006557401  0.019544596  0.092373320
[25]  0.116474991  0.020726131  0.169418152  0.167054085
[29] -0.128832872  0.056695344 -0.032002731 -0.016393810
[33] -0.151399646  0.104879631  0.159701110 -0.029964789
[37] -0.003809528 -0.034955015 -0.011928571 -0.016129382
[41]  0.012121361 -0.004024150 -0.004040410 -0.008130126
[45] -0.033198069 -0.065382759  0.017857617  0.034786116
[49] -0.017241806 -0.026433257  0.013303966  0.000000000
[53] -0.045052664  0.013730193 -0.009132484 -0.013857035
[57] -0.023530497 -0.019231362 -0.070380797 -0.005221944
[61]  0.015584731 -0.010362787 -0.048009219 -0.005479466

the elements of which are not autocorrelated.

The volatility is then estimated using a GARCH(1,1) model and predicted from it as follows:

G.A = garchFit(formula = A~garch(1, 1), data = diff_log_close_price, trace = F)
G.A.est = predict(G.A, 30, plot=T, nx=nrow(closing_price))
volatility.A = c(volatility(G.A, type = "sigma"), G.A.est$standardDeviation)


  1. How can I estimate the confidence interval for the volatility from a theoretical point of view?
  2. Is there an R function that does it?

I need the intervals for both predicted and historical volatility.

  • $\begingroup$ Great question! Did not have enough time to think deeper about it, but looking forward to some answers. Under a correctly specified model, the uncertainty in the forecasts of the conditional variance will be directly due to estimation variance (imprecisely estimated parameters) but not the estimated variance of the point process (which applies directly when calculating confidence and prediction intervals for fitted point values and point forecasts, respectively). $\endgroup$ Aug 25 '16 at 20:48

Due to the fact that I am not an avid R user, I will only contribute to question 1).

The GARCH process is defined by the mean equation \begin{equation} r_t = \mu + \sigma_t z_t \end{equation} and the GARCH equation \begin{equation} \sigma_{t+1}^2 = \omega + \alpha \varepsilon_t^2 + \beta\sigma_t^2 \end{equation} combined with an assumption about $z_t$, e.g. $z_t\sim N(0,1)$.

I have never seen people showcase confidence intervals for the fitted volatility process - in the GARCH process, the volatility at time t+1 is not stohastic, but know at time t.

It will however make sense, to showcase confidence intervals for $\varepsilon_{t+1\vert t} \sim N(0,\sigma_{t+1}^2)$ or $\varepsilon_{t+1\vert t}^2$.

To construct confidence intervals for GARCH forecasts multiple periods ahead ($\sigma_{t+k\vert t}^2$), where no closed form distribution is available, the standard procedure is to simulate a large number of paths and take the desired quantile based on either the assumed distribution of $z_t$ applied in the estimation or the bootstrapped distribution.

  • $\begingroup$ Though $\sigma_{t+1}^2$ is indeed deterministic given the information available at time $t$, a GARCH model may be used for obtaining fitted conditional variance. Then it is quite natural to ask for some confidence intervals; after all, we do not assume the estimates are perfect (primarily due to estimation uncertainty if we forget about model uncertainty for now). Bootstrapping would be an easy solution if only this was not a time series setting; it should be possible nevertheless. I wonder what other solutions one could come up with. $\endgroup$ Mar 5 '18 at 13:07
  1. The conifdence interval is simply given by:

    $estimate\pm 1.96*s.e.$,

where 1.96 is the 95%-quantile of a normal distribution and s.e. is the standard error of the estimate.

  1. There is a specific object of the function predict in R that allows you to plot the forecast and the relative confidence interval, try:

      predict(G.A, n.ahead=30, mse='cond', plot=T)
  • 1
    $\begingroup$ I am afraid this does not apply to predicted volatilities (it applies to point forecasts, but that is besides the point). $\endgroup$ Feb 26 '17 at 12:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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