Por que obtenho variação zero de um efeito aleatório no meu modelo misto, apesar de algumas variações nos dados?

22

Executamos uma regressão logística de efeitos mistos usando a seguinte sintaxe;

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

Assunto e Item são os efeitos aleatórios. Estamos obtendo um resultado ímpar, que é o coeficiente e o desvio padrão para o termo em questão são zero;

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

Isso não deveria estar acontecendo porque obviamente há variação entre os assuntos. Quando executamos a mesma análise em 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.

os resultados são os esperados com um coeficiente diferente de zero / se para o termo Assunto.

Originalmente, pensávamos que isso poderia ter algo a ver com a codificação do termo Assunto, mas alterar isso de uma sequência para um número inteiro não fez nenhuma diferença.

Obviamente, a análise não está funcionando corretamente, mas não podemos identificar a fonte das dificuldades. (NB alguém neste fórum tem vindo a registar um problema semelhante, mas esta discussão permanece sem resposta ligação à pergunta )

Nick Riches
fonte
2
Você diz que isso não deveria estar acontecendo porque "obviamente há variação entre os assuntos", mas como não sabemos o que subjecté ou algo mais sobre essas variáveis, não é tão "óbvio" para nós "! Também o" coeficiente diferente de zero para o termo sujeito" de sua análise Stata é 7.18e-07 Eu acho que tecnicamente, é! 'non-zero', mas não é muito longe do 0 ou ...!
smillig
Muito obrigado pelas observações. Os sujeitos são participantes de um estudo e é provável que haja variação no desempenho. Os escores médios foram 39% corretos, com desvio padrão de 11%. Eu esperava que isso parecesse maior que 0,000 nas estatísticas relatadas, mas pode estar errado. Sim, é claro que 7.18e-07 é equivalente a 0.000 e 0.000 não é necessariamente zero.
Nick Riches
1
Quantas vezes cada sujeito foi testado / amostrado? Sem conhecer os aspectos substantivos de sua pesquisa, se Stata diz que a variação nos assuntos é 0,000000718 (com um erro padrão de 0,378) e R diz que é 0,000, não é a história aqui que realmente não há variação no nível do assunto? Observe também que o Stata não fornece um intervalo de confiança para a variação do assunto.
smillig 11/09/14
Obrigado novamente por comentários. Os indivíduos foram testados em 11 ocasiões. Acho que isso significa que, uma vez que os efeitos de grupo e item são contabilizados, há muito pouca variação entre os participantes. Parece um pouco "suspeito", mas acho que há consistência entre as duas análises diferentes?
Nick Riches
Relacionado: stats.stackexchange.com/questions/34969 .
Ameba diz Reinstate Monica

Respostas:

28

Isso será discutido em https://bbolker.github.io/mixedmodels-misc/glmmFAQ.html (procure por "modelos singulares"); é comum, especialmente quando há um pequeno número de grupos (embora 30 não seja particularmente pequeno nesse contexto).

Uma diferença entre lme4e muitos outros pacotes é que muitos pacotes, incluindo lme4o antecessor nlme, lidam com o fato de que as estimativas de variação não devem ser negativas ajustando a variação na escala de log: isso significa que as estimativas de variação não podem ser exatamente zero, apenas muito muito pequeno. lme4, por outro lado, usa otimização restrita, para que possa retornar valores exatamente zero (consulte http://arxiv.org/abs/1406.5823 p. 24 para obter mais discussões). http://rpubs.com/bbolker/6226 dá um exemplo.

Em particular, observando atentamente seus resultados de variação entre os sujeitos da Stata, você tem uma estimativa de 7,18e-07 (relativa a uma interceptação de -3,4) com um desvio padrão de Wald de 0,3373434 (essencialmente inútil neste caso!) E um IC de 95% listado como "0"; isso é tecnicamente "diferente de zero", mas é tão próximo de zero quanto o programa relatará ...

É bem conhecido e teoricamente comprovável (por exemplo, Stram e Lee Biometrics 1994) que a distribuição nula para componentes de variância é uma mistura de uma massa pontual ('pico') em zero e uma distribuição qui-quadrado longe de zero. Sem surpresa (mas não sei se é comprovado / conhecido), a distribuição amostral das estimativas do componente de variância geralmente tem um pico em zero, mesmo quando o valor verdadeiro não é zero - veja, por exemplo, http://rpubs.com/ bbolker / 4187 para um exemplo ou o último exemplo na ?bootMerpágina:

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) 

insira a descrição da imagem aqui

Ben Bolker
fonte
2
+1. Outra boa resposta está no tópico associado: stats.stackexchange.com/a/34979 (estou deixando este link para futuros leitores).
Ameba diz Reinstate Monica
14

Eu não acho que há um problema. A lição da saída do modelo é que, embora exista "obviamente" variação no desempenho do assunto, a extensão dessa variação do assunto pode ser total ou virtualmente totalmente explicada apenas pelo termo de variação residual. Não há variação adicional no nível de assunto suficiente para garantir a adição de um efeito aleatório adicional no nível de assunto para explicar toda a variação observada.

Pense desta maneira. Imagine que estamos simulando dados experimentais sob esse mesmo paradigma. Nós configuramos os parâmetros para que haja variação residual, caso a caso, mas 0 variação no nível do sujeito (ou seja, todos os indivíduos têm a mesma "média verdadeira", mais erro). Agora, toda vez que simulamos dados desse conjunto de parâmetros, é claro que descobriremos que os sujeitos não têm desempenho exatamente igual. Alguns acabam com pontuações baixas, outros com pontuações altas. Mas tudo isso é apenas por causa da variação residual no nível de avaliação. Nós "sabemos" (em virtude de termos determinado os parâmetros de simulação) que não há realmente nenhuma variação no nível do assunto.

Jake Westfall
fonte