ทำไมการใส่ข้อมูลหลาย ๆ ครั้งจึงมีคุณภาพต่ำ


9

พิจารณารหัส R ต่อไปนี้:

> data <- data.frame(
            a=c(NA,2,3,4,5,6),b=c(2.2,NA,6.1,8.3,10.2,12.13),c=c(4.2,7.9,NA,16.1,19.9,23))
> data
   a     b    c
1 NA  2.20  4.2
2  2    NA  7.9
3  3  6.10   NA
4  4  8.30 16.1
5  5 10.20 19.9
6  6 12.13 23.0

c = 2*b = 4*aที่คุณสามารถดูฉันได้ออกแบบข้อมูลเพื่อให้ประมาณ a=1, b=2, c=12ดังนั้นเราคาดว่าจะได้ค่าที่ขาดหายไปจะเป็นรอบ ดังนั้นฉันทำการวิเคราะห์:

> imp <- mi(data)
Beginning Multiple Imputation ( Sat Oct 18 03:02:41 2014 ):
Iteration 1 
 Chain 1 : a*  b*  c*  
 Chain 2 : a*  b*  c*  
 Chain 3 : a*  b*  c*  
Iteration 2 
 Chain 1 : a*  b   c   
 Chain 2 : a*  b*  c*  
 Chain 3 : a   b*  c   
Iteration 3 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a*  b*  c*  
Iteration 4 
 Chain 1 : a   b   c   
 Chain 2 : a   b*  c   
 Chain 3 : a*  b   c   
Iteration 5 
 Chain 1 : a   b   c*  
 Chain 2 : a   b*  c   
 Chain 3 : a   b*  c   
Iteration 6 
 Chain 1 : a*  b   c*  
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 7 
 Chain 1 : a   b   c   
 Chain 2 : a   b*  c   
 Chain 3 : a   b   c*  
Iteration 8 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b*  c*  
Iteration 9 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c*  
 Chain 3 : a   b   c   
Iteration 10 
 Chain 1 : a   b*  c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 11 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 12 
 Chain 1 : a   b   c   
 Chain 2 : a*  b   c   
 Chain 3 : a   b   c   
Iteration 13 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c*  
 Chain 3 : a   b   c*  
Iteration 14 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 15 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c*  
Iteration 16 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b*  c   
Iteration 17 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 18 
 Chain 1 : a   b   c*  
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 19 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c*  
Iteration 20 
 Chain 1 : a   b   c*  
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 21 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 22 
 Chain 1 : a   b   c*  
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 23 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 24 
 Chain 1 : a   b   c*  
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 25 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 26 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 27 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 28 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 29 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
mi converged ( Sat Oct 18 03:02:45 2014 )
Run 20 more iterations to mitigate the influence of the noise...
Beginning Multiple Imputation ( Sat Oct 18 03:02:45 2014 ):
Iteration 1 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 2 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 3 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 4 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 5 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 6 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 7 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 8 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 9 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 10 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 11 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 12 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 13 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 14 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 15 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 16 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 17 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 18 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 19 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 20 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Reached the maximum iteration, mi did not converge ( Sat Oct 18 03:02:48 2014 )

และในที่สุดก็สังเกตเห็นชุดข้อมูลที่สมบูรณ์:

> mi.completed(imp)
[[1]]
  a     b    c
1 2  2.20  4.2
2 2  2.20  7.9
3 3  6.10 16.1
4 4  8.30 16.1
5 5 10.20 19.9
6 6 12.13 23.0

[[2]]
  a     b    c
1 2  2.20  4.2
2 2  6.10  7.9
3 3  6.10  7.9
4 4  8.30 16.1
5 5 10.20 19.9
6 6 12.13 23.0

[[3]]
  a     b    c
1 2  2.20  4.2
2 2  2.20  7.9
3 3  6.10  7.9
4 4  8.30 16.1
5 5 10.20 19.9
6 6 12.13 23.0

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

ฉันพลาดอะไรไป

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

ฉันลองใช้วิธีที่คล้ายกันmiceซึ่งนำไปสู่ผลลัพธ์ที่คล้ายกัน

อัพเดท Amelia ใช้งานได้ดีมากนอกกรอบ จะยังคงเป็นที่น่าสนใจที่จะรู้ว่าสิ่งที่ฉันหายไปกับไมล์ / หนู


1
คุณพยายามทำอะไรกับการใส่ร้ายหลายครั้งโดยทั่วไป? มันยากสำหรับฉันที่จะตอบคำถามนี้โดยไม่มีบริบทเพิ่มเติมอีกเล็กน้อย [ฉันไม่คิดว่ามันน่าแปลกใจเลยที่คุณภาพของการใส่ร้ายของคุณต่ำเพราะคุณทำงานกับตัวแปรเพียงสามตัวและบันทึกหกตัว]
Patrick S. Forscher

@ PatrickS.Forscher คุณพูดถูก ฉันแค่ลองทดสอบที่คล้ายกันกับ 100 บันทึกและผลลัพธ์ก็ตามที่ฉันคาดหวัง โปรดตอบคำถามนั้นเพื่อให้ฉันสามารถยอมรับได้และถ้าคุณสามารถระบุขั้นต่ำของ ballpark สำหรับการใส่เข้าไปที่ประสบความสำเร็จมันจะดีมาก
t0x1n

คุณจะพูดอะไรเกี่ยวกับผลลัพธ์ต่อไปนี้ > mi.completed(imp) [[1]] a b c 1 0.289 2.20 4.2 2 2.000 2.57 7.9 3 3.000 6.10 12.7 4 4.000 8.30 16.1 5 5.000 10.20 19.9 6 6.000 12.13 23.0 [[2]] a b c 1 0.603 2.20 4.2 2 2.000 5.82 7.9 3 3.000 6.10 13.4 4 4.000 8.30 16.1 5 5.000 10.20 19.9 6 6.000 12.13 23.0 [[3]] a b c 1 1.05 2.20 4.2 2 2.00 4.18 7.9 3 3.00 6.10 12.0 4 4.00 8.30 16.1 5 5.00 10.20 19.9 6 6.00 12.13 23.0ขออภัยเกี่ยวกับการจัดรูปแบบ แต่ฉันเดาว่าเป็นสิ่งที่ดีที่สุดที่ฉันสามารถทำได้ในความคิดเห็น
Aleksandr Blekh

Amelia II มีไว้สำหรับการใส่หลายครั้งของซีรี่ส์เวลาแบบตัดขวาง (การศึกษาแบบแผง) MICE ใช้สำหรับข้อมูลอนุกรมเวลาแบบไม่ตัดขวาง (หรืออย่างน้อย MICE สร้างการแสดงผลที่ไม่ดีสำหรับอนุกรมเวลาดังกล่าวดูที่ Honaker, J. และ King, G. (2010) จะทำอย่างไรกับค่าที่หายไปในการข้ามอนุกรมเวลา ข้อมูลส่วนวารสารอเมริกันรัฐศาสตร์ 54 (2): 561–581)
อเล็กซิส

@AleksandrBlekh ฉันไม่ชอบพวกเขาเช่นกันฉันคาดหวังสิ่งที่ใกล้กับx/ 2x/4x
t0x1n

คำตอบ:


13

เนื่องจากคุณใช้หกกรณี [บันทึก] และตัวแปรสามตัวคุณภาพของการใส่ความคิดของคุณจะค่อนข้างต่ำ

เมื่อต้องการดูสาเหตุที่เป็นเช่นนี้โปรดจำไว้ว่าการใส่หลายครั้งทำงานโดยการกรอกค่าที่ขาดหายไปด้วยค่าที่ใส่ได้น่าเชื่อถือ ค่าที่ใส่เข้าไปเหล่านี้จะถูกคำนวณในmชุดข้อมูลที่แยกต่างหาก (ฉันจะกลับไปที่วิธีการที่ค่าเหล่านี้ได้รับมาในภายหลังในคำตอบนี้) ค่าที่ใส่เข้าไปจะแตกต่างกันเล็กน้อยจากชุดข้อมูลไปยังชุดข้อมูล

ดังนั้นได้รับปริมาณความสนใจทางสถิติ q (เช่นค่าเฉลี่ยสัมประสิทธิ์การถดถอย ฯลฯ ) เราสามารถใช้ m ชุดข้อมูลเพื่อประเมินข้อผิดพลาดมาตรฐานเฉลี่ยสำหรับ q ภายใน m ชุดข้อมูล (ปริมาณที่ฉันจะเรียกว่าความแปรปรวนภายในการใส่ข้อมูลหรือ U¯) และระดับที่q แตกต่างกันไปทั่ว m ชุดข้อมูล (ปริมาณที่ฉันจะเรียกความแปรปรวนระหว่าง imputation หรือ B)

ความสัมพันธ์ระหว่างคุณภาพการใส่ความ Bและ U¯

หนึ่งสามารถใช้ความแปรปรวนภายในการใส่ร้าย U¯ และความแปรปรวนระหว่างการใส่ร้าย Bเพื่อรับการประมาณระดับที่ประเมิน imputed ของปริมาณทางสถิติได้รับอิทธิพลจากข้อมูลที่ขาดหายไป แน่นอนยิ่งมีข้อมูลสูญหายสูญหายยิ่งทำให้คุณภาพของการใส่ร้ายแย่ลง การประมาณการข้อมูลที่สูญหายไปยังความสูญหายจะถูกระบุไว้ γและได้รับจากสูตรต่อไปนี้:

γ=r+2df+3r+1

r ในสูตรนี้เป็นอัตราส่วนของความแปรปรวนระหว่างการใส่ข้อมูล B กับความแปรปรวนภายใน - ความแปรปรวน U¯:

r=(1+1m)BU¯

ดังนั้นค่าสูงของ B ส่งผลให้ค่าสูงของ rซึ่งจะส่งผลให้ค่าสูงของ γ. มีมูลค่าสูงγในทางกลับกันบ่งชี้ข้อมูลเพิ่มเติมที่หายไปเนื่องจากข้อมูลที่ขาดหายไปและการกำหนดคุณภาพที่ไม่ดี

df ในสูตรสำหรับ γ ยังเป็นหน้าที่ของ B และ U¯. โดยเฉพาะอย่างยิ่งdf ถูกประเมินโดย

df=(m1)(1+mU¯(m+1)B)2

ดังนั้นนอกเหนือจากการเพิ่มอัตราส่วนของความแปรปรวนระหว่างการอิมเพรสชันกับความแปรปรวนภายในอิมพัลชั่นที่เพิ่มขึ้น B ยังลดลง df. ซึ่งจะส่งผลให้มีค่าสูงกว่าγระบุข้อมูลเพิ่มเติมที่หายไปจากความหายไปและคุณภาพที่ไม่ดี

โดยรวมแล้วค่าที่สูงขึ้นของความแปรปรวนระหว่างการใส่ข้อมูล B ส่งผลกระทบต่อคุณภาพการใส่ร้ายสองวิธี:

  1. ค่าที่สูงขึ้นของ B เพิ่มอัตราส่วนของความแปรปรวนระหว่างการใส่ความกับความแปรปรวนภายในการใส่ความลดคุณภาพการลดความคมชัด
  2. ค่าที่สูงขึ้นของ B ลดองศาอิสระที่มีอยู่ลดคุณภาพการใส่ความ

ความสัมพันธ์ระหว่างจำนวนผู้ป่วยและ B

เมื่อได้รับสองชุดข้อมูลที่คล้ายกันชุดข้อมูลที่มีจำนวนกรณีน้อยลงจะมีความแปรปรวนระหว่างการใส่ข้อมูลเพิ่มขึ้น B.

สิ่งนี้จะเกิดขึ้นเพราะตามที่ฉันอธิบายไว้ข้างต้นความแปรปรวนระหว่างการใส่ข้อมูลจะคำนวณโดยคำนวณจำนวนดอกเบี้ยที่น่าสนใจ q ภายในแต่ละ m ชุดข้อมูลที่ถูกใส่ข้อมูลและการคำนวณระดับที่ q แตกต่างกันไปในแต่ละ mชุดข้อมูล หากชุดข้อมูลที่กำหนดมีปริมาณของกรณีที่สูงกว่า แต่ปริมาณที่ขาดหายไปในทำนองเดียวกันเป็นอีกกรณีหนึ่งสัดส่วนที่น้อยกว่าของค่าจะแตกต่างกันไปตามแต่ละm ชุดข้อมูลที่ถูกใส่ข้อมูลซึ่งหมายความว่าจะมีการเปลี่ยนแปลงโดยรวมที่ต่ำกว่า q ข้ามชุดข้อมูลที่กำหนดไว้

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

ความสัมพันธ์ระหว่างจำนวนของตัวแปรและ B

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

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

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

อ้างอิง

Rubin, DB (1996) การใส่ความหลายครั้งหลังจาก 18 ปีขึ้นไป วารสารสมาคมสถิติอเมริกัน , 91, 473-489

Schafer, JL (1999) การใส่ร้ายหลายครั้ง: ไพรเมอร์ วิธีการทางสถิติในการวิจัยทางการแพทย์ , 8, 3-15

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.