Tam başarılara sahip kategorik değişkenli binom glmm


11

Ben binomial cevap değişkeni ve kategorik bir yordayıcı ile bir glmm çalıştırıyorum. Rasgele efekt, veri toplama için kullanılan iç içe tasarım tarafından verilir. Veriler şöyle görünür:

m.gen1$treatment
 [1] sucrose      control      protein      control      no_injection .....
Levels: no_injection control sucrose protein
m.gen1$emergence 
 [1]  1  0  0  1  0  1  1  1  1  1  1  0  0....
> m.gen1$nest
 [1] 1  1  1  2  2  3  3  3  3  4  4  4  .....
Levels: 1 2 3 4 5 6 8 10 11 13 15 16 17 18 20 22 24

Çalıştığım ilk model şöyle görünüyor

m.glmm.em.<-glmer(emergence~treatment + (1|nest),family=binomial,data=m.gen1)

Bunun gibi görünen iki uyarı alıyorum:

Warning messages:
1: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  :
  Model failed to converge with max|grad| = 0.0240654 (tol = 0.001, component 4)
2: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  :
  Model is nearly unidentifiable: large eigenvalue ratio
 - Rescale variables?

Model özeti, tedavilerden birinin burada görebileceğiniz alışılmadık derecede büyük bir standart hataya sahip olduğunu gösterir:

Fixed effects:
                 Estimate Std. Error z value Pr(>|z|)  
(Intercept)         2.565      1.038   2.472   0.0134 *
treatmentcontrol   -1.718      1.246  -1.378   0.1681  
treatmentsucrose   16.863   2048.000   0.008   0.9934  
treatmentprotein   -1.718      1.246  -1.378   0.1681 

Glmer kontrolünden farklı optimize edicileri ve diğer paketlerden işlevleri denedim ve benzer bir çıktı alıyorum. Rastgele efekti görmezden gelerek modeli çalıştırdım ve sorun devam ediyor. Verileri araştırırken yüksek bir Std ile tedavi olduğunu fark ettim. hata yalnızca yanıt değişkeninde başarılı olur. Sadece soruna neden olup olmadığını kontrol etmek için o tedavi için bir "başarısızlık" ile sahte bir veri noktası ekledim ve model sorunsuz çalışır ve makul standart hata verir. Bunu burada görebilirsiniz:

Fixed effects:
                 Estimate Std. Error z value Pr(>|z|)  
(Intercept)        3.4090     1.6712   2.040   0.0414 *
treatmentcontrol  -1.8405     1.4290  -1.288   0.1978  
treatmentsucrose  -0.2582     1.6263  -0.159   0.8738  
treatmentprotein  -2.6530     1.5904  -1.668   0.0953 .

Sezgimin iyi bir tahminin önlenmesi için bu tedavinin başarısızlığı konusunda doğru olup olmadığını ve bu soruna nasıl çözüm bulabileceğimi merak ediyordum.

Şimdiden teşekkürler!

Yanıtlar:


15

Sezginiz tam olarak doğru. Bu fenomene tam ayrılma denir . Çok fazla bulabilirsiniz (şimdi adını biliyorsunuz) Etrafta dolaşmak ... Burada genel bir bağlamda ve burada GLMM'ler bağlamında oldukça ayrıntılı bir şekilde tartışılmaktadır . Bu soruna standart çözüm, parametreleri sıfıra geri iten küçük bir terim eklemektir - sık sık bağlamlarda buna cezalandırılmış veya önyargı düzeltmeli yöntem denir . Standart algoritma Firth'a bağlıdır (1993, "Maksimum olabilirlik tahminlerinin sapmasının azaltılması" Biometrika 80, 27-38) ve logistf paketinde uygulanırCRAN üzerinde. Bayes bağlamlarında bu, sabit etki parametrelerinden önce zayıflık eklemek olarak çerçevelenir.

Bildiğim kadarıyla Firth'ın algoritması GLMM'lere genişletilmedi, ancak ince bir Bayes katmanı paketin üzerine koyan blme paketini kullanarak Bayes hilesini kullanabilirsiniz lme4. Yukarıda bağlantılı GLMM tartışmasından bir örnek:

cmod_blme_L2 <- bglmer(predation~ttt+(1|block),data=newdat,
                   family=binomial,
                   fixef.prior = normal(cov = diag(9,4)))

Bu örnekteki ilk iki satır, standart glmermodelde kullanacağımızla tamamen aynıdır ; sonuncusu, sabit etkiler için öncekinin, diyagonal bir varyans-kovaryans matrisi ile çok değişkenli bir normal dağılım olduğunu belirtir. Matris 4x4'tür (çünkü bu örnekte 4 sabit etkili parametreye sahibiz) ve her parametrenin önceki varyansı 9'dur (standart zayıflık 3'e karşılık gelir, bu oldukça zayıftır - yani +/- 2SD ( -6,6), logit ölçeğinde çok geniş bir aralıktır).

Örneğinizdeki parametrelerin çok büyük standart hataları, Hauck-Donner etkisi adı verilen tam ayırma ile yakından ilişkili (bir lojistik modelde aşırı parametre değerleri elde ettiğimizde ortaya çıkan) bir fenomen örneğidir .

Potansiyel olarak faydalı iki referans daha (Onlara henüz kendim girmedim):

  • Gelman A, Jakulin A, Pittau MG ve Su TS (2008) Lojistik ve diğer regresyon modelleri için zayıf bilgilendirici bir varsayılan dağıtım. Yıllık Uygulamalı İstatistik , 2, 1360-383.
  • José Cortiñas Abrahantes ve Marc Aerts (2012) Kümelenmiş ikili veriler için ayırma çözümü İstatistiksel Modelleme 12 (1): 3–27 doi: 10.1177 / 1471082X1001200102

"Bglmer 'tam ayırma" "için daha yeni bir Google araştırması araması şunları bulur:

  • Quiñones, AE ve WT Wcislo. “Etkili Eusocial Ter Arı Megalopta genalisinde Şifalı Genişletilmiş Damızlık Bakımı .” Böcekler Sociaux 62.3 (2015): 307–313.

vay çok teşekkürler !! Bu mükemmel bir mantıklı ve model şimdi bglmer ile sorunsuz çalışıyor. Sadece bir sorum daha var, rastgele ve sabit etkileri değerlendirmek için lme4'teki yöntemleri, başka bir deyişle farklı modelleri karşılaştırmak için kullanabilir miyim?

2
Bunu söyleyebilirim, ancak fikrim için resmi ve / veya hakemli bir destek olup olmadığını bilmiyorum ...
Ben Bolker

Teşekkürler! Bu da benim sorunum. Hızlı bir takip: 4 seviyeli bir faktöre sahip olan örneğinizin aksine, her faktörün 2 seviyeye sahip olduğu bir 2 x 2 tasarımım var (toplam hala 4 seviyedir). Modelim için de diag (9,4) kullanabilir miyim ? Ben matrisler konusunda bilgili değilim, bu yüzden iki kez kontrol etmek istedim. İlgili olarak, bu çözümü makalemde haklı çıkarmak için, Firth (1993) 'den alıntı yapmalı mıyım yoksa bglmer () kullanarak çözümünüzü uygulayan daha doğrudan alakalı bir kağıt var mı?
Sol

2
güncellenmiş cevaba bakınız.
Ben Bolker

2
Bence - toplamda sadece kaç tane sabit etki parametresi olduğu önemli olmalı.
Ben Bolker
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.