Nous avons exécuté une régression logistique à effets mixtes en utilisant la syntaxe suivante;
# fit model
fm0 <- glmer(GoalEncoding ~ 1 + Group + (1|Subject) + (1|Item), exp0,
family = binomial(link="logit"))
# model output
summary(fm0)
Le sujet et l'objet sont les effets aléatoires. Nous obtenons un résultat étrange qui est le coefficient et l'écart-type pour le terme sujet sont tous deux nuls;
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
Cela ne devrait pas se produire car il y a évidemment des variations entre les sujets. Lorsque nous exécutons la même analyse en 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.
les résultats sont comme prévu avec un coefficient / zéro non nul pour le terme sujet.
À l'origine, nous pensions que cela pouvait être lié au codage du terme sujet, mais le changer d'une chaîne en un entier ne faisait aucune différence.
De toute évidence, l'analyse ne fonctionne pas correctement, mais nous ne sommes pas en mesure d'identifier la source des difficultés. (NB quelqu'un d'autre sur ce forum a rencontré un problème similaire, mais ce fil reste un lien sans réponse vers la question )
subject
est ou quoi que ce soit d'autre au sujet de ces variables, ce n'est pas si "évident" pour nous "! Aussi le" coefficient non nul " pour le terme sujet "de votre analyse Stata est 7.18e-07! Je suppose que techniquement, c'est" non nul ", mais ce n'est pas trop loin de 0 non plus!!Réponses:
Ceci est discuté assez longuement sur https://bbolker.github.io/mixedmodels-misc/glmmFAQ.html (recherche de "modèles singuliers"); c'est courant, surtout quand il y a un petit nombre de groupes (bien que 30 n'est pas particulièrement petit dans ce contexte).
Une différence entre
lme4
et de nombreux autres packages est que de nombreux packages, y comprislme4
le prédécesseur denlme
, gèrent le fait que les estimations de variance doivent être non négatives en ajustant la variance sur l'échelle logarithmique: cela signifie que les estimations de variance ne peuvent pas être exactement nulles, juste très très petit.lme4
, en revanche, utilise une optimisation contrainte, de sorte qu'il peut retourner des valeurs qui sont exactement nulles (voir http://arxiv.org/abs/1406.5823 p. 24 pour plus de discussion). http://rpubs.com/bbolker/6226 en donne un exemple.En particulier, en examinant de près vos résultats de variance entre sujets de Stata, vous avez une estimation de 7,18e-07 (par rapport à une intersection de -3,4) avec un écart-type Wald de 0,3783434 (essentiellement inutile dans ce cas!) Et un IC à 95% répertorié comme "0"; c'est techniquement "non nul", mais c'est aussi proche de zéro que le programme le rapportera ...
Il est bien connu et théoriquement prouvable (par exemple Stram et Lee Biometrics 1994) que la distribution nulle pour les composantes de la variance est un mélange d'une masse ponctuelle (`` pic '') à zéro et d'une distribution chi carré à partir de zéro. Sans surprise (mais je ne sais pas si c'est prouvé / bien connu), la distribution d'échantillonnage des estimations de la composante de la variance a souvent un pic à zéro même lorsque la vraie valeur n'est pas nulle - voir par exemple http://rpubs.com/ bbolker / 4187 pour un exemple, ou le dernier exemple de la
?bootMer
page:la source
Je ne pense pas qu'il y ait de problème. La leçon tirée de la sortie du modèle est que, bien qu'il y ait une variation «évidente» des performances du sujet, l'ampleur de cette variation du sujet peut être entièrement ou virtuellement entièrement expliquée par le seul terme de variance résiduelle seul. Il n'y a pas suffisamment de variation supplémentaire au niveau du sujet pour justifier l'ajout d'un effet aléatoire supplémentaire au niveau du sujet pour expliquer toute la variation observée.
Pense-y de cette façon. Imaginez que nous simulons des données expérimentales sous ce même paradigme. Nous avons configuré les paramètres de sorte qu'il y ait une variation résiduelle sur une base d'essai par essai, mais aucune variation au niveau du sujet (c.-à-d., Tous les sujets ont la même «vraie moyenne», plus l'erreur). Maintenant, chaque fois que nous simulons des données à partir de cet ensemble de paramètres, nous constaterons bien sûr que les sujets n'ont pas des performances exactement égales. Certains se retrouvent avec des scores bas, certains avec des scores élevés. Mais tout cela n'est dû qu'à la variation résiduelle au niveau de l'essai. Nous «savons» (du fait d'avoir déterminé les paramètres de simulation) qu'il n'y a pas vraiment de variation au niveau du sujet.
la source