Accueil / Factory / Algos ML / Modèle de Markov caché (HMM) — factory / algos ML / modèle probabiliste de séquences

MODÈLE DE MARKOV CACHÉ.

Un modèle de séquences où l'état qui compte n'est jamais observé : régime de marché, phonème prononcé, usure d'une machine. On ne voit que ses effets, des rendements ou des sons. Le HMM estime les états cachés, leurs probabilités de transition et ce que chacun produit, puis indique l'état le plus probable à chaque instant.

SéquencesÉtats cachésFinanceRégimes de marchéNiveau : avancé

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceBon pour découper une série en régimes, moins pour prévoir
InterprétabilitéPeu d'états, chacun décrit par une moyenne et une variance
VitesseEstimation rapide sur des milliers de points
Facilité de réglageNombre d'états à choisir, initialisation à surveiller
Tolérance aux données brutesLoi supposée dans chaque état, à vérifier sur les données
EN 30 SECONDES

Enfermé dans une pièce sans fenêtre, vous voyez les gens arriver avec ou sans parapluie. Vous ne voyez pas la météo, mais vous la devinez, en sachant qu'un jour de pluie est souvent suivi d'un autre.

1. On suppose quelques états cachés

Ici, deux régimes de marché. Chacun produit des rendements selon sa propre loi normale : resserrés en régime calme, dispersés en régime agité.

2. On estime le modèle (Baum-Welch)

Cet algorithme de type EM ajuste en même temps les probabilités de passer d'un régime à l'autre et la loi des rendements de chaque régime, en maximisant la vraisemblance de la série observée.

3. On décode les états (Viterbi)

On calcule pour chaque jour la probabilité d'être dans chaque régime, et l'algorithme de Viterbi donne la séquence de régimes la plus probable.

LE CAS MÉTIER

finance · détection des régimes de marché
EN ENTRÉE

1 500 jours de cours de clôture

On calcule les rendements quotidiens en pourcentage. Aucune étiquette « calme » ou « agité » n'est fournie : c'est au modèle de les trouver.

EN SORTIE

Un régime par jour et sa probabilité

Le modèle isole un régime calme et un régime agité, nettement plus volatil. Les deux sont très persistants : on reste en général des semaines, voire des mois, dans le même régime. La probabilité du dernier jour sert au pilotage du risque.

CE QU'ON MESURE

La cohérence et l'utilité des régimes

Il n'existe pas de vérité terrain. On vérifie que les régimes sont stables, qu'ils correspondent à des périodes connues, et qu'adapter l'exposition au régime améliore le couple rendement-risque sur une période de test.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Série qui alterne entre quelques comportements distincts (calme ou agité, normal ou dégradé)
  • Signaux bruités d'un état qu'on ne mesure pas : usure d'une machine, intention d'un client
  • Besoin d'une probabilité d'état à chaque instant, pour déclencher une action
  • Séquences à étiqueter élément par élément : reconnaissance de la parole, bio-informatique

NON

  • États directement observables : une chaîne de Markov simple suffit
  • Prévision de la volatilité jour après jour : un GARCH est plus direct
  • Changement de régime unique et définitif : les méthodes de détection de ruptures sont plus adaptées
  • Séquences longues et complexes, comme le texte : les réseaux récurrents et les Transformers ont remplacé les HMM
LES 4 RÉGLAGES QUI COMPTENT

Noms donnés pour depmixS4 en R et hmmlearn en Python.

nstates / n_components

Nombre d'états cachés. On commence par 2 ou 3 et on compare le critère BIC ; au-delà, les états deviennent difficiles à interpréter.

Loi des observations

Gaussienne pour des rendements (family = gaussian() en R, GaussianHMM en Python), catégorielle pour des symboles (CategoricalHMM en Python).

Initialisation (set.seed / random_state)

L'estimation peut s'arrêter sur un optimum local. On relance avec plusieurs graines et on garde le modèle de plus forte vraisemblance.

Mise à l'échelle des observations

Des rendements de l'ordre de 0,01 posent des problèmes numériques. Les exprimer en pourcentage, comme dans l'exemple, stabilise l'estimation.

LE CODE MINIMAL

jeu d'exemple : cours_bourse.csv ↓
# Régimes de marché : modèle de Markov caché (HMM) en R
library(depmixS4)

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

set.seed(42)
# 2 états cachés : on observe les rendements, jamais le régime lui-même
modele <- depmix(rendement ~ 1, data = donnees, nstates = 2, family = gaussian())
ajuste <- fit(modele, verbose = FALSE)
summary(ajuste)   # matrice de transition, moyenne et écart-type de chaque régime

# Séquence d'états la plus probable (algorithme de Viterbi)
etats <- posterior(ajuste, type = "viterbi")
print(table(etats$state))   # jours passés dans chaque régime
# Probabilité d'être dans chaque régime le dernier jour : l'information utile au pilotage du risque
print(tail(posterior(ajuste, type = "smoothing"), 1))

QUESTIONS FRÉQUENTES

Quelle différence entre chaîne de Markov et modèle de Markov caché ?

Dans une chaîne de Markov, on observe directement l'état, par exemple la page visitée. Dans un HMM, l'état est caché : on observe seulement les signaux qu'il produit, et le modèle en déduit l'état le plus probable.

À quoi sert l'algorithme de Viterbi ?

Il trouve la séquence d'états cachés la plus probable compte tenu de toute la série observée. Il procède par programmation dynamique, ce qui évite d'énumérer toutes les séquences possibles.

Comment choisir le nombre d'états d'un HMM ?

On estime des modèles à 2, 3 ou 4 états et on compare un critère comme le BIC, qui pénalise la complexité. Le choix final doit aussi avoir un sens métier : des états que l'on sait nommer et utiliser.

LES ALGOS VOISINS

à comparer avant de choisir
la version visible

Chaînes de Markov

Même mécanique, avec des états directement observés, comme les pages d'un site.

Voir la fiche →
prévoir la volatilité

GARCH

Fait varier la volatilité en continu plutôt que par bascules entre quelques régimes.

Voir la fiche →
dater le changement

Détection de ruptures

Situe les dates où une série change de comportement, sans supposer d'allers-retours entre régimes.

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 →