# How to test predictive power of GARCH model

I ran the following code in R using the fGarch package to get estimated coefficients for a (1,1) model:

garchFit(formula = ~ garch(1,1), data=hubtimeseries)


It gave me the following output:

Title:
GARCH Modelling

Call:
garchFit(formula = ~garch(1, 1), data = hubtimeseries)

Mean and Variance Equation:
data ~ garch(1, 1)
<environment: 0x000000000a765898>
[data = hubtimeseries]

Conditional Distribution:
norm

Coefficient(s):
mu        omega       alpha1        beta1
-2.1983e-05   2.2577e-05   1.3278e-01   8.6786e-01

Std. Errors:
based on Hessian

Error Analysis:
Estimate  Std. Error  t value Pr(>|t|)
mu     -2.198e-05   4.651e-04   -0.047    0.962
omega   2.258e-05   4.826e-06    4.678 2.89e-06 ***
alpha1  1.328e-01   1.014e-02   13.093  < 2e-16 ***
beta1   8.679e-01   9.195e-03   94.382  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Log Likelihood:
8138.467    normalized:  1.886962


My question is similar to what was asked here: https://stats.stackexchange.com/questions/143880/garch-volatility-forecast-model-in-practice

We have the following GARCH model: $$\sigma_t^2= \alpha_0 + \sum_{i=1}^q \alpha_i \epsilon_{t-i}^2 + \sum_{i=1}^p \beta_i \sigma_{t-i}^2$$

What do the $\sigma_{t-i}^2$ and $\epsilon_{t-i}^2$ coefficients refer to? Where do we get these coefficients to feed into our model? Aren't errors unobservable?

From there, what do we do with the $\sigma_{t}^2$ estimates we get? Does the figure refer to daily, weekly volatility?

Basically, I have no idea what to do with the coefficients I got. I have log returns on a given security until mid-2014 or so and want to test how well my estimated model predicted volatility until now.

What do the $\sigma_{t-i}^2$ and $\epsilon_{t-i}^2$ coefficients refer to?

The errors $\epsilon_t$ are normally replaced by residuals $\hat \epsilon_t$ from a model for the conditional mean of the dependent variable $y_t$. Sometimes the conditional mean model is empty, then the dependent variable $y_t$ itself is used instead of the errors $\epsilon_t$.

$\sigma_t^2$ is the conditional variance of the error $\epsilon_t$, conditional on the past $q$ errors and the past $p$ conditional variances that enter the GARCH model formula. The conditional variances $\sigma_t^2$ are unobserved but can still be fitted using the GARCH model.

Where do we get these coefficients to feed into our model? Aren't errors unobservable?

Neither $\sigma_t^2$ nor $\epsilon_t$ are coefficients, they are variables. As mentioned above, the errors $\epsilon_t$ are normally replaced by the residuals $\hat \epsilon_t$ from a model for the conditional mean of the dependent variable $y_t$. If the conditional mean model is empty, then the dependent variable $y_t$ itself is used instead of the errors $\epsilon_t$. Meanwhile, the conditional variances $\sigma_t^2$ are not used as inputs in the model. They are a latent variable.

From there, what do we do with the $\sigma_{t}^2$ estimates we get? Does the figure refer to daily, weekly volatility?

The fitted $\hat \sigma_t^2$ can be used as measures of volatility, which can be useful in many respects. For example, they are instrumental in calculating value at risk (VaR). The frequency of $\sigma_t^2$ is the same as that of the data $y_t$. Thus if $y_t$ is weekly, then $\sigma_t^2$ is also weekly.

Basically, I have no idea what to do with the coefficients I got. I have log returns on a given security until mid-2014 or so and want to test how well my estimated model predicted volatility until now.

For simplicity, let as assume no model for the conditional mean of log-returns $y_t$ on the given security. Then $\epsilon_t=y_t$ and you can fit a GARCH model to the $y_t$ series. You can then divide the $y_t$ series by the fitted $\hat \sigma_t$ series, observation by observation, to obtain a scaled $\tilde y_t$ series: $\tilde y_t:=\frac{y_t}{\hat \sigma_t}$. You expect the $\tilde y_t$ series to be conditionally homoskedastic and have a distribution matching the one used for fitting the GARCH model. E.g. if you assumed a normal distribution when fitting the GARCH model, the $\tilde y_t$ series should be homoskedastic and normal. That can be checked using statistical tests. For example, the $\tilde y_t$ should pass the Li-Mak test (similar to the ARCH-LM test, but used for fitted values from GARCH models rather than for raw data).

• Thank you very much for the insightful answer! When you said, "You can then divide the yt series by the fitted σ^t series, observation by observation, to obtain a scaled y~t series: y~t:=ytσ^t," that can be used for the Ljung-Box statistic too, right? – Ninja7777 Apr 15 '15 at 18:32
• In essence, the answer is yes. When it comes to details, I am not completely sure whether an adjustment is needed to the Ljung-Box test to account for the fact that $\hat \sigma_t$ are fitted values rather than the true values $\sigma_t$. For example, Li-Mak test takes this into account and that is why the Li-Mak test is used instead of the regular ARCH-LM test on $\tilde y_t$. But I think most people ignore this subtlety and just use the Ljung-Box test regardless. – Richard Hardy Apr 15 '15 at 18:47

I read up on the matter some more and wanted to share my findings. The squared error variable does indeed refer to returns: $(r-\mu)^2$, where $\mu$ is assumed to be 0 $r-\mu$ is simply assumed to be 0 (that is what mainly threw me off). As Richard mentioned, not all models make this assumption though (if I understood correctly). The estimated $\sigma_t^2$ refers to daily volatility if you're dealing with daily data and depends on the previous ESTIMATE of volatility and the previous return (for a (1,1) model)). Where do you get the first volatility estimate in the first place to initiate the model (this is something that confused me too)? It is actually initialized as the observed volatility, which, again, we simply take to be $(r-\mu)^2$, where $\mu$ is assumed to be 0, so basically we're just squaring the previous day's return.

The Hull book (Options, Futures, and Other Derivatives) has a chapter on volatility where the GARCH model is discussed fairly in-depth. The explanation found therein is the clearest I've ever come across anywhere and I can finally say I understand the basics of the model and underlying theory. Google "hull garch xls" and use the spreadsheet to follow Hull's examples in the textbook and you'll fully understand the model.