Machine learning appliqué à la finance · Essentiel · 9 min

Séries temporelles : AR/ARIMA, GARCH

Objectif: Modéliser dépendance temporelle et stationnarité ; introduire AR/ARIMA, GARCH et validation chronologique, en distinguant économétrie et machine learning.

Avant de continuer

Il faut connaître la volatilité réalisée et la notion de clustering de volatilité.

Vocabulaire

Stationnarité
La propriété qu'une série temporelle ait des propriétés statistiques (moyenne, variance) stables dans le temps, une hypothèse nécessaire pour la plupart des modèles classiques de séries temporelles.
Clustering de volatilité
Le phénomène observé sur les marchés où les périodes de forte volatilité ont tendance à se regrouper dans le temps, plutôt que d'être distribuées uniformément.

Intuition

Contrairement aux modèles vus jusqu'ici qui supposent des observations indépendantes, une série temporelle financière (prix, rendements, volatilité) a une dépendance intrinsèque au temps : la valeur d'aujourd'hui dépend de celle d'hier, et la volatilité d'aujourd'hui dépend de la volatilité récente — ignorer cette structure temporelle, c'est jeter une information essentielle.

Définition

Quel problème ? Modéliser une grandeur qui évolue dans le temps avec une dépendance entre observations successives (autocorrélation), et souvent une volatilité elle-même variable dans le temps. Quand l'utiliser ? Pour des données ordonnées chronologiquement où l'ordre temporel porte de l'information (rendements, taux, volumes). Quand l'éviter ? Si la série n'est manifestement pas stationnaire sans transformation adaptée (différenciation), ou si l'hypothèse de dépendance temporelle n'a pas de sens pour les données. Un modèle AR(p) exprime la valeur actuelle comme combinaison linéaire des p valeurs passées plus un bruit ; ARIMA ajoute une différenciation (pour rendre une série non-stationnaire stationnaire) et des termes de moyenne mobile ; GARCH modélise spécifiquement la variance conditionnelle, capturant le clustering de volatilité que Black-Scholes (volatilité constante, M06-4) ignore par construction.

Utilité

Quelles données/sortie ? Une série ordonnée chronologiquement en entrée, une prévision du prochain point (ou de sa variance) en sortie. Comment l'entraîner/évaluer ? Ajuster les paramètres par maximum de vraisemblance, évaluer via une validation chronologique (jamais un simple k-fold aléatoire, voir M12-cross) qui respecte l'ordre temporel. Pourquoi ce modèle ? Contrairement à un modèle de machine learning générique qui traite chaque observation comme indépendante, ces modèles économétriques encodent explicitement la dépendance temporelle, ce qui est souvent indispensable pour des données financières.

Exemple concret

Un GARCH(1,1) calibré avec ω=0,00001, α=0,08, β=0,90 a une variance de long terme ω/(1−α−β)=0,00001/0,02=0,0005, soit σ_long-terme=√0,0005≈2,24%. La veille, la volatilité était à ce niveau de long terme (σ_{t-1}=2,24%, σ_{t-1}²=0,0005). Un choc de marché survient : le rendement du jour est de −6% (ε_{t-1}²=0,0036). La nouvelle variance prédite est σ_t²=0,00001+0,08×0,0036+0,90×0,0005=0,00001+0,000288+0,00045=0,000748, soit σ_t=√0,000748≈2,73% : la volatilité prédite pour le lendemain bondit de 2,24% à 2,73% après ce seul choc, puis décroîtra progressivement vers 2,24% si plus aucun choc ne survient — c'est le clustering de volatilité qu'un modèle à volatilité constante ne capture jamais.

Toujours bloqué ? Une autre façon de voir les choses

Un modèle AR ressemble à prédire la météo de demain principalement à partir de celle d'aujourd'hui ("il a plu aujourd'hui, donc il pleuvra probablement encore un peu demain") ; un GARCH, lui, prédit non pas la météo elle-même mais son "agitation" (la variabilité) : après une tempête, on s'attend à une météo encore agitée les jours suivants, même si on ne sait pas exactement s'il pleuvra ou non.

Formule indispensable

Variables, unités et hypothèses

  • — Variance conditionnelle (prévue) à la date t
  • — Poids du choc récent (α) et de la variance récente (β) ; α+β proche de 1 indique une forte persistance du clustering de volatilité

Hypothèses: GARCH(1,1), la spécification la plus courante ; suppose que la variance dépend uniquement du choc et de la variance de la période précédente.

Unités: Variance (carré du rendement).

Exemple concret: ω=0,00001, α=0,08, β=0,90, variance long terme=0,0005 (σ≈2,24%). Choc ε_{t-1}=−6% (ε²=0,0036), σ_{t-1}=2,24% → σ_t²=0,00001+0,08×0,0036+0,90×0,0005=0,000748, σ_t≈2,73%.

Calcul détaillé

1) Vérifier la stationnarité de la série (test de racine unitaire) ; différencier si nécessaire (ARIMA). 2) Ajuster les paramètres du modèle (AR/ARIMA sur la série elle-même, GARCH sur les résidus/rendements) par maximum de vraisemblance : ici ω=0,00001, α=0,08, β=0,90. 3) Valider chronologiquement : entraîner sur le passé, tester sur une période future jamais vue, jamais mélanger les dates. 4) Comparer à un modèle naïf (par exemple, volatilité constante égale à la moyenne historique) pour vérifier que la complexité additionnelle apporte un vrai gain prédictif : ici, après un choc de −6%, le GARCH prédit 2,73% contre 2,24% pour un modèle naïf à volatilité constante — une différence significative le jour suivant un choc.

Jour de trading|Rendement quotidien| (%)

Exemple de code Python

from arch import arch_model

# rendements : série de rendements quotidiens en %
modele = arch_model(rendements, vol="Garch", p=1, q=1, dist="normal")
resultat = modele.fit(disp="off")
print(resultat.params)  # oméga, alpha, bêta estimés

# Prévision de la volatilité pour les 5 prochains jours
prevision = resultat.forecast(horizon=5)
print(prevision.variance.iloc[-1])

Interprétation

Une somme α+β proche de 1 indique que les chocs de volatilité ont un effet très persistant (la volatilité met longtemps à revenir à son niveau de long terme) ; une somme nettement inférieure à 1 indique un retour rapide à la normale. Un modèle AR/ARIMA avec des coefficients proches de zéro indique une faible prévisibilité à partir du seul passé de la série — un résultat courant et attendu pour les rendements financiers (proches d'une marche aléatoire), contrairement à la volatilité qui est nettement plus prévisible.

Pièges

Appliquer une validation croisée k-fold aléatoire standard à une série temporelle : cela mélange passé et futur, laissant le modèle "apprendre" avec des informations qu'il n'aurait jamais eues en situation réelle (fuite de données temporelle), voir M12-cross. Autre piège : confondre prévisibilité du niveau (rendements, généralement proches d'une marche aléatoire, donc peu prévisibles) et prévisibilité de la volatilité (nettement plus persistante et donc plus prévisible) — ce sont deux questions différentes.

Application métier

Un desk de gestion des risques recalibre quotidiennement un GARCH sur chaque facteur de risque pour produire une VaR conditionnelle (qui réagit immédiatement après un choc de marché), plutôt qu'une VaR basée sur une volatilité historique constante qui réagirait avec retard — une différence cruciale les jours suivant un choc, où le risque réel du portefeuille peut être significativement sous-estimé par un modèle qui ignore le clustering.

Question d'entretien (en anglais)

Q.You calibrate a GARCH(1,1) model and get α=0.08, β=0.90. What does that tell you, and how would you use it after a large market move?

Voir une réponse modèle

A.α+β=0.98 is close to 1, which means volatility shocks are highly persistent — after a large move, elevated volatility will take a long time to decay back to its long-run level, rather than snapping back quickly. I'd use the model to update tomorrow's forecast immediately: sigma-squared-t equals omega plus alpha times yesterday's squared shock plus beta times yesterday's variance. Concretely, if the long-run volatility was around 2.24% and a 6% one-day move just happened, the model would push tomorrow's forecast up to roughly 2.73%, not leave it at 2.24% — which matters directly for sizing tomorrow's hedges or computing a next-day VaR, since a model using constant historical volatility would miss that jump entirely.

Trois points à retenir

  1. 1AR/ARIMA modélisent la dépendance temporelle du niveau d'une série ; GARCH modélise celle de sa variance (clustering de volatilité).
  2. 2La stationnarité est une hypothèse nécessaire, souvent obtenue par différenciation (le "I" d'ARIMA).
  3. 3La validation doit toujours être chronologique, jamais un k-fold aléatoire standard.
Approfondir / démonstration

GARCH(1,1) peut se réécrire comme un processus ARMA(1,1) sur le carré des résidus, ce qui explique pourquoi α+β détermine la vitesse de retour à la variance de long terme ω/(1−α−β) exactement comme la persistance d'un processus AR standard détermine la vitesse de retour à la moyenne — un lien mathématique direct entre les deux familles de modèles vues dans cette notion. Sur le plan économétrique versus machine learning : ARIMA/GARCH sont des modèles paramétriques avec une interprétation statistique précise de chaque coefficient, tandis qu'une approche ML (par exemple un LSTM, M12-6) apprend une fonction plus flexible mais moins interprétable — un arbitrage classique entre interprétabilité et flexibilité.

Mini-quiz de cette notion

…