Détection des valeurs aberrantes multivariées

Détection de la fraude en R

Tim Verdonck

Professor Data Science at KU Leuven

Données Animals

  • Le jeu de données Animals du paquet MASS contient les poids moyens du cerveau et du corps de 28 animaux
library(MASS)
data("Animals")
                    body brain
Mountain beaver     1.35   8.1
Cow               465.00 423.0
Grey wolf          36.33 119.5
Goat               27.66 115.0
  • Appliquez une transformation logarithmique aux poids du corps et du cerveau
X <- data.frame(log_body = log(Animals$body), log_brain = log(Animals$brain))
Détection de la fraude en R

Données Animals : détection univariée des valeurs aberrantes

Boîtes à moustaches des logarithmes du poids du corps et du poids du cerveau

animalsbp

Détection de la fraude en R

Données Animals : nuage de points

scatteranimals_ggplot

Détection de la fraude en R

Distance de Mahalanobis

La distance de Mahalanobis (ou généralisée) d'une observation est sa distance au centre, en tenant compte de la matrice de covariance

mahalanobiseuclidean_ggplot

Détection de la fraude en R

Distance de Mahalanobis pour détecter des valeurs aberrantes multivariées

  • Distances de Mahalanobis classiques : moyenne empirique pour la position et matrice de covariance empirique pour la dispersion

  • Pour détecter des valeurs aberrantes multivariées, on compare la distance de Mahalanobis à une valeur seuil dérivée de la loi du khi carré

  • En deux dimensions, on peut tracer l'ellipsoïde de tolérance à $97,5\%$, défini par les observations dont la distance de Mahalanobis ne dépasse pas le seuil

Détection de la fraude en R

Ellipsoïde de tolérance basé sur la distance de Mahalanobis

animals.clcenter <- colMeans(X)
animals.clcov <- cov(X)
rad <- sqrt(qchisq(0.975, df = ncol(X)))

library(car) ellipse.cl <- data.frame(ellipse(center = animals.clcenter, shape = animals.clcov,radius = rad, segments = 100, draw = FALSE)) colnames(ellipse.cl) <- colnames(X)
fig <- fig + geom_polygon(data=ellipse.cl, color = "dodgerblue", fill = "dodgerblue", alpha = 0.2) + geom_point(aes(x = animals.clcenter[1], y = animals.clcenter[2]), color = "blue", size = 6)
Détection de la fraude en R

cltolanimals_ggplot

Détection de la fraude en R

Estimations robustes de position et de dispersion

L'estimateur MCD (Minimum Covariance Determinant) de Rousseeuw est un estimateur robuste populaire de position et de dispersion multivariées

  • MCD cherche les $h$ observations dont la matrice de covariance classique a le déterminant minimal
  • La position MCD est ensuite la moyenne de ces $h$ observations
  • La dispersion MCD est ensuite la matrice de covariance de ces $h$ points (multipliée par un facteur d'ajustement)
  • Une étape de repondération améliore l'efficacité sous normalité
  • Le calcul de MCD est ardu, mais plusieurs algorithmes rapides existent
Détection de la fraude en R

Distance robuste

Estimations robustes de position et de dispersion avec MCD

library(robustbase)
animals.mcd <- covMcd(X)

# Estimation robuste de la position
animals.mcd$center 

# Estimation robuste de la dispersion
animals.mcd$cov

En injectant ces estimations robustes de position et de dispersion dans la définition des distances de Mahalanobis, on obtient des distances robustes et on peut tracer un ellipsoïde de tolérance robuste.

Détection de la fraude en R

Animals : ellipsoïde de tolérance robuste

library(robustbase)
animals.mcd <- covMcd(X)
ellipse.mcd <- data.frame(ellipse(center = animals.mcd$center, 
                                   shape = animals.mcd$cov,
                                   radius = rad, segments = 100, draw = FALSE))
colnames(ellipse.mcd) <- colnames(X)

fig2 <- fig + geom_polygon(data = ellipse.mcd, color = "red", fill = "red", alpha = 0.3) + geom_point(aes(x = animals.mcd$center[1], y = animals.mcd$center[2]), color = "red", size = 6)
Détection de la fraude en R

robtolanimals_ggplot_v3.png

Détection de la fraude en R

Diagramme distance-distance

  • Quand $p>3$, il est impossible de visualiser l'ellipsoïde de tolérance.
  • Le diagramme distance-distance montre la distance robuste de chaque observation par rapport à sa distance de Mahalanobis classique obtenue directement de l'objet MCD
    plot(animals.mcd, which = "dd")
    
    animalsddplot
Détection de la fraude en R

Animals : vérifier les valeurs aberrantes

animalsdetection

Détection de la fraude en R

Passons à la pratique !

Détection de la fraude en R

Preparing Video For Download...