Détecter les valeurs aberrantes univariées

Détection de la fraude en R

Tim Verdonck

Professor Data Science at KU Leuven

Valeurs aberrantes

Une valeur aberrante est une observation qui s'écarte du comportement de la majorité des données. outlierfish Une valeur aberrante peut signaler une fraude.

Détection de la fraude en R

Détection des valeurs aberrantes

  • Un outil courant pour détecter les valeurs aberrantes consiste à

    • calculer le z-score de chaque observation
    • signaler une observation comme aberrante si la valeur absolue du z-score dépasse 3
  • Le z-score $z_i$ pour l'observation $x_i$ se calcule ainsi :

$$z_i=\frac{x_i-\hat{\mu}}{\hat{\sigma}} = \frac{x_i-\overline{x}}{s}$$

  • $\overline{x}$ est la moyenne de l'échantillon : $\overline{x}=\frac{1}{n}\sum_i x_i$
  • $s$ est l'écart-type de l'échantillon : $s= \sqrt{\frac{1}{n-1}\sum_i(x_i-\hat{\mu})^2}$
Détection de la fraude en R

L'ensemble loginc contient les revenus mensuels de 10 personnes après transformation logarithmique :

loginc: 7.876 7.681 7.628  ...  7.764 9.912 # <-- le dernier revenu est clairement aberrant !
  • (1) Calculez le z-score de chaque observation
Mean <- mean(loginc)
Sd <- sd(loginc)
zscore <- (loginc - Mean) / Sd
  • (2) Vérifiez si les z-scores sont supérieurs à 3 en valeur absolue
abs(zscore) > 3
FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
  • Aucune valeur aberrante n'est repérée avec ces z-scores !
Détection de la fraude en R

Statistiques robustes

  • Les méthodes statistiques classiques reposent sur des hypothèses (de normalité), mais une seule valeur aberrante peut fortement influencer les conclusions et mener à des résultats trompeurs.
  • Les statistiques robustes donnent des résultats fiables même en présence de valeurs aberrantes et offrent des outils de détection automatique.
  • « Il est idéal d'utiliser régulièrement les méthodes classiques et robustes, et de ne s'inquiéter que lorsqu'elles diffèrent assez pour que ça compte… Mais quand elles diffèrent, il faut réfléchir sérieusement. » J. W. Tukey (1979)
Détection de la fraude en R

Estimateurs de position : moyenne et médiane

Moyenne d'échantillon : $$\overline{x}=\frac{1}{n}\sum_i x_i$$

mean(loginc)

mean(loginc9)
7.986447

7.772392

loginc9 contient les mêmes observations que loginc, sauf la valeur aberrante.

Ordonnez les $n$ observations de la plus petite à la plus grande, puis la médiane de l'échantillon, $Med(X_n)$, est la $(n+1)/2$e observation (si $n$ est impair) ou la moyenne des $n/2$e et $(n/2+1)$e observations (si $n$ est pair).

median(loginc)
7.816658
median(loginc9)
7.764296
Détection de la fraude en R

Estimateurs d'échelle : sd

(1) Écart-type d'échantillon : $$s= \sqrt{\frac{1}{n-1}\sum_i (x_i-\hat{\mu})^2}$$

sd(loginc)
0.6976615
sd(loginc9)
0.1791729
Détection de la fraude en R

Estimateurs d'échelle : mad, IQR

(2) Écart absolu médian : $$Mad(X_n)=1.4826Med(|x_i-Med(X_n)|)$$

(3) Étendue interquartile (normalisée) : $$IQR(X_n)= IQR = 0.7413(Q_3-Q_1)$$ où $Q_1$ et $Q_3$ sont les premier et troisième quartiles des données

IQR(loginc)/1.349
0.2056784
mad(loginc)
0.2396159
mad(loginc9)
0.201305
IQR(loginc9)/1.349
0.1839295
Détection de la fraude en R

Z-scores robustes pour détecter les valeurs aberrantes

Insérez les estimateurs robustes pour calculer des z-scores robustes :

$$z_i=\frac{x_i-\hat{\mu}}{\hat{\sigma}} =\frac{x_i-Med(X_n)}{Mad(X_n)}$$

robzscore <- (loginc - median(loginc)) / mad(loginc)

abs(robzscore) > 3 ## Vérifier les valeurs aberrantes
FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE
robzscore[10] ## z-score robuste de la valeur aberrante
8.748523
Détection de la fraude en R

Boîte à moustaches

  • Le boîte à moustaches de Tukey est aussi un outil populaire pour repérer les valeurs aberrantes
  • Une observation est marquée comme aberrante si elle est hors de la clôture : $$[Q_1-1.5IQR; Q_3+1.5IQR]$$

boxplotexplanation

Détection de la fraude en R

Exemple : durée de séjour (LOS) à l'hôpital

boxplot(los, col = "blue", ylab = "Lenght of Stay (LOS)")$out
59  33  42  67  35  47 102  36  27  31  27  30  29  32  37  27  38

boxplotlos_ggplot

Détection de la fraude en R

Boîte à moustaches ajustée

  • Pour des distributions asymétriques, la boîte à moustaches peut signaler de nombreux points réguliers comme aberrants.
  • La boîte à moustaches ajustée pour l'asymétrie corrige cela en utilisant une mesure robuste d'asymétrie pour définir la clôture (Hubert et Vandervieren, 2008)

chisqbp

Détection de la fraude en R

Exemple LOS : boîte ajustée

Valeurs aberrantes selon la boîte à moustaches ajustée :

library(robustbase)
adjbox(los)$out
59  67 102

Statistiques calculées par la boîte à moustaches ajustée :

adjboxStats(los)$stats
2  4  8 13 47
Détection de la fraude en R

Exemple LOS : boîte classique vs boîte ajustée

LOS_boxplot

LOS_adjbox

Détection de la fraude en R

Passons à la pratique !

Détection de la fraude en R

Preparing Video For Download...