Detekce vícerozměrných odlehlých hodnot

Detekce podvodů v R

Tim Verdonck

Professor Data Science at KU Leuven

Data Animals

  • Dataset Animals v balíčku MASS obsahuje průměrné hmotnosti mozku a těla 28 zvířat
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
  • Aplikovat logaritmickou transformaci na hmotnost těla i mozku
X <- data.frame(log_body = log(Animals$body), log_brain = log(Animals$brain))
Detekce podvodů v R

Data Animals: detekce jednorozměrných odlehlých hodnot

Krabicový graf logaritmů hmotnosti těla a mozku

Krabicový graf pro data Animals

Detekce podvodů v R

Data Animals: bodový graf

Bodový graf pro data Animals

Detekce podvodů v R

Mahalanobisova vzdálenost

Mahalanobisova (neboli zobecněná) vzdálenost pozorování je vzdálenost tohoto pozorování od středu s přihlédnutím ke kovarianční matici

Mahalanobisova vs. euklidovská vzdálenost

Detekce podvodů v R

Mahalanobisova vzdálenost pro detekci vícerozměrných odlehlých hodnot

  • Klasické Mahalanobisovy vzdálenosti: výběrový průměr jako odhad polohy a výběrová kovarianční matice jako odhad rozptylu

  • Pro detekci vícerozměrných odlehlých hodnot se Mahalanobisova vzdálenost porovnává s mezní hodnotou odvozenou z chí-kvadrát rozdělení

  • Ve dvou rozměrech lze sestavit odpovídající $97{,}5\%$ toleranční elipsoid, definovaný pozorováními, jejichž Mahalanobisova vzdálenost nepřekračuje mezní hodnotu

Detekce podvodů v R

Toleranční elipsoid na základě Mahalanobisovy vzdálenosti

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)
Detekce podvodů v R

Toleranční elipsoid pro data Animals na základě Mahalanobisovy vzdálenosti

Detekce podvodů v R

Robustní odhady polohy a rozptylu

Estimátor minimální determinantu kovariance (MCD) dle Rousseeuwa je populárním robustním estimátorem vícerozměrné polohy a rozptylu

  • MCD hledá $h$ pozorování, jejichž klasická kovarianční matice má nejnižší možnou determinantu
  • Odhad polohy MCD je pak průměr těchto $h$ pozorování
  • Odhad rozptylu MCD je pak výběrová kovarianční matice těchto $h$ bodů (vynásobená korekčním faktorem)
  • Krok přehodnocení se aplikuje pro zlepšení efektivity na normálních datech
  • Výpočet MCD je náročný, ale existuje několik rychlých algoritmů
Detekce podvodů v R

Robustní vzdálenost

Robustní odhady polohy a rozptylu pomocí MCD

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

# Robust estimate of location
animals.mcd$center 

# Robust estimate of scatter
animals.mcd$cov

Dosazením těchto robustních odhadů polohy a rozptylu do definice Mahalanobisových vzdáleností získáme robustní vzdálenosti a lze sestavit robustní toleranční elipsoid.

Detekce podvodů v R

Animals: robustní toleranční elipsoid

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)
Detekce podvodů v R

Robustní toleranční elipsoid pro data Animals

Detekce podvodů v R

Graf vzdálenost-vzdálenost

  • Při $p>3$ nelze toleranční elipsoid vizualizovat.
  • Graf vzdálenost-vzdálenost zobrazuje robustní vzdálenost každého pozorování oproti jeho klasické Mahalanobisově vzdálenosti získané přímo z objektu MCD
    plot(animals.mcd, which = "dd")
    
    Graf vzdálenost-vzdálenost pro data Animals
Detekce podvodů v R

Animals: kontrola odlehlých hodnot

Detekce odlehlých hodnot v datech Animals

Detekce podvodů v R

Pojďme si procvičit!

Detekce podvodů v R

Preparing Video For Download...