ข้อมูลที่ขาดหายไปเป็นแบบสุ่มหรือไม่?

การประมวลผลข้อมูลขนาดใหญ่ใน R

Michael Kane

Assistant Professor, Yale University

การประมวลผลข้อมูลขนาดใหญ่ใน R

ประเภทของข้อมูลที่ขาดหายไป

  • Missing Completely at Random (MCAR)
  • Missing at Random (MAR)
  • Missing Not at Random (MNAR)
การประมวลผลข้อมูลขนาดใหญ่ใน R

MCAR

Missing Completely at Random

  • ไม่สามารถคาดเดาได้ว่าค่าใดจะขาดหายไป
  • ลบข้อมูลที่ขาดหายออกได้เลย
การประมวลผลข้อมูลขนาดใหญ่ใน R

MAR

Missing at Random

  • การขาดหายขึ้นอยู่กับตัวแปรอื่นในชุดข้อมูล
  • ใช้ multiple imputation เพื่อประมาณค่าที่ขาดหายไป
การประมวลผลข้อมูลขนาดใหญ่ใน R

MNAR

Missing Not at Random

  • ไม่ใช่ MCAR หรือ MAR
  • มีความสัมพันธ์เชิงกำหนดระหว่างตัวแปร
การประมวลผลข้อมูลขนาดใหญ่ใน R

การจัดการข้อมูลขาดหายในคอร์สนี้

  • การจัดการข้อมูลขาดหายอย่างครบถ้วนอยู่นอกเหนือขอบเขตของคอร์สนี้

  • จะตรวจสอบว่าข้อมูลน่าจะเป็น MCAR หรือไม่ แล้วลบค่าที่ขาดหายออก

การประมวลผลข้อมูลขนาดใหญ่ใน R

การตรวจสอบ MAR อย่างรวดเร็ว

  • กำหนดค่า 1 ถ้าข้อมูลขาดหาย และ 0 ถ้าไม่ขาดหาย
  • ถดถอยตัวแปรอื่นโดยใช้ logistic regression
  • p-value ที่มีนัยสำคัญบ่งชี้ว่าเป็น MAR
  • ทำซ้ำสำหรับคอลัมน์อื่นที่มีข้อมูลขาดหาย
  • p-value บางค่าอาจมีนัยสำคัญโดยบังเอิญ ให้ปรับเกณฑ์นัยสำคัญตามจำนวนการถดถอยที่ทำ
การประมวลผลข้อมูลขนาดใหญ่ใน R

ตัวอย่างการตรวจสอบ MAR อย่างรวดเร็ว

# Our dependent variable
is_missing <- rbinom(1000, 1, 0.5)

# Our independent variables data_matrix <- matrix(rnorm(1000*10), nrow = 1000, ncol = 10) # A vector of p-values we'll fill in p_vals <- rep(NA, ncol(data_matrix))
การประมวลผลข้อมูลขนาดใหญ่ใน R

ตัวอย่างการตรวจสอบ MAR อย่างรวดเร็ว

# Perform logistic regression
for (j in 1:ncol(data_matrix)) {
 s <- summary(glm(is_missing ~ data_matrix[, j]), 
              family = binomial)
              p_vals[j] <- s$coefficients[2, 4]
 }

# Show the p-values p_vals
0.5930082 0.7822695 0.7560343 0.3689330 0.8757048 
0.8812320 0.8281008 0.4888898 0.4781299 0.5655739
การประมวลผลข้อมูลขนาดใหญ่ใน R

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

การประมวลผลข้อมูลขนาดใหญ่ใน R

Preparing Video For Download...