繁体   English   中英

格雷默事后测试

[英]Post-hoc test for glmer

我正在使用广义线性混合模型(glmer,lme4-package)用R分析我的二项式数据集。 我想使用Tukey的事后测试(glht,multcomp-package)对某个固定效果(“声音”)进行成对比较。

它的大部分工作正常,但是我的一个固定效果变量(“ SoundC”)根本没有方差(“ 1”是96倍,“ 0”是0倍),看来Tukey的测试无法处理。 使用此“ SoundC”的所有成对比较得出的p值均为1.000,而有些显然很重要。

作为验证,我将96个“ 1”中的一个更改为“ 0”,此后,我又得到了正常的p值,并且在我期望的位置有明显的差异,而在手动更改后,差异实际上变小了。

有人有解决方案吗? 如果不是,可以使用修改后的数据集的结果并报告我的手动更改吗?

可重现的示例:

Response <- c(1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1,1,0,
              0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,
              1,1,0,1,1,0,1,1,1,1,0,0,1,1,0,1,1,0,1,1,0,1,1,0,1)    
Data <- data.frame(Sound=rep(paste0('Sound',c('A','B','C')),22),
                   Response,
                   Individual=rep(rep(c('A','B'),2),rep(c(18,15),2)))


# Visual
boxplot(Response ~ Sound,Data)

# Mixed model
library (lme4)
model10 <- glmer(Response~Sound + (1|Individual), Data, family=binomial)

# Post-hoc analysis
library (multcomp)
summary(glht(model10, mcp(Sound="Tukey")))

这是一个交叉验证问题。 您肯定会看到完全分离 ,其中您的响应可以完美地划分为0对1的结果。 这导致(1)参数的无限值(由于计算不完善,它们仅被列为非无限值),以及(2)Wald标准错误的疯狂/无用值和相应的$ p $值(这就是您所需要的)在这里看到)。 这里这里这里都给出讨论和解决方案,但是我将在下面进行更多说明。

暂时让您感到不满意:无论如何,您真的不应该尝试只设置3个级别的随机效果(请参见例如http://glmm.wikidot.com/faq )...

出生校正的逻辑回归:

library(logistf)
L1 <- logistf(Response~Sound*Individual,data=Data,
        contrasts.arg=list(Sound="contr.treatment",
         Individual="contr.sum"))

                                 coef se(coef)            p
(Intercept)              3.218876e+00 1.501111 2.051613e-04 
SoundSoundB             -4.653960e+00 1.670282 1.736123e-05 
SoundSoundC             -1.753527e-15 2.122891 1.000000e+00 
IndividualB             -1.995100e+00 1.680103 1.516838e-01 
SoundSoundB:IndividualB  3.856625e-01 2.379919 8.657348e-01 
SoundSoundC:IndividualB  1.820747e+00 2.716770 4.824847e-01

现在,标准误差和p值是合理的(A与C比较的p值为1,因为实际上没有差异...)

先验条件弱的混合贝叶斯模型:

library(blme)
model20 <- bglmer(Response~Sound + (1|Individual), Data, family=binomial,
                  fixef.prior = normal(cov = diag(9,3)))

##              Estimate Std. Error    z value     Pr(>|z|)
## (Intercept)  1.711485   2.233667  0.7662221 4.435441e-01
## SoundSoundB -5.088002   1.248969 -4.0737620 4.625976e-05
## SoundSoundC  2.453988   1.701674  1.4421024 1.492735e-01

固定效果方差-协方差矩阵的规格diag(9,3)产生

$$ \\ left(\\ begin {array} {ccc} 9&0&0 \\ 0&9&0 \\ 0&0&9 \\ end {array} \\ right)$$

换句话说,3表示矩阵的维数(等于固定效果参数的数量),9表示方差-这对应于标准偏差3或大约$ \\ pm的95%范围6 $,对于logit缩放的响应来说是很大/弱/没有信息。

这些大致一致(模型有很大不同)

library(multcomp)
summary(glht(model20, mcp(Sound="Tukey")))

##                     Estimate Std. Error z value Pr(>|z|)    
## SoundB - SoundA == 0   -5.088      1.249  -4.074 0.000124 ***
## SoundC - SoundA == 0    2.454      1.702   1.442 0.309216    
## SoundC - SoundB == 0    7.542      1.997   3.776 0.000397 ***

就像我上面说的,在这种情况下,我建议使用混合模型...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM