Modèles GARCH en R
Kris Boudt
Professor of finance and econometrics
Utilisez des équations distinctes pour la variance après un rendement inattendu négatif ou positif $e_t = R_t - \mu_t$ :
Cas où $ e_{t-1} \gt 0$
$$ \sigma^2_{t} = ??? $$
Cas où $ e_{t-1} \le 0$
$$ \sigma^2_{t} = ??? $$
... on retient l'équation GARCH(1,1) usuelle :
Cas où $ e_{t-1} \gt 0$
$$ \sigma^2_{t} = \omega + \alpha e^{2}_{t-1} + \beta \sigma^{2}_{t-1} $$
Cas où $ e_{t-1} \le 0$
$$ \sigma^2_{t} = ??? $$
La variance prévue devrait être plus élevée qu'après une surprise positive.
Donc un coefficient plus grand multiplie l'erreur de prévision au carré : $\alpha+\gamma$ plutôt que $\alpha$, avec $\gamma \geq 0$
Cas où $ e_{t-1} \gt 0$
$$ \sigma^2_{t} = \omega + \alpha e^{2}_{t-1} + \beta \sigma^{2}_{t-1} $$
Cas où $ e_{t-1} \le 0$
$$ \sigma^2_{t} = \omega + (\alpha + \gamma) e^{2}_{t-1} + \beta \sigma^{2}_{t-1} $$
C'est le modèle GJR proposé par Glosten, Jagannathan et Runkle.
Modifiez l'argument variance.model de ugarchspec() de model = "sGARCH" à model = "gjrGARCH" :
garchspec <- ugarchspec(mean.model = list(armaOrder = c(0, 0)),
variance.model = list(model = "sGARCH"),
distribution.model = "sstd")
$$\downarrow$$
garchspec <- ugarchspec(mean.model = list(armaOrder = c(0, 0)),
variance.model = list(model = "gjrGARCH"),
distribution.model = "sstd")
Estimez le modèle
garchfit <- ugarchfit(data = msftret, spec = garchspec)
Examinez les coefficients GARCH
coef(garchfit)[2:5]
omega alpha1 beta1 gamma1
2.007875e-06 3.423336e-02 9.363302e-01 5.531854e-02

out <- newsimpact(garchfit)
plot(out$zx, out$zy, xlab = "erreur de prévision", ylab = "variance prévue")

Modèles GARCH en R