Rastgele eğimli karma efekt regresyon modelinde bir MCMC hipotez testi nasıl yapılabilir?


12

Kütüphane languageR, lmer kullanarak karışık efekt regresyon modeline uyan sabit efektlerin MCMC anlamlılık testini yapmak için bir yöntem (pvals.fnc) sağlar. Ancak, pvals.fnc, lmer modeli rasgele eğimler içerdiğinde hata verir.

Bu tür modellerin MCMC hipotez testi yapmanın bir yolu var mı?
Öyleyse nasıl? (Bir cevabın kabul edilmesi için R'de işe yaramış bir örnek olmalıdır.) Değilse, bir yolun olmasının kavramsal / hesaplama nedeni var mı?

Bu soru ile ilgili olabilecek bu bir ama emin olmak için orada yeterince içerik anlamadı.

Düzenleme 1 : pvals.fnc () 'nin hala lme4 modelleri ile' bir şey 'yaptığını, ancak rastgele eğimli modellerle hiçbir şey yapmadığını gösteren bir kavram kanıtı.

library(lme4)
library(languageR)
#the example from pvals.fnc
data(primingHeid) 
# remove extreme outliers
primingHeid = primingHeid[primingHeid$RT < 7.1,]
# fit mixed-effects model
primingHeid.lmer = lmer(RT ~ RTtoPrime * ResponseToPrime + Condition + (1|Subject) + (1|Word), data = primingHeid)
mcmc = pvals.fnc(primingHeid.lmer, nsim=10000, withMCMC=TRUE)
#Subjects are in both conditions...
table(primingHeid$Subject,primingHeid$Condition)
#So I can fit a model that has a random slope of condition by participant
primingHeid.lmer.rs = lmer(RT ~ RTtoPrime * ResponseToPrime + Condition + (1+Condition|Subject) + (1|Word), data = primingHeid)
#However pvals.fnc fails here...
mcmc.rs = pvals.fnc(primingHeid.lmer.rs)

Yazıyor: pvals.fnc hatası (primingHeid.lmer.rs): MCMC örneklemesi, rastgele korelasyon parametreleri olan modeller için lme4_0.999375'te henüz uygulanmadı

Ek soru: pvals.fnc rasgele kesme modeli için beklendiği gibi çalışıyor mu? Çıktılara güvenilmeli mi?


3
(1) pvals.fnc'nin hala çalıştığına şaşırdım; Ben mcmcsamp (hangi pvals.fnc dayanır) lme4 içinde bir süre için işlevsel olmadığını düşündüm. Hangi lme4 sürümünü kullanıyorsunuz? (2) Bir anlam testi almak için rastgele eğimlere sahip olmanın birinin yaptıklarını kırmasının kavramsal bir nedeni yoktur (3) Önem testi MCMC ile birleştirmek istatistiksel olarak biraz tutarsızdır, ancak bunu yapma isteğini anlıyorum (güven elde etmek) (4) bu Q ve diğeri arasındaki tek ilişki '
MCMC'dir

Kullandığım lme4 sürümü oturduğum bilgisayara bağlı. Bu konsol lme4_0.999375-32'ye sahip, ancak bunu nadiren analiz için kullanıyorum. Birkaç ay önce, pvals.fnc () 'nin analizden sonra lme4 sonuçlarını parçaladığını fark ettim. Yakın gelecekte 3. noktanız hakkında başka bir soru sormam gerekecek.
russellpierce

Yanıtlar:


4

Hata mesajınız değişen yamaçlarla ilgili değil, ilişkili rastgele efektlerle ilgilidir. İlişkisiz olana da sığabilirsiniz; yani, bağımsız rastgele efektlere sahip karışık efektler modeli:

Linear mixed model fit by REML
Formula: Reaction ~ Days + (1 | Subject) + (0 + Days | Subject)
Data: sleepstudy

dan http://www.stat.wisc.edu/~bates/IMPS2008/lme4D.pdf


8

İşte (en azından çoğuyla) bir çözüm MCMCglmm.

Önce eşdeğer kesişim-varyans-sadece modelini aşağıdakilerle sığdır MCMCglmm:

library(MCMCglmm)
primingHeid.MCMCglmm = MCMCglmm(fixed=RT ~ RTtoPrime * ResponseToPrime + Condition, 
                                random=~Subject+Word, data = primingHeid)

Arasındaki uyuyor karşılaştırılması MCMCglmmve lmerilk benim saldırıya uğramış sürümü almasını, arm::coefplot:

source(url("http://www.math.mcmaster.ca/bolker/R/misc/coefplot_new.R"))
  ## combine estimates of fixed effects and variance components
pp  <- as.mcmc(with(primingHeid.MCMCglmm, cbind(Sol, VCV)))
  ## extract coefficient table
cc1 <- coeftab(primingHeid.MCMCglmm,ptype=c("fixef", "vcov"))
  ## strip fixed/vcov indicators to make names match with lmer output
rownames(cc1) <- gsub("(Sol|VCV).", "", rownames(cc1))
  ## fixed effects -- v. similar
coefplot(list(cc1[1:5,], primingHeid.lmer))
  ## variance components -- quite different.  Worth further exploration?
coefplot(list(cc1[6:8,], coeftab(primingHeid.lmer, ptype="vcov")),
         xlim=c(0,0.16), cex.pts=1.5)

Şimdi rastgele eğimlerle deneyin:

primingHeid.rs.MCMCglmm = MCMCglmm(fixed=RT ~ RTtoPrime * ResponseToPrime + Condition,
                                   random=~Subject+Subject:Condition+Word, 
                                   data = primingHeid)        
summary(primingHeid.rs.MCMCglmm)

Bu bir çeşit "MCMC p-değerleri" verir ... kendiniz için araştırmanız ve her şeyin mantıklı olup olmadığını görmeniz gerekir ...


Çok teşekkürler Ben. Bu beni doğru yöne yönlendirecek gibi görünüyor. MCMCglmm'nin yardımları ve ilgili makaleleri okumak için biraz zaman harcamam gerekiyor, başımı neler olup bittiğine görebiliyorum.
russellpierce

1
Bu durumda rastgele eğimler modelinin rastgele eğim ve rastgele kesişme arasında bir korelasyonu var mıdır veya bu çerçevede böyle bir fikir saçmadır?
russellpierce

Okumayı kolaylaştırmak için kodunuzu burada düzenledim, @Ben; Eğer beğenmediyseniz, özür dilerim.
gung - Monica'yı eski durumuna döndürün
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.