Neden bu çoklu impütasyon düşük kalite?


9

Aşağıdaki R kodunu düşünün:

> 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

Gördüğünüz gibi, verileri kabaca tasarladım c = 2*b = 4*a. Bu nedenle, eksik değerlerin etrafta olmasını beklerdim a=1, b=2, c=12. Bu yüzden analizi yaptım:

> 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 )

Ve son olarak tamamlanan veri setini gözlemledik:

> 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

Gördüğünüz gibi, örtük değerler beklediğim gibi değil. Aslında, eksik değerler bitişik kayıtlardan görünüşte alındığı için tek bir imalamanın sonucuna benziyorlar .

Neyi kaçırıyorum?

İstatistiklerdeki "bilgimin" çoğunlukla ~ 14 yıl önce aldığım bir giriş dersinden belirsiz bir şekilde hatırladığımla sınırlı olduğunu belirtmeliyim. Ben sadece eksik değerleri ima etmenin basit bir yolunu arıyorum, en optimize edilmiş olmak zorunda değil ama (bu sonuçlardan yapamam) bir tür mantıklı olması gerekiyor. İstediğimi mielde etmek için doğru bir yaklaşım olmayabilir (belki de bunun yerine tahmin kullanılmalıdır), bu yüzden önerilere açığım.

Ben de micebenzer sonuçlara yol açan benzer bir yaklaşım denedim .

GÜNCELLEME Amelia kutunun dışında harika çalışıyor. Yine de mi / fare ile ne eksik bilmek bilmek ilginç olurdu.


1
Genel olarak çoklu impütasyon ile ne yapmaya çalışıyorsunuz? Bu soruyu biraz daha bağlam olmadan cevaplamak benim için zor. [Ayrıca, sadece üç değişken ve altı kayıtla çalıştığınız için, dürüstlüğünüzün kalitesinin düşük olduğunu hiç de şaşırtıcı bulmuyorum]
Patrick S. Forscher

@ PatrickS.Forscher haklıydın. 100 kayıtla benzer bir testi denedim ve sonuçlar beklediğim gibi oldu. Lütfen bunu cevaplayabilmem için bir cevap verin ve eğer başarılı bir dürtü için bazı ballpark minimumları belirleyebiliyorsanız harika olur.
t0x1n

Aşağıdaki sonuçlar hakkında ne söylerdiniz? > 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.0Biçimlendirme için üzgünüm, ama bir yorumda yapabileceğim en iyisi sanırım.
Aleksandr Blekh

Amelia II, enine kesitsel zaman serilerinin çoklu impütasyonu içindir (panel çalışmaları olarak da bilinir). MICE, kesitsel olmayan zaman serisi verileri içindir (veya en azından MICE, bu zaman serileri için zayıf impütasyonlar üretir, bkz. Honaker, J. ve King, G. (2010). Zaman serisi çaprazlamasında eksik değerler hakkında ne yapmalı? bölüm verileri Amerikan Siyasal Bilimler Dergisi , 54 (2): 561–581.)
Alexis

@AleksandrBlekh Ben de onları sevmiyorum, x/ 2x/4x
t0x1n

Yanıtlar:


13

Altı vaka [kayıt] ve üç değişken kullandığınız düşünüldüğünde, impütasyonunuzun kalitesi oldukça düşük olacaktır.

Bunun neden böyle olacağını görmek için, eksik değerleri mantıklı çarpma değerleriyle doldurarak birden fazla uyarımın işe yaradığını unutmayın. Taranan bu değerler,mayrı veri kümeleri (bu çarpıştırılan değerlerin bu cevabın ilerleyen bölümlerinde nasıl elde edildiğine döneceğim). Taranan değerler veri kümesinden veri kümesine biraz değişecektir.

Böylece, istatistiksel olarak ilgi gösterilmiş bir miktar q (örneğin, bir ortalama, bir regresyon katsayısı, vb.), m için ortalama standart hatayı tahmin etmek için veri kümeleri q içinde m veri kümeleri (gösterim içi varyansı olarak adlandıracağım bir miktar veya U¯) ve derecesiq arasında değişir m veri kümeleri (gösterim arası varyans olarak adlandıracağım bir miktar veya B).

İmpütasyon kalitesi arasındaki ilişki, B, ve U¯

İmpütasyon içi varyansı kullanılabilir U¯ ve çarpışma arası varyans Bİstatistiksel nicelikte örtülü bir tahminin eksik bilgilerden ne ölçüde etkilendiğini tahmin etmek. Tabii ki, ne kadar çok bilgi kaybolduysa, tahakkümün kalitesi o kadar zayıf olur. Kayıplara verilen bilgilerin tahmini etiketlenir γve aşağıdaki formülle verilir:

γ=r+2df+3r+1

r bu formülde, impütasyon-arası varyansın oranıdır B iç-tükenme-varyansına U¯:

r=(1+1m)BU¯

Böylece, yüksek değerleri B yüksek değerlerle sonuçlanır rbu da yüksek değerlere γ. Değeri yüksekγsırayla, eksik veriler ve daha düşük kalite itibarı nedeniyle kaybedilen daha fazla bilgiyi belirtir.

df formülünde γ aynı zamanda B ve U¯. özellikle,df tarafından tahmin ediliyor

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

Böylece, impütasyon-arası varyansın impütasyon-içi varyansa oranının artırılmasına ek olarak, B ayrıca azalır df. Bu, daha yüksek bir değerle sonuçlanır.γeksikliğe daha fazla bilgi kaybolduğunu ve daha düşük bir kalite israfı olduğunu gösterir.

Özetle, imputasyon-arası varyansın daha yüksek değerleri B impütasyon kalitesini iki şekilde etkiler:

  1. Daha yüksek değerler B impütasyonlar arasındaki varyansın, impütasyonlar içindeki varyansa oranını arttırmak, impütasyon kalitesini düşürmek
  2. Daha yüksek değerler B mevcut serbestlik derecelerini azaltmak, impütasyon kalitesini düşürmek

Dava sayısı ile B

Aksi benzer iki veri kümesi verildiğinde, daha az sayıda vakanın bulunduğu bir veri kümesinin imputasyonlar arası varyans daha büyük olacaktır. B.

Bu, yukarıda açıkladığım gibi, empütasyonlar arası varyansın istatistiksel bir ilgi miktarı hesaplanarak hesaplanması nedeniyle gerçekleşecektir q her birinin içinde m zımni veri kümeleri ve ne dereceye kadar hesaplama q her biri arasında değişir mveri kümeleri. Belirli bir veri kümesinde daha fazla sayıda vaka varsa ancak başka bir değerle aynı miktarda eksik değer varsa, daha küçük bir değer oranı her birm çarpık veri kümeleri, yani toplamda daha düşük bir varyasyon olacak q çarpıtılmış veri kümelerinde.

Böylece, genel olarak, vaka sayısının arttırılması (veya daha kesin olarak, eksik değerlerin oranının düşürülmesi) impütasyon kalitesini arttıracaktır.

Değişken sayısı ve B

Aksi takdirde benzer iki veri kümesi verildiğinde, çok sayıda değişkeni olan bir veri kümesinin, gösterim arası varyans daha küçük olacaktır B, bu ekstra değişkenler eksik değerler hakkında bilgilendirici olduğu sürece.

Bu, genel olarak, belirli bir değişken için eksik değerler, eksik değerlerin makul tahminlerini oluşturmak için diğer değişkenlerden gelen bilgiler kullanılarak "doldurulur" (bu tahminlerin nasıl oluşturulduğuna ilişkin spesifik ayrıntılar MI uygulamasına bağlı olarak değişecektir) kullanıyorsunuz). Ekstra değişkenler biçiminde daha fazla bilgi, daha kararlı zımni değerlerle sonuçlanacak ve istatistiksel olarak ilgi konusu miktarın daha az değişmesine neden olacaktır.q her birinin karşısında m gizli veri kümeleri.

Bu nedenle, genel olarak, bir veri kümesinde mevcut olan değişkenlerin sayısının arttırılması, bu ekstra değişkenler eksik değerler hakkında bilgilendirici olduğu sürece imputasyon kalitesini arttıracaktır.

Referanslar

Rubin, DB (1996). 18 yaşından sonra çoklu çarpma. Amerikan İstatistik Derneği Dergisi , 91, 473-489.

Schafer, JL (1999). Çoklu impütasyon: Bir astar. Tıbbi Araştırmalarda İstatistiksel Yöntemler , 8, 3-15.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.