การตรวจจับค่าผิดปกติแบบหลายตัวแปร

การตรวจจับการฉ้อโกงใน R

Tim Verdonck

Professor Data Science at KU Leuven

ข้อมูล Animals

  • ชุดข้อมูล Animals ในแพ็กเกจ MASS มี น้ำหนักสมองและน้ำหนักตัวเฉลี่ยของสัตว์ 28 ชนิด
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
  • ใช้ การแปลงลอการิทึม กับน้ำหนักตัวและน้ำหนักสมองทั้งคู่
X <- data.frame(log_body = log(Animals$body), log_brain = log(Animals$brain))
การตรวจจับการฉ้อโกงใน R

ข้อมูล Animals: การตรวจจับค่าผิดปกติแบบตัวแปรเดียว

Boxplot ของลอการิทึมของน้ำหนักตัวและน้ำหนักสมอง

animalsbp

การตรวจจับการฉ้อโกงใน R

ข้อมูล Animals: scatterplot

scatteranimals_ggplot

การตรวจจับการฉ้อโกงใน R

ระยะทาง Mahalanobis

ระยะทาง Mahalanobis (หรือระยะทางทั่วไป) ของการสังเกตการณ์คือระยะห่างจากจุดนั้นไปยังจุดกึ่งกลาง โดยคำนึงถึงเมทริกซ์ความแปรปรวนร่วมด้วย

mahalanobiseuclidean_ggplot

การตรวจจับการฉ้อโกงใน R

ระยะทาง Mahalanobis สำหรับตรวจจับค่าผิดปกติแบบหลายตัวแปร

  • ระยะทาง Mahalanobis แบบคลาสสิก: ใช้ ค่าเฉลี่ยตัวอย่าง เป็นตัวประมาณค่าตำแหน่ง และ เมทริกซ์ความแปรปรวนร่วมตัวอย่าง เป็นตัวประมาณการกระจาย

  • ในการตรวจจับค่าผิดปกติแบบหลายตัวแปร ระยะทาง Mahalanobis จะถูกเปรียบเทียบกับค่าตัดขาดที่ได้จากการแจกแจงไคสแควร์

  • ในสองมิติ สามารถสร้าง tolerance ellipsoid ที่ $97.5\%$ ซึ่งกำหนดจากการสังเกตการณ์ที่มีระยะทาง Mahalanobis ไม่เกินค่าตัดขาด

การตรวจจับการฉ้อโกงใน R

Tolerance ellipsoid จากระยะทาง 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)
การตรวจจับการฉ้อโกงใน R

cltolanimals_ggplot

การตรวจจับการฉ้อโกงใน R

ตัวประมาณตำแหน่งและการกระจายแบบ robust

ตัวประมาณ Minimum Covariance Determinant (MCD) ของ Rousseeuw เป็นตัวประมาณแบบ robust ที่นิยมใช้สำหรับตำแหน่งและการกระจายแบบหลายตัวแปร

  • MCD ค้นหา $h$ การสังเกตการณ์ที่เมทริกซ์ความแปรปรวนร่วมแบบคลาสสิกมี ดีเทอร์มิแนนต์ต่ำที่สุด
  • ตัวประมาณตำแหน่งของ MCD คือ ค่าเฉลี่ยของ $h$ การสังเกตการณ์เหล่านี้
  • ตัวประมาณการกระจายของ MCD คือ เมทริกซ์ความแปรปรวนร่วมตัวอย่างของ $h$ จุดเหล่านี้ (คูณด้วย consistency factor)
  • ใช้ขั้นตอน reweighting เพื่อเพิ่มประสิทธิภาพกับข้อมูลปกติ
  • การคำนวณ MCD ทำได้ยาก แต่มี อัลกอริทึมที่รวดเร็ว หลายแบบที่ถูกนำเสนอ
การตรวจจับการฉ้อโกงใน R

Robust distance

ตัวประมาณตำแหน่งและการกระจายแบบ robust โดยใช้ MCD

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

# Robust estimate of location
animals.mcd$center 

# Robust estimate of scatter
animals.mcd$cov

เมื่อแทนค่าตัวประมาณ robust ของตำแหน่งและการกระจายเข้าในนิยามของระยะทาง Mahalanobis จะได้ robust distances และสามารถสร้าง robust tolerance ellipsoid ได้

การตรวจจับการฉ้อโกงใน R

Animals: robust tolerance ellipsoid

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)
การตรวจจับการฉ้อโกงใน R

robtolanimals_ggplot_v3.png

การตรวจจับการฉ้อโกงใน R

Distance-distance plot

  • เมื่อ $p>3$ จะไม่สามารถแสดง tolerance ellipsoid ในรูปกราฟได้
  • Distance-distance plot แสดง robust distance ของแต่ละการสังเกตการณ์เทียบกับระยะทาง Mahalanobis แบบคลาสสิก ซึ่งได้โดยตรงจากออบเจกต์ MCD
    plot(animals.mcd, which = "dd")
    
    animalsddplot
การตรวจจับการฉ้อโกงใน R

Animals: ตรวจสอบค่าผิดปกติ

animalsdetection

การตรวจจับการฉ้อโกงใน R

มาฝึกกันเถอะ!

การตรวจจับการฉ้อโกงใน R

Preparing Video For Download...