Variance targeting
De volatiliteit van financiële rendementen clustert in de tijd: periodes met bovengemiddelde volatiliteit worden gevolgd door periodes met benedengemiddelde volatiliteit. De langetermijnvoorspelling is dat:
- wanneer de volatiliteit hoog is, deze zal dalen en terugkeren naar het langetermijngemiddelde;
- wanneer de volatiliteit laag is, deze zal stijgen en terugkeren naar het langetermijngemiddelde.
Bij het schatten van GARCH-modellen kunnen we dit mean-reversiongedrag van volatiliteit benutten via volatility targeting. We schatten de GARCH-parameters dan zo dat de langetermijnvolatiliteit die uit het GARCH-model volgt gelijk is aan de steekproefstandaarddeviatie.
Laten we dit doen voor de EUR/USD-rendementen.
Deze oefening maakt deel uit van de cursus
GARCH-modellen in R
Oefeninstructies
- Pas de GARCH-specificatie aan zodat variance targeting wordt gebruikt.
- Schat het GARCH-model.
- Gebruik
uncvariance()om de door GARCH geïmpliceerde langetermijn-standaarddeviatie te berekenen. - Controleer dat dit getal na afronden gelijk is aan de steekproefstandaarddeviatie.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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)