如何对带有随机斜率的混合效应回归模型进行MCMC假设检验?


12

库languageR提供了一种方法(pvals.fnc),可以使用lmer在混合效果回归模型拟合中对固定效果进行MCMC重要性测试。但是,当lmer模型包含随机斜率时,pvals.fnc会给出错误。

有没有办法对此类模型进行MCMC假设检验?
如果是这样,怎么办?(要被接受,答案应该在R中有一个可行的示例)。如果没有,是否存在无法解决的概念/计算原因?

这个问题可能与有关,但我对其中的内容了解得不够清楚。

编辑1:概念证明表明pvals.fnc()仍然对lme4模型执行“某些操作”,但对于随机斜率模型则不执行任何操作。

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)

它说:pvals.fnc(primingHeid.lmer.rs)中的错误:对于具有随机相关参数的模型,lme4_0.999375中尚未实现MCMC采样

附加问题:对于随机拦截模型,pvals.fnc是否按预期执行?输出是否值得信任?


3
(1)我很惊讶pvals.fnc仍然可以正常工作;我以为mcmcsamp(pvals.fnc所依赖)在lme4中已经失效了一段时间了。您正在使用哪个版本的lme4?(2)从理论上讲,没有随机的斜率会破坏任何结果的概念上的原因,(3)从统计学上讲,将显着性测试与MCMC相结合有点不连贯,尽管我了解这样做的冲动(获得信任间隔更可支持)(4)此问与答之间的唯一关系是“ MCMC”(实际上是无)
Ben Bolker 2010年

我使用的lme4的版本取决于我所在的计算机。该控制台具有lme4_0.999375-32,但是我很少使用该控制台进行分析。几个月前,我注意到pvals.fnc()在分析后将lme4结果撕开了-当时我为此进行了工作,但似乎不再是问题。在不久的将来,我将不得不再问您第三个问题。
russellpierce

Answers:


4

看来您的错误消息与变化的斜率无关,而与相关的随机效应有关。您也可以适合不相关的对象;也就是说,具有独立随机效应的混合效应模型:

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

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


8

这是(至少是大多数)解决方案MCMCglmm

首先将等效的仅拦截方差模型拟合为 MCMCglmm

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

比较MCMCglmm和之间的适合度lmer,首先检索我的hacked版本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)

现在尝试使用随机斜率:

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

这确实提供了某种“ MCMC p值” ...您必须自己进行探索,看看整个过程是否有意义...


非常感谢本。看起来它将为我指明正确的方向。我只需要花一些时间阅读一下MCMCglmm的帮助和相关文章,以了解是否可以全神贯注于正在发生的事情。
russellpierce

1
在这种情况下,随机斜率模型是否在随机斜率和随机截距之间具有相关性,或者在这种框架下,这种想法是荒谬的吗?
russellpierce

我在这里调整了您的代码,以使其更易于阅读,@ Ben; 如果您不喜欢它,请随我的歉意将其退回。
恢复莫妮卡
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.