Accueil / Factory / Algos ML / Modèles mixtes — factory / algos ML / apprentissage supervisé · statistique

MODÈLES MIXTES.

Une régression qui sait que les lignes vont par groupes : plusieurs mois d'un même magasin, plusieurs élèves d'une même classe. On estime un effet commun à tous, comme celui d'une promotion, et un écart propre à chaque groupe. Les groupes peu observés empruntent de l'information aux autres au lieu d'être jugés sur trois chiffres.

RégressionDonnées groupéesEffets aléatoiresModèle interprétableNiveau : avancé

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceMeilleure prévision par groupe, surtout pour les petits groupes
InterprétabilitéEffets communs lisibles, écarts de groupe explicites
VitesseRapide en effets simples, plus lent avec beaucoup de groupes croisés
Facilité de réglageChoisir les effets aléatoires demande de la réflexion
Tolérance aux données brutesManquants à traiter, hypothèse de normalité des écarts
EN 30 SECONDES

Un recruteur qui évalue un commercial arrivé il y a trois mois. Il ne le juge pas sur ses trois seuls mois : il part de la moyenne de l'équipe et ajuste selon ce qu'il a vu.

1. On sépare deux types d'effets

Les effets fixes valent pour tous, comme l'effet d'une promotion. Les effets aléatoires sont des écarts propres à chaque groupe, supposés tirés d'une même distribution.

2. On estime la variance entre groupes

Le modèle mesure combien les magasins diffèrent vraiment entre eux, une fois le bruit de chaque mois retiré.

3. On rétrécit les écarts des petits groupes

L'écart d'un magasin est ramené vers la moyenne, d'autant plus qu'il a peu d'historique. Un magasin de 24 mois garde presque son écart brut, un magasin de 3 mois beaucoup moins.

LE CAS MÉTIER

retail · pilotage commercial / réseaux multi-sites
EN ENTRÉE

Des mois de CA par magasin

Le CA mensuel de 40 magasins, avec une indicatrice de promotion. La plupart ont 24 mois d'historique, quelques ouvertures récentes seulement 3. Les données sont simulées, avec un effet promo fixé à +12 k€.

EN SORTIE

Un effet promo et un classement juste

Le modèle donne l'effet moyen de la promotion, en tenant compte du niveau propre à chaque magasin. Il classe aussi les magasins sans surestimer une ouverture récente qui a connu trois bons mois.

CE QU'ON MESURE

La variance entre groupes, et le rétrécissement

Deux lectures clés : l'écart-type entre magasins comparé à l'écart-type résiduel, qui dit si l'effet magasin compte, et la comparaison des écarts bruts et estimés, qui montre le rétrécissement des magasins récents.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Lignes regroupées : mois par magasin, clients par agence, mesures répétées par patient ou par machine
  • Nombreux groupes, dont certains très peu observés
  • Mesurer un effet commun (promo, prix, formation) en neutralisant le niveau propre de chaque groupe
  • Prévoir pour un nouveau groupe, à partir de la moyenne des autres

NON

  • Moins de 5 à 10 groupes : la variance entre groupes est mal estimée, mettre le groupe en effet fixe
  • Aucune structure de groupe : une régression classique suffit
  • Recherche de la précision pure sur données tabulaires : gradient boosting avec l'identifiant du groupe en variable
  • Groupes imbriqués complexes et peu de temps : commencer par un seul niveau d'effet aléatoire
LES 4 CHOIX QUI COMPTENT

Noms donnés pour R (lme4) et Python (statsmodels).

(1 | magasin) / groups

Un niveau propre à chaque magasin : l'intercept aléatoire. C'est le point de départ, qui suffit dans bien des cas.

(promo | magasin) / re_formula

Un effet promo qui varie d'un magasin à l'autre : la pente aléatoire. À ajouter si le métier pense que la promo marche mieux dans certains magasins.

REML ou maximum de vraisemblance

REML (défaut) donne de meilleures variances. Pour comparer deux modèles aux effets fixes différents, on réestime par maximum de vraisemblance (REML = FALSE).

Groupes croisés ou imbriqués

(1 | region / magasin) pour des magasins dans des régions. Des groupes croisés, comme clients et produits, se gèrent très bien en R avec lme4, moins facilement en Python.

LE CODE MINIMAL

données simulées dans le code
# Effet des promotions sur 40 magasins : modèle mixte en R
library(lme4)

# Simulation : 40 magasins, dont quelques ouvertures récentes (3 mois d'historique)
set.seed(42)
nb_mois <- sample(c(24, 3), 40, replace = TRUE, prob = c(0.8, 0.2))
magasin <- rep(1:40, times = nb_mois)
effet_magasin <- rnorm(40, 0, 25)          # écart propre à chaque magasin (k€)
promo <- rbinom(length(magasin), 1, 0.3)   # mois avec promotion
ca <- 150 + effet_magasin[magasin] + 12 * promo + rnorm(length(magasin), 0, 40)
donnees <- data.frame(magasin = factor(magasin), promo = promo, ca = ca)

# Effet fixe : la promo. Effet aléatoire : le niveau de chaque magasin
modele <- lmer(ca ~ promo + (1 | magasin), data = donnees)
print(summary(modele))   # effet promo et variance entre magasins

# Écart de chaque magasin : brut vs estimé par le modèle (rétréci s'il a peu de mois)
brut <- tapply(donnees$ca, donnees$magasin, mean) - mean(donnees$ca)
ecarts <- data.frame(mois = nb_mois, ecart_brut = round(brut, 1),
                     ecart_modele = round(ranef(modele)$magasin[, 1], 1))
print(ecarts[ecarts$mois == 3, ])

QUESTIONS FRÉQUENTES

Quelle différence entre effet fixe et effet aléatoire ?

Un effet fixe est un paramètre estimé tel quel, comme l'effet d'une promotion. Un effet aléatoire est un écart propre à chaque groupe, supposé tiré d'une distribution commune dont on estime la variance. Cette hypothèse permet de rétrécir les écarts des groupes peu observés.

Pourquoi ne pas faire un modèle par magasin ?

Un magasin avec trois mois d'historique donnerait un modèle très instable. Le modèle mixte estime un seul modèle, partage l'information entre magasins et n'ajuste chaque magasin que dans la mesure où ses données le justifient.

Faut-il un modèle mixte pour des mesures répétées ?

Souvent, oui. Quand un même client, patient ou magasin apparaît plusieurs fois, ses lignes ne sont pas indépendantes. Une régression classique sous-estime alors les marges d'erreur. L'effet aléatoire du groupe corrige ce problème.

LES ALGOS VOISINS

à comparer avant de choisir
sans les groupes

Régression linéaire

Ignore que les lignes d'un même magasin se ressemblent : effets mal estimés et marges d'erreur trop optimistes.

Voir la fiche →
pour d'autres lois

Modèle linéaire généralisé (GLM)

Le GLM mixte (glmer) ajoute des effets aléatoires à une régression logistique ou de Poisson.

Voir la fiche →
le même rétrécissement

Ridge

Un effet aléatoire revient à une pénalité Ridge sur les écarts de groupe, dont la force est estimée sur les données.

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 →