Variance targeting
Financial return volatility clusters through time: periods of above average volatility are followed by period of below average volatility. The long run prediction is that:
- when volatility is high, it will decrease and revert to its long run average.
- when volatility is low, it will increase and revert to its long run average.
In the estimation of GARCH models we can exploit this mean reversion behavior of volatility by means of volatility targeting. We then estimate the GARCH parameters in such a way that the long run volatility implied by the GARCH model equals the sample standard deviation.
Let's do this for the EUR/USD returns.
This exercise is part of the course
GARCH Models in R
Exercise instructions
- Modify the GARCH specification such that variance targeting is used.
- Estimate the GARCH model.
- Use
uncvariance()
to compute the GARCH implied long run standard deviation. - Verify that after rounding this number equals the sample standard deviation.
Hands-on interactive exercise
Have a go at this exercise by completing this sample code.
# Complete the specification to do variance targeting
garchspec <- ugarchspec(mean.model = list(armaOrder = c(0,0)),
variance.model = list(model = "sGARCH",
___ = ___),
distribution.model = "std")
# Estimate the model
garchfit <- ___(data = EURUSDret, spec = garchspec)
# Print the GARCH model implied long run volatility
sqrt(___(___))
# Verify that it equals the standard deviation (after rounding)
all.equal(sqrt(uncvariance(garchfit)), ___(EURUSDret), tol = 1e-4)