“ถ้าคุณเติม Missing Value ผิดวิธี
มันจะกลายเป็นการเพิ่ม Bias ให้กับ Data ของคุณเอง !”
เช้าวันจันทร์ บอยด์พาไปรู้จักกับ Missing Values กัน
ว่ามีกี่แบบที่พบบ่อยๆ
และแต่ละแบบเป็นอย่างไรกันบ้าง
😳 Missing Values คืออะไร
Missing Values คือ Data ที่ขาดหายไป
อาจจะมาจากหลากหลายสาเหตุ
ซึ่งหลายๆครั้งเราเองซึ่งเป็นคนที่เล่น Data
ก็ยากที่จะเข้าใจว่า Data เหล่านั้นหายไปได้อย่างไร
ยกตัวอย่างเห็นภาพชัดขึ้น
หากเราไปสำรวจข้อมูลต่างๆกับลูกค้า
แล้วเราไปถามเรื่องน้ำหนัก ส่วนสูง
โดยที่มีการเก็บข้อมูลเรื่องของ ชื่อด้วย
เราอาจจะพบว่า
ข้อมูลที่เราเก็บมามีความไม่สมบูรณ์
หรือขาดหายไป
โดยเราอาจจะพบว่า ผู้หญิงไม่กรอกข้อมูลน้ำหนัก
..
หรือผู้ชายไม่กรอกเรื่องของรายได้
..
แล้วทีนี้ Missing Values ที่พบมีแบบไหนบ้างล่ะ !?
👩🔬 โดยทั่วไปจะถูกแบ่งเป็น 3 ชนิดใหญ่ๆ
แต่บางงานวิจัยก็อาจจะพบมากกว่า 3 ชนิด
- MCAR (Missing completely at random)
เมื่อ Missing Value เกิดขึ้นแบบ Random
หรือเกิดแบบสุ่มทั่วทั้ง Dataset
โดยที่ Data ที่ขาดหายไป
ไม่ได้ขึ้นกับตัวแปรใดตัวแปรหนึ่ง
..
โดยทั่วไปเราจะรู้ได้ไงว่าเกิด MCAR
เราจะทำการทดสอบ t-test
โดยแบ่งเป็น Dataset 2 ส่วน
แล้ววัดความแตกต่างของค่าเฉลี่ยข้อมูล
ถ้าพบว่าทั้ง 2 Dataset มีค่าเฉลี่ยไม่ต่างกัน
ก็พอจะคาดการณ์ได้ว่า
Dataset ของเรานั้นเป็น MCAR
- MAR (Missing at Random)
Data ที่ขาดหายไปไม่ได้หายแบบสุ่มทั้ง Dataset
แต่มีการขาดหายไปแบบสุ่มในกลุ่มของ Sub-dataset
หรือจาก Sample ที่สุ่มมาอีกที
ยกตัวอย่างเช่น
Dataset ที่มีการถาม IQ
ปรากฎว่า IQ ขาดหายไปในกลุ่มผู้สูงอายุุ
แสดงว่า
IQ ที่ขาดหายไปนั้น อายุมีผลทำให้ขาดหายไป
เราจะเรียกกรณีนี้ว่า MAR
- NMAR (Not Missing at Random)
เป็นกรณณีของ Data ที่ขาดหายไป
มีความสัมพันธ์โดยตรงกับข้อมูล
ที่ทำการเก็บมาโดยตรง เช่น
คนทีมีการศึกษาที่ไม่ดีนัก
ก็มักไม่ให้คำตอบด้านการศึกษาว่าจบชั้นไหน
Data ในส่วนนี้จึงเหมาะแก่การทำ Model
เพราะเป็นการขาดหายไปที่มีความสัมพันธ์กับตัวแปร
หรือเราอาจจะเรียก NMAR ได้อีกมุมว่า
เป็น Non-ignorable คือไม่อาจจะเผิดเฉยได้ ..
ในขณะที่ MCAR และ MAR อาจจะถูกเรียกว่า
Ignorable เพราะเป็นการเกิดแบบสุ่ม
🐣 โดยทั่วไปเราจัดการ Missing Value โดย
- Drop มันไปเลยสิครัช !!
แต่ระวังจะไม่เหลือ Data ให้ใช้งานนะ
แล้ว Data ที่มีก็อาจจะไม่เพียงพอไปใช้ทำ Model ต่อได้
แล้วถ้า Data ที่หายไป
มีส่วนเกี่ยวข้องกับการตอบคำถาม
ยิ่งไม่ควรทำ
- Imputation หรือการเติมค่า
Mean หรือ Median ก็เป็นวิธีที่เร็วและง่าย
แต่ก็นั่นแหละ เรากำลัง Bias Data เราอยู่
ดังนั้น พิจารณา Column ที่เราจะเติมดีดี
บางทีอาจจะต้องถูก Treat ด้วยวิธีอื่นๆแทน
..
ลองวิธี MICE หรือ (Multivariate Imputation
by Chained Equations)
โดยวิธีนี้เราต้อง Assume ว่า Data ของเรา
Missing แบบ MAR
จากนั้นจึงใช้ Model นี้เติมค่าทีละตัวแปร
ก็คล้ายๆกับการทำนายค่าที่ขาดหายไปนั่นแหละ
- ใช้ Model ไปเลยสิ
เช่นในกลุ่มของ Non-parametric
ซึ่งให้ผลดีกับข้อมูลกลุ่ม MAR และ NMAR
Model กลุ่มนี้ได้แก่ Random Forest ยังไงล่ะ !!
ใช้ Decision Trees หลายๆต้นมาช่วยกันประมาณค่า
GGEZ 🙈❤️
ทั้งนี้ อยากทิ้งท้ายว่า
ก่อนจะเติม Missing Value
หรือจัดการ Missingg Value
ให้คำนึงถึงว่าเราต้องการทำไปเพื่ออะไร
ทำไปทำไม ทำแล้วได้อะไรจากการทำ
..
บางครั้งการเติม หรือการตัด Data
บางทีก็ไม่ต้องใช้วิธีที่ซับซ้อนหรือยุ่งยากเลย
ถ้าเราเข้าใจ Data ที่เก็บมาอย่างแท้จริง