Wykrywanie wartości odstających — jednowymiarowe

Wykrywanie oszustw w R

Tim Verdonck

Professor Data Science at KU Leuven

Wartości odstające

Wartość odstająca to obserwacja odbiegająca od wzorca większości danych. rybka odstająca Wartość odstająca może sygnalizować oszustwo.

Wykrywanie oszustw w R

Wykrywanie wartości odstających

  • Popularna metoda wykrywania wartości odstających:

    • obliczenie z-wyniku dla każdej obserwacji
    • oznaczenie obserwacji jako wartości odstającej, gdy jej z-wynik ma wartość bezwzględną większą niż 3
  • Z-wynik $z_i$ dla obserwacji $x_i$ oblicza się jako:

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

  • $\overline{x}$ to średnia z próby: $\overline{x}=\frac{1}{n}\sum_i x_i$
  • $s$ to odchylenie standardowe z próby: $s= \sqrt{\frac{1}{n-1}\sum_i(x_i-\hat{\mu})^2}$
Wykrywanie oszustw w R

Zbiór loginc zawiera miesięczne dochody 10 osób po transformacji logarytmicznej:

loginc: 7.876 7.681 7.628  ...  7.764 9.912 # <-- ostatni dochód to wyraźna wartość odstająca!
  • (1) Oblicz z-wynik każdej obserwacji
Mean <- mean(loginc)
Sd <- sd(loginc)
zscore <- (loginc - Mean) / Sd
  • (2) Sprawdź, czy z-wyniki są większe niż 3 pod względem wartości bezwzględnej
abs(zscore) > 3
FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
  • Żadne wartości odstające nie zostały wykryte za pomocą tych z-wyników!
Wykrywanie oszustw w R

Statystyki odporne

  • Klasyczne metody statystyczne opierają się na założeniach (normalności), ale nawet pojedyncza wartość odstająca może istotnie wpłynąć na wnioski i prowadzić do błędnych wyników.
  • Statystyki odporne dają wiarygodne wyniki również wtedy, gdy dane zawierają wartości odstające, i umożliwiają ich automatyczne wykrywanie.
  • Zaleca się rutynowe stosowanie zarówno metod klasycznych, jak i odpornych, i martwienie się tylko wtedy, gdy wyniki istotnie się różnią... Ale gdy się różnią, należy dobrze się zastanowić." J.W. Tukey (1979)
Wykrywanie oszustw w R

Estymatory położenia: średnia i mediana

Średnia z próby: $$\overline{x}=\frac{1}{n}\sum_i x_i$$

mean(loginc)

mean(loginc9)
7.986447

7.772392

loginc9 zawiera te same obserwacje co loginc, z wyjątkiem wartości odstającej.

Posortuj $n$ obserwacji od najmniejszej do największej; mediana z próby, $Med(X_n)$, to obserwacja na pozycji $(n+1)/2$ (gdy $n$ jest nieparzyste) lub średnia obserwacji na pozycjach $n/2$ i $n/2+1$ (gdy $n$ jest parzyste).

median(loginc)
7.816658
median(loginc9)
7.764296
Wykrywanie oszustw w R

Estymatory skali: sd

(1) Odchylenie standardowe z próby: $$s= \sqrt{\frac{1}{n-1}\sum_i (x_i-\hat{\mu})^2}$$

sd(loginc)
0.6976615
sd(loginc9)
0.1791729
Wykrywanie oszustw w R

Estymatory skali: mad, IQR

(2) Medianowe odchylenie bezwzględne (MAD): $$Mad(X_n)=1.4826Med(|x_i-Med(X_n)|)$$

(3) Rozstęp międzykwartylowy (znormalizowany): $$IQR(X_n)= IQR = 0.7413(Q_3-Q_1)$$ gdzie $Q_1$ i $Q_3$ to pierwszy i trzeci kwartyl danych

IQR(loginc)/1.349
0.2056784
mad(loginc)
0.2396159
mad(loginc9)
0.201305
IQR(loginc9)/1.349
0.1839295
Wykrywanie oszustw w R

Odporne z-wyniki do wykrywania wartości odstających

Użyj odpornych estymatorów do obliczenia odpornych z-wyników:

$$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 ## Sprawdź wartości odstające
FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE
robzscore[10] ## Odporny z-wynik wartości odstającej
8.748523
Wykrywanie oszustw w R

Wykres pudełkowy

  • Wykres pudełkowy Tukeya to popularne narzędzie do wykrywania wartości odstających
  • Obserwacja jest flagowana jako wartość odstająca, jeśli wykracza poza granicę wykresu pudełkowego: $$[Q_1-1.5IQR; Q_3+1.5IQR]$$

wyjaśnienie wykresu pudełkowego

Wykrywanie oszustw w R

Przykład: długość pobytu (LOS) w szpitalu

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

wykres pudełkowy LOS ggplot

Wykrywanie oszustw w R

Skorygowany wykres pudełkowy

  • Dla rozkładów asymetrycznych wykres pudełkowy może błędnie oznaczać wiele zwykłych obserwacji jako wartości odstające.
  • Skorygowany wykres pudełkowy uwzględnia odporną miarę skośności przy wyznaczaniu granicy (Hubert i Vandervieren, 2008)

wykres pudełkowy chi-kwadrat

Wykrywanie oszustw w R

Przykład LOS: skorygowany wykres pudełkowy

Wartości odstające według skorygowanego wykresu pudełkowego:

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

Statystyki obliczone przez skorygowany wykres pudełkowy:

adjboxStats(los)$stats
2  4  8 13 47
Wykrywanie oszustw w R

Przykład LOS: wykres pudełkowy vs. skorygowany

wykres pudełkowy LOS

skorygowany wykres pudełkowy LOS

Wykrywanie oszustw w R

Czas na ćwiczenia!

Wykrywanie oszustw w R

Preparing Video For Download...