Perché ottengo la varianza zero di un effetto casuale nel mio modello misto, nonostante alcune variazioni nei dati?


22

Abbiamo eseguito una regressione logistica a effetti misti utilizzando la sintassi seguente;

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

Oggetto e oggetto sono gli effetti casuali. Stiamo ottenendo un risultato dispari che è il coefficiente e la deviazione standard per il termine soggetto sono entrambi 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

Questo non dovrebbe accadere perché ovviamente c'è una variazione tra i soggetti. Quando eseguiamo la stessa analisi in 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.

i risultati sono quelli previsti con un coefficiente / se diverso da zero per il termine Soggetto.

Inizialmente pensavamo che ciò potesse avere a che fare con la codifica del termine Soggetto, ma cambiarlo da una stringa a un intero non ha fatto alcuna differenza.

Ovviamente l'analisi non funziona correttamente, ma non siamo in grado di individuare l'origine delle difficoltà. (NB qualcun altro su questo forum ha riscontrato un problema simile, ma questa discussione rimane senza risposta link alla domanda )


2
Dici che questo non dovrebbe accadere perché "ovviamente c'è una variazione tra i soggetti" ma dato che non sappiamo cosa ci subjectsia o qualcos'altro su queste variabili, non è così "ovvio" per noi "! Anche il" coefficiente diverso da zero per il termine soggetto "dalla tua analisi Stata è 7.18e-07! Immagino tecnicamente che sia" diverso da zero ", ma non è neanche troppo lontano da 0 ...!
smillig

Mille grazie per le osservazioni. I soggetti sono partecipanti a uno studio e ci sarà sicuramente una variazione nelle prestazioni. I punteggi medi erano corretti del 39%, con una deviazione standard dell'11%. Mi aspetto che questo appaia maggiore di 0.000 nelle statistiche riportate, ma potrebbe essere sbagliato. Sì, ovviamente 7.18e-07 equivale a 0.000 e 0.000 non è necessariamente zero.
Nick Riches,

1
Quante volte ogni soggetto è stato testato / campionato? Senza conoscere gli aspetti sostanziali della tua ricerca, se Stata ti dice che la variazione all'interno dei soggetti è 0,000000718 (con un errore standard di 0,378) e R ti dice che è 0,000, non è la storia qui che non c'è davvero alcuna variazione a livello di soggetto? Si noti inoltre che Stata non fornisce un intervallo di confidenza per la variazione del soggetto.
smillig,

Grazie ancora per i commenti. I soggetti sono stati testati in 11 occasioni. Immagino che ciò significhi che una volta che gli effetti di gruppo e oggetto sono stati presi in considerazione, ci sono poche variazioni tra i partecipanti. Sembra un po '"sospetto", ma immagino che ci sia coerenza tra le due diverse analisi?
Nick Riches,

Risposte:


28

Questo è discusso a lungo su https://bbolker.github.io/mixedmodels-misc/glmmFAQ.html (ricerca di "modelli singolari"); è comune, specialmente quando c'è un piccolo numero di gruppi (anche se 30 non è particolarmente piccolo in questo contesto).

Una differenza tra lme4e molti altri pacchetti è che molti pacchetti, incluso lme4il predecessore nlme, gestiscono il fatto che le stime di varianza devono essere non negative adattando la varianza sulla scala del registro: ciò significa che le stime di varianza non possono essere esattamente zero, solo molto piccolo. lme4al contrario, utilizza l'ottimizzazione vincolata, quindi può restituire valori esattamente zero (vedere http://arxiv.org/abs/1406.5823 p. 24 per ulteriori discussioni). http://rpubs.com/bbolker/6226 fornisce un esempio.

In particolare, osservando attentamente i risultati della varianza tra soggetti di Stata, si ha una stima di 7.18e-07 (relativa a un'intercettazione di -3.4) con una deviazione standard di Wald di .3783434 (essenzialmente inutile in questo caso!) E un IC al 95% indicato come "0"; questo è tecnicamente "diverso da zero", ma è vicino allo zero come il programma riporterà ...

È ben noto e teoricamente dimostrabile (ad es. Stram e Lee Biometrics 1994) che la distribuzione nulla per i componenti di varianza è una miscela di una massa di punti ('picco') a zero e una distribuzione chi-quadrata a partire da zero. Non sorprende (ma non so se sia dimostrato / ben noto), la distribuzione campionaria delle stime dei componenti della varianza ha spesso un picco a zero anche quando il valore reale non è zero - vedi ad esempio http://rpubs.com/ bbolker / 4187 per un esempio o l'ultimo esempio nella ?bootMerpagina:

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) 

inserisci qui la descrizione dell'immagine


2
+1. Un'altra buona risposta è nel thread gemello : stats.stackexchange.com/a/34979 (lascio questo link per i futuri lettori).
ameba dice Ripristina Monica il

14

Non penso che ci sia un problema. La lezione dall'output del modello è che sebbene ci sia una variazione "ovviamente" nelle prestazioni del soggetto, l'entità di questa variazione del soggetto può essere spiegata in modo completo o virtualmente solo con il solo termine di varianza residua. Non c'è abbastanza variazione aggiuntiva a livello di soggetto per giustificare l'aggiunta di un effetto casuale a livello di soggetto aggiuntivo per spiegare tutte le variazioni osservate.

Pensare in questo modo. Immagina di simulare dati sperimentali sotto questo stesso paradigma. Impostiamo i parametri in modo che vi sia una variazione residua su base trial per trial, ma 0 variazione a livello di soggetto (ovvero, tutti i soggetti hanno la stessa "media vera", più l'errore). Ora, ogni volta che simuliamo i dati da questo insieme di parametri, scopriremo ovviamente che i soggetti non hanno esattamente le stesse prestazioni. Alcuni finiscono con punteggi bassi, altri con punteggi alti. Ma questo è solo a causa della variazione residua del livello di prova. "Sappiamo" (in virtù della determinazione dei parametri di simulazione) che non esiste alcuna variazione a livello di soggetto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.