Wykrywanie wielowymiarowych obserwacji odstających

Wykrywanie oszustw w R

Tim Verdonck

Professor Data Science at KU Leuven

Dane animals

  • Zbiór danych Animals z pakietu MASS zawiera średnie masy mózgu i ciała 28 zwierząt
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
  • Zastosowanie transformacji logarytmicznej dla masy ciała i masy mózgu
X <- data.frame(log_body = log(Animals$body), log_brain = log(Animals$brain))
Wykrywanie oszustw w R

Dane animals: jednowymiarowe wykrywanie obserwacji odstających

Wykres pudełkowy logarytmów masy ciała i masy mózgu

Wykres pudełkowy dla danych animals

Wykrywanie oszustw w R

Dane animals: wykres rozrzutu

Wykres rozrzutu dla danych animals

Wykrywanie oszustw w R

Odległość Mahalanobisa

Odległość Mahalanobisa (uogólniona) dla obserwacji to odległość tej obserwacji od środka z uwzględnieniem macierzy kowariancji

Porównanie odległości Mahalanobisa i euklidesowej

Wykrywanie oszustw w R

Odległość Mahalanobisa w wykrywaniu wielowymiarowych obserwacji odstających

  • Klasyczne odległości Mahalanobisa: średnia próbkowa jako estymata lokalizacji i próbkowa macierz kowariancji jako estymata rozproszenia

  • Do wykrywania wielowymiarowych obserwacji odstających odległość Mahalanobisa porównuje się z wartością progową wyznaczoną z rozkładu chi-kwadrat

  • W dwóch wymiarach można skonstruować odpowiadającą elipsoidę tolerancji $97{,}5\%$, zdefiniowaną przez obserwacje, których odległość Mahalanobisa nie przekracza wartości progowej

Wykrywanie oszustw w R

Elipsoida tolerancji oparta na odległości Mahalanobisa

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)
Wykrywanie oszustw w R

Dane animals: elipsoida tolerancji oparta na odległości Mahalanobisa

Wykrywanie oszustw w R

Odporne estymaty lokalizacji i rozproszenia

Estymator Minimum Covariance Determinant (MCD) Rousseeuw'a to popularny odporny estymator wielowymiarowej lokalizacji i rozproszenia

  • MCD szuka $h$ obserwacji, których klasyczna macierz kowariancji ma możliwie najmniejszy wyznacznik
  • Estymata lokalizacji MCD to średnia tych $h$ obserwacji
  • Estymata rozproszenia MCD to macierz kowariancji tych $h$ punktów (pomnożona przez współczynnik spójności)
  • Krok ponownego ważenia poprawia efektywność dla danych normalnych
  • Wyznaczenie MCD jest trudne, lecz istnieje kilka szybkich algorytmów
Wykrywanie oszustw w R

Odporna odległość

Odporne estymaty lokalizacji i rozproszenia z użyciem MCD

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

# Robust estimate of location
animals.mcd$center 

# Robust estimate of scatter
animals.mcd$cov

Podstawiając odporne estymaty lokalizacji i rozproszenia do definicji odległości Mahalanobisa, uzyskujemy odporne odległości i możemy skonstruować odporną elipsoidę tolerancji.

Wykrywanie oszustw w R

Dane animals: odporna elipsoida tolerancji

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)
Wykrywanie oszustw w R

Dane animals: odporna elipsoida tolerancji

Wykrywanie oszustw w R

Wykres odległość-odległość

  • Gdy $p>3$, wizualizacja elipsoidy tolerancji nie jest możliwa.
  • Wykres odległość-odległość przedstawia odporną odległość każdej obserwacji względem jej klasycznej odległości Mahalanobisa wyznaczonej bezpośrednio z obiektu MCD
    plot(animals.mcd, which = "dd")
    
    Wykres odległość-odległość dla danych animals
Wykrywanie oszustw w R

Dane animals: weryfikacja obserwacji odstających

Dane animals: identyfikacja obserwacji odstających

Wykrywanie oszustw w R

Czas na ćwiczenia!

Wykrywanie oszustw w R

Preparing Video For Download...