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 )
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 ...!Respostas:
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
lme4
e muitos outros pacotes é que muitos pacotes, incluindolme4
o antecessornlme
, 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
?bootMer
página:fonte
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.
fonte