尽管数据有些变化,为什么在混合模型中我得到的随机效应的方差为零?


22

我们使用以下语法运行了混合效果逻辑回归:

# fit model
fm0 <- glmer(GoalEncoding ~ 1 + Group + (1|Subject) + (1|Item), exp0,
             family = binomial(link="logit"))
# model output
summary(fm0)

主题和项目是随机效果。我们得到一个奇怪的结果,即该主题词的系数和标准偏差均为零;

Generalized linear mixed model fit by maximum likelihood (Laplace
Approximation) [glmerMod]
Family: binomial  ( logit )
Formula: GoalEncoding ~ 1 + Group + (1 | Subject) + (1 | Item)
Data: exp0

AIC      BIC      logLik deviance df.resid 
449.8    465.3   -220.9    441.8      356 

Scaled residuals: 
Min     1Q Median     3Q    Max 
-2.115 -0.785 -0.376  0.805  2.663 

Random effects:
Groups  Name        Variance Std.Dev.
Subject (Intercept) 0.000    0.000   
Item    (Intercept) 0.801    0.895   
Number of obs: 360, groups:  Subject, 30; Item, 12

Fixed effects:
                Estimate Std. Error z value Pr(>|z|)    
 (Intercept)     -0.0275     0.2843    -0.1     0.92    
 GroupGeMo.EnMo   1.2060     0.2411     5.0  5.7e-07 ***
 ---
 Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

 Correlation of Fixed Effects:
             (Intr)
 GroupGM.EnM -0.002

这不应该发生,因为显然各个主题之间存在差异。当我们在Stata中运行相同的分析时

xtmelogit goal group_num || _all:R.subject || _all:R.item

Note: factor variables specified; option laplace assumed

Refining starting values: 

Iteration 0:   log likelihood = -260.60631  
Iteration 1:   log likelihood = -252.13724  
Iteration 2:   log likelihood = -249.87663  

Performing gradient-based optimization: 

Iteration 0:   log likelihood = -249.87663  
Iteration 1:   log likelihood = -246.38421  
Iteration 2:   log likelihood =  -245.2231  
Iteration 3:   log likelihood = -240.28537  
Iteration 4:   log likelihood = -238.67047  
Iteration 5:   log likelihood = -238.65943  
Iteration 6:   log likelihood = -238.65942  

Mixed-effects logistic regression               Number of obs      =       450
Group variable: _all                            Number of groups   =         1

                                                Obs per group: min =       450
                                                               avg =     450.0
                                                               max =       450

Integration points =   1                        Wald chi2(1)       =     22.62
Log likelihood = -238.65942                     Prob > chi2        =    0.0000

------------------------------------------------------------------------------
        goal |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
   group_num |   1.186594    .249484     4.76   0.000     .6976147    1.675574
       _cons |  -3.419815   .8008212    -4.27   0.000    -4.989396   -1.850234
------------------------------------------------------------------------------

------------------------------------------------------------------------------
  Random-effects Parameters  |   Estimate   Std. Err.     [95% Conf. Interval]
-----------------------------+------------------------------------------------
_all: Identity               |
               sd(R.subject) |   7.18e-07   .3783434             0           .
-----------------------------+------------------------------------------------
_all: Identity               |
                 sd(R.trial) |   2.462568   .6226966      1.500201    4.042286
------------------------------------------------------------------------------
LR test vs. logistic regression:     chi2(2) =   126.75   Prob > chi2 = 0.0000

Note: LR test is conservative and provided only for reference.
Note: log-likelihood calculations are based on the Laplacian approximation.

结果是预期的,主题词的系数为非零/ se。

最初,我们认为这可能与Subject术语的编码有关,但是将其从字符串更改为整数并没有任何区别。

显然,分析无法正常进行,但是我们无法确定困难的根源。(请注意,此论坛上的其他人也遇到过类似的问题,但是该主题仍未得到解答的链接


2
您说这不应该发生,因为“显然各个主题之间存在差异”,但是由于我们不知道subject这些变量是什么或其他任何东西,因此对我们来说并不是那么“明显””!还有“非零系数”从您的Stata分析中得出的主题词是7.18e-07!从技术上讲,我猜它是“非零”,但也离0也不太远...!
smillig 2014年

非常感谢您的观察。受试者是研究的参与者,性能必然会有所不同。平均分数正确率为39%,标准差为11%。我希望这在报告的统计数据中显示为大于0.000,但可能是错误的。是的,当然7.18e-07等于0.000,而0.000不一定为零。
Nick Riches 2014年

1
每个对象测试/采样了多少次?如果不了解您的研究的实质性方面,如果Stata告诉您主题内的差异是0.000000718(标准误为0.378),R告诉您0.000,则不是在说实际上没有任何差异在学科水平上?另请注意,Stata不会为您提供主题变化的置信区间。
smillig 2014年

再次感谢您的评论。受试者接受了11次测试。我想这意味着一旦考虑了小组和项目的影响,参与者之间的差异就很小。看起来有点“可疑”,但我猜这两个不同的分析是否一致?
Nick Riches 2014年

Answers:


28

https://bbolker.github.io/mixedmodels-misc/glmmFAQ.html(搜索“单一模型”)中对此进行了详细讨论。这是很常见的,尤其是在少数群体的情况下(尽管在这种情况下30个群体并不是特别少)。

lme4与许多其他软件包之间的区别是,许多软件包(包括lme4的前任软件包)nlme通过将对数刻度拟合为方差来处理方差估计必须为非负的事实:这意味着方差估计不能完全为零,很小。 lme4相反,使用约束优化,因此它可以返回恰好为零的值(有关更多讨论,请参见http://arxiv.org/abs/1406.5823第24页)。 http://rpubs.com/bbolker/6226给出了一个示例。

特别是,仔细查看Stata的主体间方差结果,您得出的估计值为7.18e-07(相对于-3.4的截距),其Wald标准偏差为.3783434(在这种情况下,基本上没有用!),并且95%CI列为“ 0”;从技术上讲,这是“非零”,但与程序报告的一样,它接近零。

众所周知并且在理论上可以证明(例如Stram和Lee Biometrics 1994),方差分量的零分布是零质量的点质量(“尖峰”)和远离零的卡方分布的混合。毫不奇怪(但我不知道它是否经证明/众所周知),即使真实值为零,方差分量估计的抽样分布也经常会出现零尖峰-参见例如http://rpubs.com/例如bbolker / 4187?bootMer页面中的最后一个示例:

library(lme4)
library(boot)
## Check stored values from a longer (1000-replicate) run:
load(system.file("testdata","boo01L.RData",package="lme4"))
plot(boo01L,index=3) 

在此处输入图片说明


2
+1。另一个好答案是在姊妹线程中:stats.stackexchange.com/a/34979(我将这个链接留给以后的读者使用)。
变形虫说莫妮卡(Reonica Monica)

14

我认为没有问题。从模型输出中得到的教训是,尽管主体性能存在“明显”变化,但是仅通过残差方差项就可以完全或虚拟地解释这种主体变化的程度。没有足够的附加主题级别变异,无法保证添加附加的主题级别随机效应来解释所有观察到的变异。

这样想吧。想象一下,我们正在相同的范式下模拟实验数据。我们设置参数,以便在逐次试验的基础上有剩余的变异,但是受试者水平变异为0(即,所有受试者的“真实均值”均相同,外加误差)。现在,每次我们从这组参数中模拟数据时,我们当然会发现主体的表现并不完全相同。有些以低分告终,有些以高分告终。但这仅仅是由于剩余的试用级别差异。我们“知道”(由于已经确定了模拟参数)实际上没有任何主题级别的变化。

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.