Warum erhalte ich in meinem gemischten Modell trotz einiger Abweichungen in den Daten keine Varianz für einen Zufallseffekt?


22

Wir haben eine logistische Regression mit gemischten Effekten unter Verwendung der folgenden Syntax durchgeführt.

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

Betreff und Gegenstand sind die zufälligen Effekte. Wir erhalten ein ungerades Ergebnis, bei dem der Koeffizient und die Standardabweichung für den Fachbegriff beide Null sind.

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

Dies sollte nicht passieren, da es offensichtlich Unterschiede zwischen den Themen gibt. Wenn wir die gleiche Analyse in stata ausführen

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.

Die Ergebnisse sind erwartungsgemäß mit einem Koeffizienten ungleich Null / Se für den Fachbegriff.

Ursprünglich dachten wir, dies könnte etwas mit der Codierung des Subject-Terms zu tun haben, aber die Änderung dieser von einer Zeichenfolge in eine Ganzzahl machte keinen Unterschied.

Offensichtlich funktioniert die Analyse nicht richtig, aber wir sind nicht in der Lage, die Ursache der Schwierigkeiten zu bestimmen. (Hinweis: Bei einem anderen Benutzer in diesem Forum ist ein ähnliches Problem aufgetreten. Dieser Thread bleibt jedoch ein unbeantworteter Link zur Frage. )


2
Sie sagen, dies sollte nicht passieren, weil "offensichtlich Unterschiede zwischen den Themen bestehen", aber da wir nicht wissen, was subjectdiese Variablen sind oder sonst etwas, ist dies für uns nicht so "offensichtlich"! Auch der "Nicht-Null-Koeffizient" für den Fachbegriff "aus Ihrer Stata-Analyse ist 7.18e-07! Ich denke, technisch ist es" nicht null ", aber es ist auch nicht weit von 0 ...!
smillig

Vielen Dank für Ihre Beobachtungen. Die Versuchspersonen nehmen an einer Studie teil und es ist mit Leistungsunterschieden zu rechnen. Die Durchschnittswerte waren zu 39% korrekt, mit einer Standardabweichung von 11%. Ich würde erwarten, dass dies in den gemeldeten Statistiken als größer als 0,000 erscheint, aber möglicherweise falsch ist. Ja, natürlich entspricht 7.18e-07 0,000 und 0,000 ist nicht unbedingt null.
Nick Riches

1
Wie oft wurde jeder Proband getestet / beprobt? Ohne die inhaltlichen Aspekte Ihrer Forschung zu kennen, ist, wenn Stata Ihnen sagt, dass die Variation innerhalb der Subjekte 0,000000718 (mit einem Standardfehler von 0,378) und R Ihnen sagt, dass es 0,000 ist, nicht die Geschichte hier, dass es wirklich keine Variation gibt auf der fachebene? Beachten Sie auch, dass Stata Ihnen kein Konfidenzintervall für die Motivvariation gibt.
Smillig

Nochmals vielen Dank für Kommentare. Die Probanden wurden elf Mal getestet. Ich denke, das bedeutet, dass nach Berücksichtigung von Gruppen- und Objekteffekten nur sehr geringe Unterschiede zwischen den Teilnehmern bestehen. Es sieht ein bisschen "verdächtig" aus, aber ich vermute, es gibt Konsistenz zwischen den beiden verschiedenen Analysen?
Nick Riches

Antworten:


27

Dies wird ausführlich unter https://bbolker.github.io/mixedmodels-misc/glmmFAQ.html behandelt (Suche nach "singular models"). Dies ist häufig der Fall, insbesondere wenn nur wenige Gruppen vorhanden sind (obwohl 30 in diesem Zusammenhang nicht besonders klein sind).

Ein Unterschied zwischen lme4und vielen anderen Paketen besteht darin, dass viele Pakete, einschließlich lme4des Vorgängers nlme, die Tatsache berücksichtigen, dass Varianzschätzungen nicht negativ sein müssen, indem die Varianz auf der logarithmischen Skala angepasst wird. Das bedeutet, dass Varianzschätzungen nicht genau null sein können, sondern nur sehr sehr klein. lme4Im Gegensatz dazu wird die eingeschränkte Optimierung verwendet, sodass Werte zurückgegeben werden können, die genau null sind (weitere Informationen finden Sie unter http://arxiv.org/abs/1406.5823, S. 24). http://rpubs.com/bbolker/6226 gibt ein Beispiel.

Insbesondere bei genauer Betrachtung der Ergebnisse Ihrer Varianz zwischen den Subjekten aus Stata erhalten Sie eine Schätzung von 7.18e-07 (relativ zu einem Achsenabschnitt von -3.4) mit einer Wald-Standardabweichung von .3783434 (in diesem Fall im Wesentlichen nutzlos!) Und ein 95% CI, aufgeführt als "0"; Das ist technisch gesehen "ungleich Null", aber es ist so nahe an Null, wie es das Programm meldet ...

Es ist allgemein bekannt und theoretisch nachweisbar (z. B. Stram und Lee Biometrics 1994), dass die Nullverteilung für Varianzkomponenten eine Mischung aus einer Punktmasse ('Spike') bei Null und einer Chi-Quadrat-Verteilung von Null weg ist. Es überrascht nicht, dass die Stichprobenverteilung der Varianzkomponentenschätzungen häufig einen Spitzenwert von Null aufweist, auch wenn der wahre Wert nicht Null ist (siehe z. B. http://rpubs.com/). bbolker / 4187 für ein Beispiel oder das letzte Beispiel auf der ?bootMerSeite:

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) 

Bildbeschreibung hier eingeben


2
+1. Eine weitere gute Antwort finden Sie im Schwester-Thread: stats.stackexchange.com/a/34979 (ich überlasse diesen Link zukünftigen Lesern).
Amöbe sagt Reinstate Monica

13

Ich glaube nicht, dass es ein Problem gibt. Die Lehre aus der Modellausgabe ist, dass, obwohl es "offensichtlich" Unterschiede in der Subjektleistung gibt, das Ausmaß dieser Subjektvariation allein durch den Restvarianzterm vollständig oder praktisch vollständig erklärt werden kann. Es gibt nicht genug zusätzliche Variationen auf Subjektebene, um einen zusätzlichen zufälligen Effekt auf Subjektebene zu rechtfertigen, um alle beobachteten Variationen zu erklären.

Denk darüber so. Stellen Sie sich vor, wir simulieren experimentelle Daten unter demselben Paradigma. Wir stellen die Parameter so ein, dass es versuchsweise eine verbleibende Variation gibt, jedoch keine Variation auf Subjektebene (dh alle Subjekte haben den gleichen "wahren Mittelwert" plus Fehler). Jedes Mal, wenn wir Daten aus diesem Parametersatz simulieren, werden wir natürlich feststellen, dass die Probanden nicht genau die gleiche Leistung haben. Einige erzielen niedrige Werte, andere hohe. Dies alles liegt jedoch nur an der verbleibenden Variation des Testniveaus. Wir "wissen" (aufgrund der Bestimmung der Simulationsparameter), dass es keine wirkliche Variation auf Subjektebene gibt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.