Mendeteksi pencilan multivariat

Deteksi Fraud di R

Tim Verdonck

Professor Data Science at KU Leuven

Data Animals

  • Dataset Animals di paket MASS berisi rata-rata berat otak dan tubuh untuk 28 hewan
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
  • Terapkan transformasi logaritmik pada berat tubuh dan otak
X <- data.frame(log_body = log(Animals$body), log_brain = log(Animals$brain))
Deteksi Fraud di R

Data Animals: deteksi pencilan univariat

Boxplot logaritma berat tubuh dan berat otak

animalsbp

Deteksi Fraud di R

Data Animals: scatterplot

scatteranimals_ggplot

Deteksi Fraud di R

Jarak Mahalanobis

Jarak Mahalanobis (atau terumumkan) untuk suatu observasi adalah jarak dari observasi ke pusat, dengan mempertimbangkan matriks kovarians

mahalanobiseuclidean_ggplot

Deteksi Fraud di R

Jarak Mahalanobis untuk mendeteksi pencilan multivariat

  • Jarak Mahalanobis klasik: rata-rata sampel sebagai estimasi lokasi dan matriks kovarians sampel sebagai estimasi sebaran

  • Untuk mendeteksi pencilan multivariat, jarak Mahalanobis dibandingkan dengan nilai batas yang diturunkan dari distribusi khi-kuadrat

  • Dalam dua dimensi kita dapat membentuk elipsoid toleransi $97.5\%$, didefinisikan oleh observasi dengan jarak Mahalanobis tidak melebihi nilai batas

Deteksi Fraud di R

Elipsoid toleransi berbasis jarak 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)
Deteksi Fraud di R

cltolanimals_ggplot

Deteksi Fraud di R

Estimasi robust untuk lokasi dan sebaran

Estimator Minimum Covariance Determinant (MCD) oleh Rousseeuw adalah estimator robust populer untuk lokasi dan sebaran multivariat

  • MCD mencari $h$ observasi dengan determinan terkecil dari matriks kovarians klasiknya
  • Estimasi lokasi MCD adalah rata-rata dari $h$ observasi tersebut
  • Estimasi sebaran MCD adalah matriks kovarians sampel dari $h$ titik (dikalikan faktor konsistensi)
  • Langkah pembobotan ulang diterapkan untuk meningkatkan efisiensi pada data normal
  • Perhitungan MCD sulit, tetapi tersedia beberapa algoritme cepat
Deteksi Fraud di R

Jarak robust

Estimasi robust lokasi dan sebaran dengan MCD

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

# Estimasi robust lokasi
animals.mcd$center 

# Estimasi robust sebaran
animals.mcd$cov

Dengan memasukkan estimasi robust lokasi dan sebaran ini ke definisi jarak Mahalanobis, kita memperoleh jarak robust dan dapat membuat elipsoid toleransi robust.

Deteksi Fraud di R

Animals: elipsoid toleransi 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)
Deteksi Fraud di R

robtolanimals_ggplot_v3.png

Deteksi Fraud di R

Distance-distance plot

  • Saat $p>3$ elipsoid toleransi tidak dapat divisualisasikan.
  • Distance-distance plot menampilkan jarak robust tiap observasi versus jarak Mahalanobis klasik yang diperoleh langsung dari objek MCD
    plot(animals.mcd, which = "dd")
    
    animalsddplot
Deteksi Fraud di R

Animals: periksa pencilan

animalsdetection

Deteksi Fraud di R

Ayo berlatih!

Deteksi Fraud di R

Preparing Video For Download...