Évitez la complexité inutile

Modèles GARCH en R

Kris Boudt

Professor of finance and econometrics

Évitez la complexité superflue

  • Si vous savez
    • que la dynamique de la moyenne est négligeable
    • qu'il n'y a pas d'effet de levier dans la variance
    • que la distribution est symétrique et à queues épaisses

Alors une moyenne constante, un GARCH(1, 1) standard avec une loi t de Student est une spécification adaptée :

garchspec <- ugarchspec(mean.model = list(armaOrder = c(0, 0)),
                        variance.model = list(model = "sGARCH"),
                        distribution.model = "std")
Modèles GARCH en R

Restreindre les estimations de paramètres

  • Si vous savez que des paramètres
    • sont égaux à une certaine valeur
    • ou sont dans un intervalle
  • Alors imposez-le dans la spécification avec
    • setfixed()
    • setbounds()
Modèles GARCH en R

Application aux taux de change

Spécification et estimation

garchspec <- ugarchspec(mean.model = list(armaOrder = c(0, 0)),
                        variance.model = list(model = "sGARCH"),
                        distribution.model = "std")
garchfit <- ugarchfit(data = EURUSDret, spec = garchspec)

Résultats d'estimation

coef(garchfit)
           mu         omega        alpha1         beta1         shape 
-3.562136e-05  8.005123e-08  3.097322e-02  9.674496e-01  8.821902e+00
Modèles GARCH en R

Exemple de setfixed()

  • Si vous savez que alpha1 = 0.05 et shape = 6 : imposez ces valeurs à l'estimation.
  • Comment ? Utilisez la méthode setfixed() sur un objet ugarchspec
setfixed(garchspec) <- list(alpha1 = 0.05, shape = 6)

Résultat

garchfit <- ugarchfit(data = EURUSDret, spec = garchspec)

coef(garchfit)
           mu         omega        alpha1         beta1         shape 
-4.142922e-05  2.061772e-07  5.000000e-02  9.489622e-01  6.000000e+00
Modèles GARCH en R

Bornes sur les paramètres

  • Les paramètres GARCH peuvent être restreints à un intervalle.
  • Parfois, l'intervalle de valeurs plausibles est large :
    • Pour garantir une variance positive, on exige par ex. que tous les paramètres de variance ($\omega$, $\alpha$, $\beta$, $\gamma$) soient positifs.
  • Parfois, l'intervalle de valeurs plausibles est plus étroit :
    • Les valeurs probables de $\alpha$ sont entre 0,05 et 0,2
    • Les valeurs probables de $\beta$ sont entre 0,7 et 0,95
  • De telles bornes sur les paramètres peuvent être imposées avec la méthode setbounds().
Modèles GARCH en R

Exemple de setbounds()

setbounds(garchspec) <- list(alpha1 = c(0.05, 0.2), beta1 = c(0.8, 0.95))
Modèles GARCH en R

Utilisez votre intuition pour éviter la complexité superflue.

Exploitez les informations dont vous disposez :

  • pour construire des modèles simples (et malins)
  • pour fixer des valeurs de paramètres ou poser des bornes
  • pour rendre la dynamique GARCH réaliste :

    • retour à la moyenne de la volatilité autour de l'écart type de l'échantillon
      sd(EURUSDret) # renvoie une valeur de 0.006194049
      
Modèles GARCH en R

Aglomerats de volatilité et retour à la moyenne

Modèles GARCH en R

Ciblage de la variance

  • Mathématiquement, cela signifie que la variance inconditionnelle induite par les modèles GARCH est égale à la variance d'échantillon $\hat \sigma^2$.
  • Comment ? En réglant l'argument variance.targeting = TRUE dans variance.model de ugarchspec() :
garchspec <- ugarchspec(mean.model = list(armaOrder = c(0,0)),
                        variance.model = list(model = "sGARCH",
                        variance.targeting = TRUE),
                        distribution.model = "std")
garchfit <- ugarchfit(data = EURUSDret, spec = garchspec)
all.equal(uncvariance(garchfit), sd(EURUSDret) ^ 2, tol = 1e-4)
TRUE
Modèles GARCH en R

Imposons des restrictions au modèle GARCH

Modèles GARCH en R

Preparing Video For Download...