Accueil / Factory / Algos ML / Distance de Mahalanobis — factory / algos ML / détection d'anomalies

DISTANCE DE MAHALANOBIS.

Une distance qui mesure l'écart d'un point au comportement normal en tenant compte des corrélations entre variables. Un magasin peut avoir une surface normale et un CA normal, mais un CA anormal pour sa surface : c'est ce que la distance de Mahalanobis détecte, là où un contrôle variable par variable ne voit rien.

Détection d'anomaliesStatistique classiqueNon superviséDonnées numériquesNiveau : intermédiaire

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceExcellente si les données forment un nuage elliptique, pas au-delà
InterprétabilitéUne distance lisible, avec un seuil statistique justifiable
VitesseUn calcul matriciel, très rapide même sur de gros volumes
Facilité de réglageUn seul vrai choix : le seuil, et la version robuste ou non
Tolérance aux données brutesSensible aux échelles tordues, aux catégories et aux extrêmes
EN 30 SECONDES

Dans une ville, la taille et le poids des habitants vont ensemble. Quelqu'un de 1,60 m et 95 kg n'a ni une taille ni un poids extrêmes, mais la combinaison est rare. La distance de Mahalanobis mesure cette rareté-là.

1. On décrit le comportement normal

On calcule le centre du nuage (la moyenne de chaque variable) et la matrice de covariance, qui dit comment les variables varient ensemble.

2. On mesure l'écart en tenant compte des corrélations

Un écart dans le sens de la corrélation (grande surface et gros CA) coûte peu. Un écart à contre-courant (petite surface et gros CA) coûte cher. On obtient une distance en « nombre d'écarts-types », toutes variables confondues.

3. On compare à un seuil

Si les données sont à peu près gaussiennes, la distance au carré suit une loi du khi-deux. Son 99e centile donne un seuil : environ 1 % des points normaux le dépassent par hasard.

LE CAS MÉTIER

contrôle de gestion · réseau de magasins / franchise
EN ENTRÉE

Surface et chiffre d'affaires de 400 magasins

Une ligne par magasin : surface de vente en m² et CA annuel en k€. Les deux sont très liés (corrélation de 0,9 sur le jeu d'exemple) : plus le magasin est grand, plus il vend.

EN SORTIE

Une liste courte de magasins à auditer

Chaque magasin reçoit une distance. Sur le jeu d'exemple, 7 magasins dépassent le seuil, dont 3 qu'aucun contrôle variable par variable n'aurait signalés. Exemple : 951 m² et 932 k€ de CA, deux valeurs banales, mais un CA très élevé pour cette surface.

CE QU'ON MESURE

Le taux d'alerte et la validation terrain

Sans étiquette, on vérifie d'abord que le volume d'alertes reste traitable par le contrôle de gestion. Ensuite, chaque alerte est qualifiée sur le terrain : erreur de saisie, magasin sous-performant, ou pratique à dupliquer.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Quelques variables numériques liées entre elles : surface et CA, âge et salaire, température et pression
  • Besoin d'un seuil justifiable statistiquement (audit, contrôle qualité, contrôle de gestion)
  • Données en nuage à peu près elliptique, sans sous-groupes marqués
  • Contrôle rapide à industrialiser dans un tableur ou une requête SQL

NON

  • Données en plusieurs groupes distincts : un seul centre ne décrit pas la normalité, préférer Local Outlier Factor ou un mélange gaussien
  • Relations non linéaires ou dizaines de variables hétérogènes : préférer Isolation Forest
  • Variables catégorielles : la distance ne s'applique qu'à des nombres
  • Plus de variables que d'observations : la covariance ne s'inverse pas, réduire d'abord avec une ACP
LES 3 CHOIX QUI COMPTENT

Pas d'hyperparamètre à optimiser, mais trois décisions qui changent la liste des alertes.

Covariance classique ou robuste : covMcd / MinCovDet

La moyenne et la covariance classiques sont elles-mêmes tirées par les points extrêmes, qui masquent alors leur propre anomalie. La version robuste MCD (déterminant de covariance minimum) les calcule sur le cœur des données. À utiliser par défaut.

Seuil : qchisq / chi2.ppf

Le 97,5e ou le 99e centile du khi-deux, avec autant de degrés de liberté que de variables. Le choix dépend surtout de la capacité de traitement des alertes. Si les données sont loin d'être gaussiennes, fixer plutôt un seuil sur la distribution observée des distances.

Choix et transformation des variables

Ne garder que des variables dont la relation a un sens métier. Passer au logarithme les variables très asymétriques (montants, durées) pour rapprocher le nuage d'une ellipse.

LE CODE MINIMAL

jeu d'exemple : magasins.csv ↓
# Magasins atypiques : distance de Mahalanobis en R
library(robustbase)

magasins <- read.csv("magasins.csv")
X <- magasins[, c("surface_m2", "ca_k")]
cat("Corrélation surface / CA :", round(cor(X)[1, 2], 2), "\n")

# Centre et covariance robustes (MCD) : les magasins atypiques ne faussent pas la référence
set.seed(42)
mcd <- covMcd(X)
magasins$d2 <- mahalanobis(X, center = mcd$center, cov = mcd$cov)  # distance au carré

# Seuil : 99e centile du khi-deux à 2 degrés de liberté
seuil <- qchisq(0.99, df = ncol(X))
# Score z : écart de chaque variable prise seule, en écarts-types
magasins$z_max <- apply(abs(scale(X)), 1, max)
alertes <- magasins[magasins$d2 > seuil, ]
alertes <- alertes[order(-alertes$d2), ]

cat("Seuil :", round(seuil, 2), "| magasins signalés :", nrow(alertes), "\n")
cat("Dont normaux variable par variable (|z| < 2) :", sum(alertes$z_max < 2), "\n")
print(alertes[, c("magasin", "zone", "surface_m2", "ca_k", "d2", "z_max")], digits = 3)

QUESTIONS FRÉQUENTES

Quelle différence entre distance euclidienne et distance de Mahalanobis ?

La distance euclidienne traite toutes les directions pareil et dépend des unités. La distance de Mahalanobis divise par la variabilité de chaque variable et tient compte des corrélations. Sans corrélation et avec des variables standardisées, les deux coïncident.

Quel seuil choisir pour la distance de Mahalanobis ?

Avec des données à peu près gaussiennes, la distance au carré suit une loi du khi-deux à p degrés de liberté, p étant le nombre de variables. On prend souvent son 97,5e ou 99e centile : 9,21 pour 2 variables au seuil de 99 %.

Pourquoi utiliser une version robuste (MCD) ?

Les anomalies déforment la moyenne et la covariance classiques, ce qui réduit leur propre distance : c'est l'effet de masque. L'estimateur MCD calcule la référence sur la partie la plus compacte des données, ce qui rend les vrais points atypiques plus visibles.

LES ALGOS VOISINS

à comparer avant de choisir
le contrôle variable par variable

Score z et IQR

Plus simple, mais aveugle aux combinaisons anormales de valeurs individuellement banales.

Voir la fiche →
pour les données complexes

Isolation Forest

Aucune hypothèse de forme, gère beaucoup de variables et des relations non linéaires. Moins lisible, pas de seuil statistique.

Voir la fiche →
quand il y a plusieurs groupes

Local Outlier Factor

Compare chaque point à ses voisins plutôt qu'à un centre unique. Adapté aux données en grappes.

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 →