R ile Dolandırıcılık Tespiti
Tim Verdonck
Professor Data Science at KU Leuven
Aykırı değer, verilerin çoğunun deseninden sapan gözlemdir.
Aykırı değer, dolandırıcılık için uyarı olabilir.
Aykırı değer tespiti için popüler bir araç,
Gözlem $x_i$ için z-skoru $z_i$ şöyle hesaplanır:
$$z_i=\frac{x_i-\hat{\mu}}{\hat{\sigma}} = \frac{x_i-\overline{x}}{s}$$
loginc veri kümesi, log dönüşümünden sonra 10 kişinin aylık gelirlerini içerir:
loginc: 7.876 7.681 7.628 ... 7.764 9.912 # <-- son gelir açıkça aykırı!
Mean <- mean(loginc)
Sd <- sd(loginc)
zscore <- (loginc - Mean) / Sd
abs(zscore) > 3
FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
Örneklem ortalaması: $$\overline{x}=\frac{1}{n}\sum_i x_i$$
mean(loginc)mean(loginc9)
7.9864477.772392
loginc9, loginc ile aynı gözlemleri içerir; yalnızca aykırı değer çıkarılmıştır.
$n$ gözlemi küçükten büyüğe sırala; sonra örneklem medyanı $Med(X_n)$, $n$ tek ise $(n+1)/2$. gözlemdir; $n$ çift ise $n/2$. ve $n/2+1$. gözlemlerin ortalamasıdır.
median(loginc)
7.816658
median(loginc9)
7.764296
(1) Örneklem standart sapması: $$s= \sqrt{\frac{1}{n-1}\sum_i (x_i-\hat{\mu})^2}$$
sd(loginc)
0.6976615
sd(loginc9)
0.1791729
(2) Medyan mutlak sapma: $$Mad(X_n)=1.4826Med(|x_i-Med(X_n)|)$$
(3) Çeyrekler arası aralık (normalize): $$IQR(X_n)= IQR = 0.7413(Q_3-Q_1)$$ burada $Q_1$ ve $Q_3$ verinin birinci ve üçüncü çeyrekleridir
IQR(loginc)/1.349
0.2056784
mad(loginc)
0.2396159
mad(loginc9)
0.201305
IQR(loginc9)/1.349
0.1839295
Sağlam z-skorları için sağlam kestiricileri yerine koy:
$$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 ## Aykırı değer kontrolü
FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE
robzscore[10] ## Aykırı değerin sağlam z-skoru
8.748523

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


Ayarlı boxplot'a göre aykırı değerler:
library(robustbase)
adjbox(los)$out
59 67 102
Ayarlı boxplot tarafından hesaplanan istatistikler:
adjboxStats(los)$stats
2 4 8 13 47


R ile Dolandırıcılık Tespiti