25 กันยายน 2558

Imputation: การคาดคะเนข้อมูลที่หายไปจากงานวิจัยอย่างมีหลักการ

วันก่อน ที่คณะฯ มีจัดอบรมเรื่อง Imputation จึงขอมาย่อเล่าสู่กันฟังนะครับ

งานวิจัยที่ดี ควรมีการเก็บข้อมูลที่ถูกต้อง และใช้สถิติที่ถูกต้องใช่ไหมครับ แต่มันเป็นสิ่งที่หลีกเลี่ยงในงานวิจัยแทบไม่ค่อยได้ที่จะเจอกับข้อมูลที่สูญหายไป

ข้อมูลที่สูญหายไปนั้นมีจากหลายสาเหตุครับ ยกตัวอย่างเช่น เราทำงานวิจัยงานหนึ่งที่เกี่ยวกับยา ตั้งแต่คนไข้กรอกข้อมูลของตนเอง บางคนอาจจะลืมกรอกข้อมูลเพศ ข้อมูลอายุ หรือบางคนก็จำวันเกิดไม่ได้ บางครั้งคนไข้เองอาจจะไม่อยู่ให้ตอบคำถามบางอย่างที่ไม่ได้ตอบแล้ว หรือผู้วิจัยไม่สามารถตามข้อมูลได้จริงๆ นั่นก็อาจจะถึงเวลาที่เราต้อง "คาดคะเน" (ภาษาชาวบ้านคือ "เดา") ข้อมูลที่หายไปในงานวิจัยครับ

แน่นอนว่า การเดาข้อมูลเป็นเรื่องที่ไม่ควรทำ ถ้าเราสามารถหาข้อมูลจริงๆ มาได้ อย่างเช่นการโทรศัพท์ไปสอบถามคนไข้ (ซึ่งหลายๆ ครั้งคนไข้สามารถที่จะตอบคำถามให้เราได้) หรือเราอาจจะตามข้อมูลจากแหล่งอื่นเช่นเวชระเบียน ทำให้เราไม่ต้องเสี่ยงกับการเดาข้อมูลที่ผิดพลาดครับ นั่นหมายความว่า ก่อนจะเริ่มเดาข้อมูล (อย่างมีหลักการ) นี้ต้องพยายามตามข้อมูลที่หายไปให้ได้ก่อนครับ

เมื่อตามไม่ได้แล้วจริงๆ ก็ถึงเวลาที่เราต้องเดาข้อมูลครับ ภาษาทางสถิติเรียกการคาดคะเนข้อมูลที่น่าจะเป็นนี้ว่า Imputation ครับ




สิ่งที่เราต้องทราบก่อนคือหลักการของ "ข้อมูลที่หายไป" (Missing Value) ครับ โดยข้อมูลที่หายไปในงานวิจัย เราแบ่งออกเป็นสามประเภท


  1. ข้อมูลที่หายไปอย่างสุ่มจริงๆ (Missing Completely At Random - MCAR) มีความหมายว่า ข้อมูลนั้นๆ มันน่าจะหายไปอย่างสุ่ม โดยไม่ขึ้นกับอะไรเลยครับ เช่น คนไข้ลืมกรอกด้วยความบังเอิญ นั่นหมายความว่า ไม่ว่าจะเป็นคนไข้ผู้ชายหรือผู้หญิง คนไข้อายุมากหรือายุน้อย คนไข้ที่ได้ยาหรือไม่ได้ยา ต่างก็มีโอกาสที่จะเกิดเหตุการณ์นี้พอๆ กัน ซึ่งเป็นสถานการณ์ที่ ideal ครับ ภาษาทางสถิตินิยามว่า ความน่าจะเป็นของการหายไปของข้อมูลนั้นๆ ไม่ขึ้นอยู่กับตัวแปรใดๆ (Probability that variable Y is missing is unrelated to Y or other variables)
  2. ข้อมูลที่หายไปแบบสุ่ม (Missing At Random - MAR) หมายความว่า ข้อมูลนั้นหายไปอย่างสุ่มโดยเทียบกับตัวแปรอื่น อันนี้อาจจะงงสักเล็กน้อย

    ยกตัวอย่างเช่น ถ้าเราศึกษาเรื่องยาดังกล่าว แล้วเราพบว่า มีคนที่ไม่มีข้อมูลความดันโลหิตหลายคน เราคิดว่า ความดันของคนที่ไม่ได้วัดไม่น่าจะหายไปอย่างสุ่มจริงๆ เช่น พยาบาลอาจจะลืมวัดคนที่อายุน้อยๆ เพราะคิดว่าความดันคงปกติ เราอาจจะคิดว่า ความดันของคนที่หายไป น่าจะแตกต่างจากความดันของคนทุกคนในงานวิจัย (คือต่ำกว่า)

    แต่จริงๆ แล้ว ถ้าเรามีข้อมูลในงานวิจัยว่า แต่ละคนมีอายุมากน้อยแค่ไหน เราก็สามารถที่จะใช้หลักการทางสถิติมาช่วยในการเดาได้ เพราะถ้าเราเอาเฉพาะคนที่อายุน้อยด้วยกันแล้ว ความดันของคนที่หายไป ก็น่าจะอยู่ในกลุ่มเดียวกับของคนอายุน้อยที่ไม่ได้หายไปครับ เพราะฉะนั้นงานวิจัยส่วนใหญ่ มักจะเก็บข้อมูลสิ่งที่เราคาดว่าจะส่งผลไว้อยู่แล้ว ซึ่งวิธีการ Imputation นั้นต้องการข้อมูลที่หายไปในลักษณะนี้เป็นอย่างน้อยครับ
  3. ข้อมูลที่หายไปแบบไม่สุ่ม (Missing Not At Random - MNAR) หมายความว่า ข้อมูลที่หายไปขึ้นอยู่กับตัวข้อมูลเอง ยกตัวอย่างเช่น งานวิจัยที่เกี่ยวกับ Depression แล้วมีข้อมูล Depression Score ของคนที่ Severe Depression หายไปเพราะไม่สามารถทน Depression จะเห็นว่า Depression Score ที่หายไป คือคนที่ Depression Score สูงๆ เท่านั้น ซึ่งถ้าข้อมูลเป็นแบบนี้ชัดๆ แล้วเราไม่สามารถใช้เทคนิค Imputation ในการสร้างข้อมูลใหม่ครับ


สำหรับเทคนิควิธีในการวิเคราะห์ข้อมูลที่หายไป มีหลายวิธีครับ แต่ละวิธีก็มีข้อดีข้อเสียแตกต่างกันออกไป ดังนี้ครับ

วิธีกลุ่มแรก ลบคนที่ไม่มีข้อมูลออกไปซะ (Deletion Methods)
คิดง่ายนิดเดียวครับ คือคนไข้คนไหนที่ไม่มีข้อมูล เราจะไม่คิดคนนั้นในการวิเคราะห์ ซึ่งจะแบ่งออกไปอีกเป็นสองแบบคือ

  1. Listwise deletion (Complete case analysis) คือคนที่วิเคราะห์จะต้องให้ข้อมูลเราครบทุกอย่างของานวิจัยเท่านั้น เช่น ถ้าคนไข้ในงานวิจัย ให้ข้อมูลที่ขาดไปดังรูป เราก็จะไม่คิดคนที่ขาดข้อมูล โดยไม่ว่าจะเป็นตัวแปรไหนก็ตาม คือการวิเคราะห์จะตัดคน id 2, 4, 5 ไปเลยครับ เช่น ถ้าจะคำนวณอายุเฉลี่ย ก็จะเป็นเฉพาะ 4 เคสที่เหลือ คือ (20+30+25+21)/4

    ข้อดีของวิธีนี้คือ เข้าใจง่าย, สามารถเปรียบเทียบการวิเคราะห์แต่ละอย่างได้ เพราะวิเคราะห์อะไรก็ตาม จำนวนเคส (ที่เหลือ) เท่าเดิมตลอด

    ข้อเสียของวิธีนี้คือ คนก็จะหายไปเยอะ (Power ของการวิเคราะห์ก็จะลดลงไปด้วย) เสียดายข้อมูลที่หายไป และอาจจะทำให้เกิด bias ได้ถ้าข้อมูลหายไปแบบไม่สุ่ม แต่มีคนให้ความเห็นว่าถ้ามีคนที่ข้อมูลไม่ครบน้อย (< 5%) วิธีนี้จะทำให้ไม่มี bias ในการวิเคราะห์ข้อมูลเท่าไหร่
  2. Pairwise deletion (Available case analysis) คือจะวิเคราะห์ทุกเคสที่ให้ข้อมูลในตัวแปรนั้นๆ เช่น ข้อมูลเพศของ 4 หายไปก็คิดเฉพาะคนอื่นยกเว้น 4, ข้อมูลอายุคนที่ 2 กับ 5 หายไป เวลาคำนวณอายุ ก็คิดเฉพาะคนที่เหลือยกเว้น 2 กับ 5 ก็จะเป็น (20+30+28+25+21)/5 ครับ

    ข้อดีของวิธีนี้คือได้ใช้ข้อมูลทั้งหมดที่เก็บมา และได้คนจำนวนเยอะที่สุด

    ข้อเสียของวิธีนี้ ไม่สามารถเปรียบเทียบการวิเคราะห์แต่ละอย่างได้ เช่น คนที่ให้ข้อมูลเพศ จะคล้ายกับคนที่ให้ข้อมูลอายุหรือไม่


วิธีกลุ่มที่สอง เดาค่าของข้อมูลของคนที่หายไปเป็นค่าเดียว (Single Imputation Methods)
คือเราทำการเดาค่าของข้อมูลที่หายไป ด้วยค่าอะไรบางอย่างค่าเดียวกันหมด เช่น แทนค่าด้วยค่า mean หรือ mode

ข้อดีคือ เราสามารถใช้วิธีคำนวณที่ต้องการข้อมูลทั้งหมดได้

ข้อเสียคือ ข้อมูลที่หายไปมันก็จะเหมือนกันหมด ซึ่งมันไม่ค่อยตรงกับความจริง เช่น ข้อมูลอายุคนที่หายไปทั้งหมดมันคงไม่ใช่อายุตัวเลขเดียวกันหมด (มันแทบเป็นไปไม่ได้ มันต้องต่างกันบ้างนิดๆ หน่อยๆ) ทางสถิติเราเรียกว่า variability มันลดลงครับ

วิธีกลุ่มที่สาม คือการวิเคราะห์ด้วยเทคนิคต่างๆ ทางสถิติ ซึ่งมีหลากหลายวิธีครับ

  1. ให้มีการ adjust ค่าต่างๆ ที่คำนวณได้ตามคนที่หายไปด้วย (Dummy Variable Adjustment) เช่น ถ้าเราวิเคราะห์แบบ Regression เราก็ให้ตัวแปรที่บอกว่าคนไหนหายไปอยู่ในโมเดลของ Regression ด้วย ข้อเสียของวิธีนี้คืออาจเกิด bias ได้
  2. ให้มีการคำนวณข้อมูลที่หายไป จากข้อมูลที่มีอยู่แล้วของคนๆ นั้นด้วย Regression Model (Regression Imputation) หมายถึง ให้ข้อมูลที่หายไปนั้นมาจากข้อมูลที่เหลือที่มีอยู่ผ่านทางการสร้างโมเดล Regression ข้อเสียของวิธีนี้คือ ทุกข้อมูลที่เกิดขึ้น จะอยู่บนสมการโมเดล Regression กันหมดเลย เกิดเหตุการณ์ที่เรียกว่า Overfit (ใครงงอาจจะต้องไปหาความรู้ของการสร้างโมเดล Regression นะครับ)
  3. Maximum Likelihood Estimation เป็นวิธีที่คำนวณข้อมูลที่หายไปจากข้อมูลที่มีอยู่ด้วยเทคนิคที่จะทำให้เกิด Log-Likelihood หรือค่าที่เกิดจากโมเดลสูงมากที่สุด ข้อเสียคือโปรแกรมปัจจุบันยังไม่สนับสนุนเทคนิคนี้เท่าไหร่ครับ อันนี้ขอไม่แตะในรายละเอียดครับ งงเหมือนกัน 55
  4. Multiple Imputation เทคนิคนี้กำลังได้รับความนิยม วิธีนี้ใช้หลักการคือสร้าง variation เล็กน้อยเข้าไปในกระบวนการ imputation กล่าวคือ สมมติว่าคาดว่าจะได้ค่าอายุที่หายไปออกมาเป็น 20 จากโมเดลทางคณิตศาสตร์ เราก็ทำให้เป็น 21 แทน (ให้มี variation เล็กน้อย) และลองคำนวณค่าต่างๆ จากโมเดลทางคณิตศาสตร์ออกมาจากข้อมูลชุดที่เป็น 21 นี้ (ข้อมูลที่ impute ชุดแรก) หลังจากนั้นก็สร้างข้อมูลชุดใหม่อีก แต่คราวนี้ให้ variation เปลี่ยนออกไป เป็น 19 แทน (ให้มี variation เป็นข้อมูลที่ impute ชุดที่สอง) และคำนวณค่าต่างๆ ออกมาอีก ทำซ้ำอย่างนี้ไปเรื่อยๆ หลายๆ variation (โดยปกติแนะนำที่ 20) แล้วดูผลว่าจะออกมาเป็นอย่างไรครับ ก็จะได้ค่าออกมาช่วงหนึ่งครับ
เรื่องนี้เป็นเรื่องใหม่ ยังไงอาจจะมีการเปลี่ยนแปลงไอเดียต่อไปในอนาคตนะครับ แต่สำคัญคือ เราควรจะตามข้อมูลให้ได้ก่อนที่จะเริ่มกระบวนการที่กล่าวมาครับ

12 ความคิดเห็น:

  1. ขอบคุณครับ

    ตอบลบ
  2. Multiple imputation ควรจะทำซ้ำอย่างน้อยเท่ากับร้อยละของข้อมูลที่สูญหายครับ แต่ส่วนใหญ่จะใช้ 20 เพราะนิยม impute
    ข้อมูลสูญหายที่ไม่เกิน 20% (แต่ก็มีงานที่ทำกับข้อมูลที่สูญหายเยอะ ๆ นะครับ)

    http://www.ncbi.nlm.nih.gov/pubmed/21225900

    ส่วน MAR ก็นิยมใช้ multiple imputation มากขึ้นครับ เพราะได้ bias ที่น้อยกว่า ถึงแม้จะมี S.E. ที่สูงกว่า (เป็นเพราะเวลาคำนวณจะ pool ข้อมูลที่ถูก imputed มา ทุกชุดรวมกันครับ)

    ตอบลบ

ช่วยแสดงความคิดเห็นเกี่ยวกับบทความนี้ด้วยนะครับ
Please leave your comments about this topic.