Accueil / Factory / Algos ML / GARCH — factory / algos ML / modélisation de la volatilité

MODÈLE GARCH.

Un modèle qui ne prévoit pas le prix, mais son agitation. En finance, les jours calmes se suivent, et les jours agités aussi : c'est le regroupement de la volatilité. GARCH modélise ce phénomène pour prévoir la volatilité des prochains jours, base du calcul de la VaR, du prix des options et des limites de risque.

VolatilitéFinance de marchéGestion des risquesSéries temporellesNiveau : avancé

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceLa référence pour prévoir la volatilité à quelques jours
InterprétabilitéTrois paramètres lisibles, mais un vocabulaire de spécialiste
VitesseQuelques secondes par actif, même sur des années de cotations
Facilité de réglageGARCH(1,1) suffit souvent ; la loi des chocs reste à choisir
Tolérance aux données brutesExige des rendements réguliers et nettoyés des erreurs de cours
EN 30 SECONDES

La météo des marchés : après une journée d'orage, on s'attend à ce que le lendemain soit encore agité, puis que le calme revienne peu à peu. GARCH chiffre cette attente.

1. On passe aux rendements

On travaille sur les variations quotidiennes en %, pas sur les prix. Leur moyenne est proche de zéro et difficile à prévoir ; leur amplitude, elle, a de la mémoire.

2. La variance du jour dépend d'hier

Variance du jour = omega + alpha × (choc d'hier)² + beta × (variance d'hier). Alpha mesure la réaction aux nouvelles, beta la mémoire de l'agitation.

3. On projette la volatilité

Le modèle prévoit la volatilité des prochains jours. Elle revient progressivement vers son niveau de long terme, d'autant plus lentement que alpha + beta est proche de 1.

LE CAS MÉTIER

risque de marché · banque / gestion d'actifs / trésorerie
EN ENTRÉE

Près de six ans de cours de clôture

1 500 jours ouvrés d'un actif. Les rendements du jour ne se prévoient pas d'après ceux de la veille (autocorrélation de -0,01 sur le jeu d'exemple), mais leur amplitude si (0,21) : c'est la signature d'une volatilité en grappes.

EN SORTIE

Une volatilité prévue et une VaR

Le modèle donne les coefficients alpha et beta, la volatilité prévue jour par jour sur 10 jours, et la VaR à 99 % du lendemain : la perte qui ne devrait être dépassée qu'un jour sur cent. Sur ce jeu, simulé avec une persistance de 0,98, l'estimation d'alpha + beta ressort proche de 1.

CE QU'ON MESURE

Le backtest de la VaR

On compte, sur une période passée, les jours où la perte réelle a dépassé la VaR prévue la veille. Pour une VaR à 99 %, il en faut environ 1 %. Trop de dépassements : le risque est sous-estimé.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Prévoir la volatilité d'un actif, d'un taux de change ou d'un prix de matière première
  • Calculer une VaR ou une expected shortfall qui s'adapte aux conditions de marché
  • Ajuster des limites de risque, des appels de marge ou la taille des positions
  • Comparer le risque de plusieurs actifs sur une base cohérente

NON

  • Prévoir la direction du prix : GARCH ne dit rien sur la hausse ou la baisse
  • Données peu fréquentes (mensuelles) ou historique court : le regroupement de la volatilité y est peu visible
  • Effet asymétrique fort (les baisses agitent plus que les hausses) : utiliser EGARCH ou GJR-GARCH
  • Portefeuille de centaines d'actifs corrélés : passer à un modèle multivarié (DCC-GARCH) ou à une approche par facteurs
LES 4 RÉGLAGES QUI COMPTENT

Noms donnés pour R (rugarch) et Python (arch).

Ordres p et q : garchOrder / p, q

GARCH(1,1) suffit dans la grande majorité des cas. Monter en ordre apporte rarement un gain réel.

Loi des chocs : distribution.model / dist

La loi normale sous-estime les pertes extrêmes. Une loi de Student ("std" en R, "t" en Python) donne des queues plus épaisses et des VaR plus réalistes sur données réelles.

Variante : model / vol

sGARCH ou GARCH pour le cas standard ; eGARCH ou gjrGARCH (en Python, vol="EGARCH" ou o=1 pour GJR) pour que les baisses augmentent plus la volatilité que les hausses, ce qu'on observe sur les actions.

Échelle des rendements

Travailler en % (rendements multipliés par 100) aide l'optimisation à converger ; arch le recommande explicitement. Les paramètres se lisent alors en % au carré.

LE CODE MINIMAL

jeu d'exemple : cours_bourse.csv ↓
# Risque de marché : GARCH(1,1) en R
library(rugarch)

cours <- read.csv("cours_bourse.csv")
rendements <- 100 * diff(log(cours$cloture))  # rendements quotidiens en %

# Les rendements ne se prévoient pas, leur amplitude si : les périodes agitées se suivent
cat("Autocorrélation des rendements :", round(acf(rendements, plot = FALSE)$acf[2], 2),
    "| de leur valeur absolue :", round(acf(abs(rendements), plot = FALSE)$acf[2], 2), "\n")

# GARCH(1,1) : la variance du jour dépend du choc d'hier (alpha1) et de la variance d'hier (beta1)
spec <- ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1, 1)),
                   mean.model = list(armaOrder = c(0, 0), include.mean = TRUE),
                   distribution.model = "norm")
fit <- ugarchfit(spec, data = rendements)
print(round(coef(fit), 4))
cat("Persistance alpha + beta :", round(sum(coef(fit)[c("alpha1", "beta1")]), 3), "\n")

# Volatilité prévue sur 10 jours et VaR à 99 % du lendemain
vol <- as.numeric(sigma(ugarchforecast(fit, n.ahead = 10)))
cat("Volatilité quotidienne prévue (%) :", round(vol, 2), "\n")
var99 <- -(coef(fit)["mu"] + qnorm(0.01) * vol[1])
cat("VaR 99 % à 1 jour :", round(var99, 2), "% | volatilité annualisée :", round(vol[1] * sqrt(252), 1), "%\n")

QUESTIONS FRÉQUENTES

Que signifie GARCH ?

Generalized AutoRegressive Conditional Heteroskedasticity : hétéroscédasticité conditionnelle autorégressive généralisée. Autrement dit, une variance qui change dans le temps et dépend de son propre passé et des chocs récents.

Comment interpréter alpha et beta dans un GARCH(1,1) ?

Alpha mesure la réaction de la volatilité à un choc récent, beta sa mémoire. Leur somme est la persistance : proche de 1, une période agitée dure longtemps. Si elle atteint 1, la volatilité ne revient plus vers un niveau moyen.

Quelle différence entre GARCH et volatilité historique ?

La volatilité historique est l'écart-type des rendements sur une fenêtre fixe, par exemple 20 jours : tous les jours comptent autant, puis disparaissent d'un coup. GARCH pondère le passé de façon décroissante et prévoit le retour vers un niveau de long terme.

LES ALGOS VOISINS

à comparer avant de choisir
pour la moyenne, pas la variance

ARIMA

Modélise le niveau d'une série. On combine souvent les deux : un ARIMA pour la moyenne, un GARCH pour la variance.

Voir la fiche →
pour les scénarios

Simulation Monte Carlo

Simule des milliers de trajectoires à partir de la volatilité GARCH pour une VaR de portefeuille ou le prix d'une option.

Voir la fiche →
la version simplifiée

Lissage exponentiel

La volatilité EWMA (méthode RiskMetrics) lisse les rendements au carré. C'est un GARCH sans retour vers un niveau de long terme.

Voir la fiche →
— formation

Passer de la fiche à la pratique

Dataistudio forme les équipes au machine learning et à l'IA, sur des cas concrets.

Voir les formations →