यह कई प्रतिरूपण निम्न गुणवत्ता क्यों है?


9

निम्नलिखित आर कोड पर विचार करें:

> 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, जिसके कारण समान परिणाम आए।

अद्यतन अमेलिया आउट ऑफ द बॉक्स काम करता है। अभी भी यह जानना दिलचस्प होगा कि मैं mi / चूहों के साथ क्या याद कर रहा हूँ।


1
आप आम तौर पर कई प्रतिरूपण के साथ क्या करने की कोशिश कर रहे हैं? मेरे लिए इस सवाल का थोड़ा और संदर्भ दिए बिना उत्तर देना कठिन है। [मुझे यह बिल्कुल भी आश्चर्यजनक नहीं लगता है कि आपकी प्रतिरूपण की गुणवत्ता कम थी जो कि आप केवल तीन चर और छह रिकॉर्ड के साथ काम कर रहे हैं]
पैट्रिक एस। फ़ॉर्चर

@ PatrickS.Forscher आप सही थे। मैंने सिर्फ 100 रिकॉर्ड के साथ एक समान परीक्षण की कोशिश की और परिणाम वैसा ही था जैसा मुझे उम्मीद थी। कृपया यह उत्तर दें कि मैं इसे स्वीकार कर सकता हूं, और यदि आप एक सफल प्रतिरूपण के लिए कुछ बॉलपार्क मिनिमम निर्दिष्ट कर सकते हैं तो यह बहुत अच्छा होगा।
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

अमेलिया II स्पष्ट रूप से क्रॉस-सेक्शनल टाइम सीरीज़ (उर्फ पैनल स्टडीज) के कई आरोपणों के लिए है। MICE नॉट-क्रॉस-सेक्शनल टाइम सीरीज़ डेटा के लिए है (या कम से कम, MICE ऐसी टाइम सीरीज़ के लिए ख़राब इंप्यूटेशन पैदा करता है, ऑनरेकर, जे और किंग, जी। (2010) देखें) टाइम-सीरीज़ क्रॉस में गुम वैल्यूज़ के बारे में क्या करें। -समाज डेटा। अमेरिकन जर्नल ऑफ पॉलिटिकल साइंस , 54 (2): 561-581।)
एलेक्सिस

@AleksandrBlekh मुझे वे पसंद नहीं हैं, मैं कुछ और x/ 2x/4x
t0x1n

जवाबों:


13

यह देखते हुए कि आप छह मामलों [रिकॉर्ड] और तीन चर का उपयोग कर रहे हैं, आपकी प्रतिरूपण की गुणवत्ता काफी कम होगी।

यह देखने के लिए कि यह मामला क्यों होगा, यह याद रखें कि बहु प्रतिरूपणित मानों के साथ अनुपलब्ध मानों को भरकर कई प्रतिरूपण कार्य करते हैं। इन लगाए गए मूल्यों की गणना की जाती हैmअलग-अलग डेटासेट (मैं इस जवाब में बाद में कैसे इन मानों को प्राप्त किया जाता है) पर लौटेंगे। बिगड़ा हुआ मान, डेटासेट से डेटासेट में थोड़ा भिन्न होगा।

इस प्रकार, ब्याज की एक सांख्यिकीय मात्रा दी गई q (उदाहरण के लिए, एक माध्य, एक प्रतिगमन गुणांक, आदि), एक का उपयोग कर सकते हैं m के लिए औसत मानक त्रुटि का अनुमान लगाने के लिए डेटासेट q के अंदर m डेटासेट (एक मात्रा जिसे मैं भीतर-प्रतिरूपण विचरण कहूँगा, या U¯) और डिग्री जो करने के लिएq डेटासेट्स में भिन्न होता है (एक मात्रा जिसे मैं बीच-बीच के विचरण को, या ) कहूंगा ।mB

इंप्यूटेशन क्वालिटी, , और के बीच का संबंधBU¯

एक के भीतर-इलज़ाम विचरण उपयोग कर सकते हैं और बीच-इलज़ाम विचरण डिग्री जो करने के लिए एक सांख्यिकीय मात्रा का एक अध्यारोपित अनुमान जानकारी अनुपलब्ध से प्रभावित रहा है के एक अनुमान प्राप्त करने के लिए। बेशक, अधिक जानकारी खो गई है, निर्धनता की गुणवत्ता खराब है। गुम होने की जानकारी का अनुमान लेबल , और निम्नलिखित सूत्र द्वारा दिया गया है:U¯Bγ

γ=r+2df+3r+1

rइस फॉर्मूले में इम्पोर्टेन्ट-वेरिएशन के भीतर-इंप्यूटेशन-वेरिएंस :: का अनुपात हैBU¯

r=(1+1m)BU¯

इस प्रकार, उच्च मूल्यों में उच्च मूल्यों का परिणाम होता है , जिसके परिणामस्वरूप उच्च मूल्यों का परिणाम होगा । बदले में, का एक उच्च मूल्य , लापता डेटा और खराब गुणवत्ता प्रतिरूपण के कारण खो गई अधिक जानकारी को इंगित करता है।Brγγ

df के सूत्र में भी और का एक कार्य है । विशेष रूप से, द्वारा अनुमान लगाया जाता हैγBU¯df

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

इस प्रकार, प्रति-आवेग विचरण के बीच बीच-संचलन विचलन के अनुपात में वृद्धि के अलावा, बढ़ने से भी घटता है । यह एक उच्च मूल्य के परिणामस्वरूप , गुम होने से अधिक जानकारी और खराब गुणवत्ता प्रतिरूपण का संकेत देगा।Bdfγ

संक्षेप में, इंप्यूटेशन वेरिएशन उच्च मूल्य दो तरह से इंप्यूटेशन क्वालिटी को प्रभावित करते हैं:B

  1. का उच्च मान आवेगों के बीच विचलन के अनुपात में विचलन के अनुपात को बढ़ाता है, अकुशलता को कम करता हैB
  2. उच्च मूल्य स्वतंत्रता की उपलब्ध डिग्री को कम करते हैं, प्रतिरूपण गुणवत्ता को कम करते हैंB

मामलों और की संख्या के बीच संबंधB

दो अन्यथा समान डेटासेट्स को देखते हुए, कम संख्या वाले डेटासेट के बीच एक बड़ा प्रतिरूपण विचलन ।B

यह तब हो जाएगा, क्योंकि जैसा कि मैंने ऊपर का वर्णन है, के बीच-इलज़ाम विचरण ब्याज का एक सांख्यिकीय मात्रा की गणना के द्वारा की जाती है में से प्रत्येक के भीतर अध्यारोपित डेटासेट और किस हद तक करने के लिए कंप्यूटिंग में से प्रत्येक में अलग-अलग डेटासेट। किसी दिए गए डाटासेट मामलों के एक उच्च मात्रा लेकिन एक और के रूप में मान अनुपलब्ध की एक ऐसी ही मात्रा है, तो मूल्यों के एक छोटे से अनुपात में से प्रत्येक में अलग अलग करने के लिए स्वतंत्र हो जाएगा अध्यारोपित डेटासेट, जिसका अर्थ है कि वहाँ में कम समग्र भिन्नता हो जाएगा भर में लगाए गए डेटासेट।qmqmmq

इस प्रकार, सामान्य तौर पर, मामलों की संख्या में वृद्धि (या, अधिक सटीक रूप से, लापता मूल्यों के अनुपात को कम करना) से प्रतिरूपण गुणवत्ता में वृद्धि होगी।

चर और की संख्या के बीच संबंधB

दो अन्यथा समान डेटासेटों को देखते हुए, बड़ी संख्या में चर वाले डेटासेट के बीच एक छोटा-प्रतिरूपण विचलन , जब तक कि उन अतिरिक्त चर अनुपलब्ध मानों के बारे में जानकारीपूर्ण होते हैं।B

ऐसा इसलिए होगा क्योंकि सामान्य तौर पर, किसी दिए गए चर के लिए लापता मान "भरे हुए" होते हैं, जो लापता मानों के अनुमानित अनुमानों को उत्पन्न करने के लिए अन्य चर की जानकारी का उपयोग करके (इन अनुमानों के उत्पन्न होने के विशिष्ट विवरण एमआई के कार्यान्वयन के आधार पर अलग-अलग होंगे। आप उपयोग कर रहे हैं)। अतिरिक्त चर के रूप में अधिक जानकारी के परिणामस्वरूप अधिक स्थिर आवेग मूल्य होंगे, जिसके परिणामस्वरूप प्रत्येक प्रति डेटासेट में ब्याज की सांख्यिकीय मात्रा में कम भिन्नता होगी ।qm

इस प्रकार, सामान्य तौर पर, एक डाटासेट में उपलब्ध चर की संख्या में वृद्धि से प्रतिरूपण गुणवत्ता में वृद्धि होगी, जब तक कि उन अतिरिक्त चर गायब मूल्यों के बारे में जानकारीपूर्ण होते हैं।

संदर्भ

रुबिन, डीबी (1996)। 18+ वर्षों के बाद कई प्रतिनियुक्ति। जर्नल ऑफ़ द अमेरिकन स्टैटिस्टिकल एसोसिएशन , 91, 473-489।

शेफर, जेएल (1999)। एकाधिक प्रतिरूपण: एक प्राइमर। चिकित्सा अनुसंधान में सांख्यिकीय तरीके , 8, 3-15।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.