คุณภาพของตัวจำแนก
posted on 02 Feb 2010 09:02 by wonamตัวจำแนกคือเครื่องมือหรือเกณฑ์พร้อมทั้งการทดสอบบางอย่างเพื่อใช้แยกวัตถุออกเป็นประเภทตามที่เราต้องการ ยกตัวอย่างเช่น เครื่องมือตรวจของแพทย์ในการตรวจสอบว่าเราเป็นไข้หวัดหรือไม่ สีของท้องฟ้าที่เราพยายามใช้เพื่อบอกว่าฝนจะตกหรือไม่ รวมไปจนถึงเจ้าเครื่อง แกรนทัวริสโม 200 ที่ใช้จำแนกหรือบ่งชี้วัตถุอันตรายต่าง ๆ
ปกติแล้วเครื่องมือเหล่านี้มักจะไม่ได้ทำงานได้ 100% ยกตัวอย่างเช่น ถ้าเราไปตรวจพบว่าเป็นไข้หวัดด้วยเครื่องมือธรรมดา จริง ๆ แล้วเราอาจจะไม่ได้เป็นก็ได้ แต่เครื่องมือตรวจผิดพลาด แพทย์มักให้ตรวจสอบซ้ำด้วยเครื่องมืออื่นเพื่อยืนยันผล
ทีนี้ พอเรากล่าวว่าเครื่องมือทำงานไม่ได้ 100% ค่าที่เรามักจะได้ยินก็คือ เครื่องมือวัดนั้นมีความผิดพลาดเท่าใด จริง ๆ แล้วการระบุดังกล่าวเป็นการอธิบายภาพรวมคร่าว ๆ ของเครื่องมือ โดยไม่ได้พิจารณาถึงรายละเอียดของเหตุการณ์ที่เกิด "ความผิดพลาด" ขึ้น
ขอยกตัวอย่างการตรวจว่าเป็นไข้หวัด เพราะว่าน่าจะเห็นภาพได้ง่ายหน่อย ถ้าลองตีตารางดูเพื่อพิจารณากรณีที่เป็นไปได้เกี่ยวกับเรื่องนี้ จะพบว่ามีกรณีที่เป็นไปได้ 4 แบบ คือ
| เครื่องมือวัดบอกว่าเป็นหวัด | เครื่องมือวัดบอกว่าไม่เป็นหวัด | |
| เป็นหวัด | ตอบถูก | ตอบผิด (II) |
| ไม่เป็นหวัด | ตอบผิด(I) | ตอบถูก |
สังเกตว่าเราสามารถตอบผิดได้ 2 แบบ
- ตอบผิดแบบแรก (I) ทางสถิติเรียกว่า False positive คือเครื่องมือบอกว่าเป็นหวัด (positive) แต่จริง ๆ ไม่ได้เป็น
- แบบที่สอง (II) ทางสถิติเรียกว่า False negative คือเครื่องมือบอกว่าไม่เป็นหวัด (negative) แต่จริง ๆ แล้วเป็น
ในการค่าเหล่าเราสามารถใช้การทดลองเพื่อประมาณค่าได้
การทดลองโดยทั่วไปจะเป็นแบบ blind experiment (ดูคำอธิบายเปรียบเทียบวิธีการทดลองแบบต่าง ๆ จากตอนปลาย ๆ ของกระทู้ของหมอแมว คำเตือน: ตอนต้นกระทู้ไม่เกี่ยว และเจ้าของบล็อกนี้ไม่จำเป็นต้องเห็นด้วยกับข้อความเหล่านั้น) คือจะมีการนำตัวอย่างที่ผู้ทดสอบไม่ทราบว่าเป็นหวัดหรือไม่เป็นมาให้ทดสอบ จากนั้นก็หาอัตราส่วนความผิดพลาดทั้งสองแบบออกมา
วิธีการนี้ใช้กันทั่วไป และยิ่งใช้กันมากในวงการแพทย์ (ตามที่ผมเข้าใจ) เวลาจะทดลองยาใหม่ ๆ ก็จะมีการหากลุ่มตัวอย่างแล้วให้ยาจริงกับยาปลอมไปแล้ววัดผลแตกต่าง อันนี้ก็เป็น blind experiment เช่นเดียวกัน โดยมากการเลือกให้ยาจริงหรือยาปลอมก็จะทำโดยเครื่องสุ่ม ไม่ใช่แพทย์เลือกด้วยซ้ำเพื่อป้องกันความเอนเอียงในรูปแบบต่าง ๆ
อัตราความผิดพลาดทั้งสองแบบก็สามารถหาได้ด้วยสูตรด้านล่าง:
- อัตรา False positive = จำนวนกรณีที่เป็น false positive / จำนวนคนที่ไม่เป็นหวัดทั้งหมด
- อัตรา False negative = จำนวนกรณีที่เป็น false negative / จำนวนคนเป็นหวัดทั้งหมด
ค่าสองค่านี้ตีความง่าย ๆ ได้ว่า อัตรา false positive คืออัตราความซวยของคนที่ไม่ได้เป็นหวัด คือจริง ๆ เราไม่ได้เป็นหวัด แต่เครื่องมือทำให้เรากลัดกลุ้มว่าเราเป็นหวัด หรืออาจจะทำให้เกิดความแย่อื่น ๆ ตามมาเช่น โดนหมอฉีดยา ส่วนอัตรา false negative คืออัตราความปลอดภัยแบบจอมปลอม คือการที่เครื่องปล่อยคนเป็นหวัดจริง ๆ ไป จริง ๆ แล้วเราเป็นหวัด แต่เครื่องดันตรวจไม่เจอ เราก็นึกว่าเราสบายแล้ว เที่ยวแพร่เชื้อไปทั่ว เป็นต้น
อย่างไรก็ตาม ค่าสองค่านี้ ยังไม่พอที่จะใช้ระบุความผิดพลาดของเครื่องมือวัดหรือตัวจำแนกได้
สิ่งที่ขาดไปคืออัตราส่วนของคนที่เป็นหวัดจริง ๆ ต่อคนไม่ได้เป็นหวัด ซึ่งสำคัญมากในการวัดผลความผิดพลาด
ขอยกตัวอย่างเป็นตัวเลขเพื่อจะได้เห็นภาพนะครับ
สมมติว่า เรามีเครื่องวัดห่วยมากอันหนึ่ง คือ เครื่องมือนี้ตอบว่า "ไม่เป็น" อย่างเดียวเลย
ทีนี้เราพบว่า อัตรา false positive เป็น 0 (ดีเลิศ) ไม่มีคนไม่เป็นแต่โดนกล่าวหาเลย แต่อัตรา false negaive จะแย่มาก คือเป็น 100%
อย่างไรก็ตาม ถ้าจริง ๆ แล้วคนที่เป็นหวัดมีแค่ 1% เครื่องมือนี้ก็จะมีความผิดพลาดแค่ 1% เท่านั้น (ใน 100 คน มีคนที่เครื่องมือชี้ผลผิดพลาดแค่ 1 คน)
เลข 1% นั้นดูดีมากเลยเวลาเอาไปบอกกับใคร ๆ
ทีนี้ เราลองคงอัตราส่วนคนเป็นหวัดเอาไว้ที่ 1% ก่อนนะครับ สมมติมีเครื่องมืออีกอันที่มีประสิทธิภาพดีขึ้นคือ มีอัตราทั้ง false negative เป็น 10% และ false positive ก็เป็น 10% เช่นเดียวกัน
สมมติว่าเรามีคน 10,000 คน ก็จะมีคนเป็นหวัด 100 คน เครื่องมือตรวจไม่เจอ 10 คน ส่วนคนไม่เป็นหวัด 9,900 เครื่องมือไปชี้ว่าเป็นหวัด 990 คน
ความผิดพลาด 10% เท่านั้นครับ แต่ว่าคนที่ตรวจเจอจริง ๆ มี 90 คน คนที่ไม่เป็นแต่โดนบอกว่าเป็นมีมากกว่า 10 เท่า
จากตัวอย่างสองอันที่ยกมา สังเกตว่าค่าความผิดพลาด อัตรา false positive และ false negative นั้นเป็นตัวเลขที่ดูจะผันผวนมาก การกล่าวถึงค่าบางค่าโดยลำพังนั้นโดยมากไม่พอเพียงที่จะใช้แจ้งข้อมูลลักษณะความผิดพลาดที่จะเกิดขึ้นได้เท่าใด
เพื่อให้เห็นภาพที่ชัดยิ่งขึ้นขอยกตัวอย่าง แกรนทัวริสโม 200 (ตามคาด)
เพื่อความชัดเจน จะพิจารณารูปแบบการใช้เครื่องจำแนก แกรนทัวริสโม 200 ในแบบง่าย ก็คือ เราจะมีวัตถุต้องสงสัย อาจจะเป็นรถยนต์ รถจักรยานยนต์ เป็นกระเป๋า หรือกระทั่งเป็นคน
ผมคิดว่าอัตราส่วนของของที่มีระเบิดหรือสารเสพติดจริง ๆ น่าจะน้อยมาก แต่ขอคิดให้มันเยอะ ๆ ไปก่อน คือคิดเป็น 1% ของของทั้งหมด (คือรถวิ่งผ่านไป 100 คัน มีระเบิด 1 คัน เดินผ่านตลาดไปรถร้อยคันมีระเบิดหนึ่งคัน ซึ่งเยอะมากๆๆ ของจริงไม่มีทางมากขนาดนี้)
พิจารณาว่ามีรถ 1000 คัน 10 คันในนั้นมีระเบิด ตัวเลขของการตรวจผิดแบบใดที่เรายอมรับได้ว่ามีผลที่ดี? เราจะลองดูนะครับว่าเครื่องที่ได้อย่างที่เราต้องการ ต้องมีอัตราความผิดพลาดเท่าใดกัน? ลองพิจารณากรณีด้านล่างดูนะครับ
- กรณี 1. รถระเบิด 10 คัน ตรวจเจอ 9 คัน รถไม่มีระเบิด ตรวจผิดว่ามีระเบิดไป 9 คันเท่ากัน
ในกรณีนี้ตรวจผิดไปรวม 10 คัน (false positive 9, false negative 1) จาก 1000 คัน คือเครื่องตรวจจะต้องมีความผิดพลาดไม่เกิน 1% - กรณี 2. รถระเบิด 10 คัด ตรวจเจอ 9 คัน รถไม่มีระเบิด ตรวจผิดว่ามีระเบิดไป 81 คัน (มากกว่า 9 เท่า) เครื่องตรวจนี้มีความผิดพลาด 100/1000 = 10% เท่านั้นเอง
- กรณี 3. สมมติว่าเราตรวจเจอรถระเบิด 9 คัน ส่วนตรวจรถที่ไม่มีระเบิดว่ามีระเบิดผิดแค่ 1 คัน ในกรณีนี้ เครื่องจะต้องมีความผิดพลาดไม่เกิน (1+1)/1000 = 0.2% (เครื่องต้องแม่นมาก ๆ)
สังเกตว่า แค่เครื่องมีความผิดพลาดแค่ 10% จำนวน false positive ก็มหาศาลแล้ว
เพราะฉะนั้น โดยมากเครื่องมือตรวจวัดที่ใช้ในกรณีที่ข้อมูลกลุ่มที่ต้องการตรวจจับมีจำนวนน้อย ๆ มักจะต้องมีความแม่นยำสูงมาก ๆ ไม่เช่นนั้นก็จะพบกับปัญหา false positive คือ จับแพะ เช่นตัวอย่างข้างต้น
ที่เขียนมานี่ ผมก็ไม่เคยลงภาคสนามหรืออะไรพวกนี้ แค่อ่านเอาจากหนังสือสถิติเบื้องต้น ที่ชอบยกตัวอย่างการตรวจโรคว่าเป็นโรคไม่เป็นโรคกันเสียทุกเล่ม
อ่านเพิ่มเติม Type I and type II errors จากวิกิพีเดีย
หมายเหตุ ตอนแรกคำนวณเลขผิดส่วนคนเป็นหวัด 10000 คน ตอนนี้แก้แล้วครับ

#1 By >< (71.206.247.171) on 2010-02-02 11:05