Detectarea valorilor aberante multivariate

Detecția fraudelor în R

Tim Verdonck

Professor Data Science at KU Leuven

Date animale

  • Setul de date Animals din pachetul MASS conține greutatea medie a creierului și corpului pentru 28 de animale
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
  • Aplicați transformarea logaritmică pe ambele variabile
X <- data.frame(log_body = log(Animals$body), log_brain = log(Animals$brain))
Detecția fraudelor în R

Date animale: detectarea valorilor aberante univariate

Boxplot al logaritmilor greutății corporale și cerebrale

Boxplot animale

Detecția fraudelor în R

Date animale: diagramă de dispersie

Diagrama de dispersie animale

Detecția fraudelor în R

Distanța Mahalanobis

Distanța Mahalanobis (sau generalizată) a unei observații reprezintă distanța de la acea observație la centru, ținând cont de matricea de covarianță

Distanța Mahalanobis vs. euclidiană

Detecția fraudelor în R

Distanța Mahalanobis pentru detectarea valorilor aberante multivariate

  • Distanțele Mahalanobis clasice: media eșantionului ca estimator al localizării și matricea de covarianță a eșantionului ca estimator al dispersiei

  • Pentru detectarea valorilor aberante multivariate, distanța Mahalanobis este comparată cu o valoare de prag derivată din distribuția chi-pătrat

  • În două dimensiuni se poate construi elipsoidul de toleranță $97.5\%$ corespunzător, definit de observațiile a căror distanță Mahalanobis nu depășește pragul

Detecția fraudelor în R

Elipsoid de toleranță bazat pe distanța 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)
Detecția fraudelor în R

Date animale: elipsoid de toleranță bazat pe distanța Mahalanobis

Detecția fraudelor în R

Estimatori robuști de localizare și dispersie

Estimatorul Minimum Covariance Determinant (MCD) al lui Rousseeuw este un estimator robust popular pentru localizare și dispersie multivariată

  • MCD caută acele $h$ observații a căror matrice de covarianță clasică are determinantul cel mai mic posibil
  • Estimarea localizării MCD este media acestor $h$ observații
  • Estimarea dispersiei MCD este matricea de covarianță a celor $h$ puncte (înmulțită cu un factor de consistență)
  • Se aplică o etapă de reponderare pentru a îmbunătăți eficiența pe date normale
  • Calculul MCD este dificil, dar există mai mulți algoritmi rapizi propuși
Detecția fraudelor în R

Distanța robustă

Estimatori robuști de localizare și dispersie prin MCD

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

# Robust estimate of location
animals.mcd$center 

# Robust estimate of scatter
animals.mcd$cov

Înlocuind acești estimatori robuști în definiția distanțelor Mahalanobis, obținem distanțe robuste și putem construi un elipsoid de toleranță robust.

Detecția fraudelor în R

Animale: elipsoid de toleranță robust

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)
Detecția fraudelor în R

Date animale: elipsoid de toleranță robust

Detecția fraudelor în R

Graficul distanță-distanță

  • Când $p>3$, elipsoidul de toleranță nu mai poate fi vizualizat.
  • Graficul distanță-distanță arată distanța robustă a fiecărei observații față de distanța sa clasică Mahalanobis, obținută direct din obiectul MCD
    plot(animals.mcd, which = "dd")
    
    Grafic distanță-distanță animale
Detecția fraudelor în R

Animale: verificarea valorilor aberante

Animale: verificare valori aberante

Detecția fraudelor în R

Să exersăm!

Detecția fraudelor în R

Preparing Video For Download...