Accueil / Factory / Algos ML / MCMC — factory / algos ML / inférence bayésienne

MÉTHODES MCMC.

Une marche aléatoire qui explore les valeurs plausibles des paramètres d'un modèle, en s'attardant là où elles collent le mieux aux données. On obtient non pas un chiffre, mais des milliers de valeurs plausibles : de quoi donner à chaque estimation une fourchette honnête, même sur un petit segment.

InférenceStatistique bayésienneIncertitudeTarificationNiveau : avancé

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceEstimations complètes avec leur incertitude, a priori inclus
InterprétabilitéLes fourchettes se lisent directement comme des probabilités
VitesseDes milliers d'itérations : lent dès que le modèle grossit
Facilité de réglagePas, chauffe, convergence : il faut surveiller la chaîne
Tolérance aux données brutesLe modèle probabiliste est à écrire à la main, variable par variable
EN 30 SECONDES

Un randonneur dans le brouillard cherche les zones hautes d'un massif. Il fait un pas au hasard : si ça monte, il y va ; si ça descend, il y va parfois. Au bout de milliers de pas, la carte de ses passages dessine le relief.

1. On écrit le modèle et l'a priori

La vraisemblance dit à quel point des paramètres expliquent les données. L'a priori dit ce qu'on croyait avant de les voir. Leur produit donne la plausibilité de chaque jeu de paramètres, à une constante près.

2. On marche au hasard

À chaque itération, on propose un petit pas. Si la proposition est plus plausible, on l'accepte. Sinon, on l'accepte avec une probabilité égale au rapport des plausibilités (règle de Metropolis).

3. On compte les passages

Après une phase de chauffe qu'on jette, les points visités forment un échantillon de la loi a posteriori. Moyenne, médiane, intervalle à 95 % : tout se calcule sur cet échantillon.

LE CAS MÉTIER

tarification · assurance auto
EN ENTRÉE

Un portefeuille de 6 000 contrats

Pour chaque contrat : l'âge du conducteur, la zone, la durée d'exposition dans l'année et le nombre de sinistres déclarés. Question du tarificateur : de combien un jeune conducteur urbain est-il plus risqué, et avec quelle certitude ?

EN SORTIE

Des coefficients avec leur fourchette

Sur le jeu d'exemple, un conducteur de moins de 25 ans a une fréquence environ 3 fois plus élevée (intervalle à 95 % : 2,5 à 3,9) et la zone urbaine multiplie la fréquence par 1,4 environ. Le segment jeune urbain ressort vers 0,42 sinistre par an, entre 0,34 et 0,51.

CE QU'ON MESURE

La chaîne a-t-elle convergé ?

Avant de lire les résultats, on vérifie le taux d'acceptation (ici autour de 40 %), on lance plusieurs chaînes depuis des points de départ différents et on contrôle qu'elles donnent la même chose (indicateur R-hat proche de 1).

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Besoin d'une fourchette crédible sur chaque paramètre, pas seulement d'une valeur
  • Petits segments où l'on veut s'appuyer sur un avis d'expert (a priori)
  • Modèles hiérarchiques : agences, régions ou produits qui empruntent de l'information les uns aux autres
  • Modèles sur mesure sans formule toute faite pour les estimer

NON

  • Modèle classique (GLM) sur beaucoup de données : le maximum de vraisemblance donne presque le même résultat, en une seconde
  • Prédiction pure sur données tabulaires : un modèle de machine learning est plus simple et plus rapide
  • Des millions de lignes : l'inférence variationnelle, approchée mais bien plus rapide, est souvent préférable
  • Équipe sans compétence bayésienne pour diagnostiquer la convergence
LES 4 RÉGLAGES QUI COMPTENT

Dans la pratique, on n'écrit pas la chaîne soi-même : Stan (via brms en R) ou PyMC en Python règlent le pas automatiquement avec un échantillonneur plus efficace (NUTS). Les notions restent les mêmes.

Taille du pas

Trop petit : presque tout est accepté, mais la chaîne avance à peine. Trop grand : presque tout est refusé. Pour Metropolis, viser 20 à 50 % d'acceptation.

Phase de chauffe (burn-in / warmup)

Les premières itérations dépendent du point de départ. On les jette : ici 5 000 sur 20 000.

Nombre d'itérations et de chaînes

Lancer au moins 4 chaînes depuis des points différents. Si elles ne se superposent pas, les résultats ne valent rien.

Loi a priori

Elle résume ce qu'on sait avant les données. Une loi large laisse parler les données ; une loi serrée stabilise les petits segments, mais doit se justifier devant un auditeur.

LE CODE MINIMAL

jeu d'exemple : sinistres.csv ↓
# Fréquence de sinistres : MCMC (algorithme de Metropolis) en R
sin <- read.csv("sinistres.csv")
jeune <- as.numeric(sin$age_conducteur < 25)
urbain <- as.numeric(sin$zone == "urbain")

# Log-vraisemblance de Poisson (avec exposition) + a priori normal N(0, 2²) sur chaque paramètre
log_post <- function(b) {
  eta <- b[1] + b[2] * jeune + b[3] * urbain + log(sin$exposition)
  sum(sin$nb_sinistres * eta - exp(eta)) - sum(b^2) / 8
}

set.seed(42)
b <- c(-2, 0, 0)
lp <- log_post(b)
chaine <- matrix(NA, nrow = 20000, ncol = 3)
for (it in 1:20000) {
  prop <- b + rnorm(3, mean = 0, sd = 0.08)       # petit pas au hasard
  lp_prop <- log_post(prop)
  if (log(runif(1)) < lp_prop - lp) {             # accepter, ou rester sur place
    b <- prop; lp <- lp_prop
  }
  chaine[it, ] <- b
}
chaine <- chaine[-(1:5000), ]                      # on jette la phase de chauffe

cat("Effet jeune conducteur (x fréquence), IC 95 % :", round(quantile(exp(chaine[, 2]), c(0.025, 0.5, 0.975)), 2), "\n")
cat("Effet zone urbaine (x fréquence), IC 95 %     :", round(quantile(exp(chaine[, 3]), c(0.025, 0.5, 0.975)), 2), "\n")
cat("Fréquence annuelle jeune urbain, IC 95 %      :", round(quantile(exp(rowSums(chaine)), c(0.025, 0.5, 0.975)), 3), "\n")

QUESTIONS FRÉQUENTES

Qu'est-ce que la méthode MCMC ?

MCMC signifie Monte Carlo par chaînes de Markov. C'est une famille d'algorithmes qui produisent un échantillon de valeurs plausibles des paramètres d'un modèle bayésien, en se déplaçant pas à pas. Chaque pas ne dépend que de la position actuelle, d'où le terme chaîne de Markov.

Quelle différence entre Metropolis-Hastings et Gibbs ?

Metropolis-Hastings propose un nouveau point et l'accepte ou le refuse selon sa plausibilité. Gibbs met à jour un paramètre à la fois en le tirant directement dans sa loi conditionnelle, sans refus. Les outils modernes comme Stan utilisent plutôt NUTS, une variante de Monte Carlo hamiltonien qui explore bien plus vite.

Comment savoir si une chaîne MCMC a convergé ?

On lance plusieurs chaînes depuis des points de départ différents et on compare : l'indicateur R-hat doit être très proche de 1, et la taille d'échantillon effective (ESS) suffisante, typiquement plusieurs centaines. Les tracés des chaînes doivent ressembler à un bruit stable, sans tendance.

LES ALGOS VOISINS

à comparer avant de choisir
le fondement

Théorème de Bayes

La règle qui combine a priori et données. MCMC sert à l'appliquer quand le calcul exact est impossible.

Voir la fiche →
la version classique

Régression de Poisson

Le même modèle de fréquence, estimé par maximum de vraisemblance. Plus rapide, fourchettes approchées.

Voir la fiche →
le cousin

Simulation Monte Carlo

Tire des scénarios d'une loi connue. MCMC tire des paramètres d'une loi qu'on ne sait pas calculer directement.

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 →