Cheat sheet di R's lmer


160

Ci sono molte discussioni in corso su questo forum sul modo corretto di specificare vari modelli gerarchici usando lmer.

Ho pensato che sarebbe bello avere tutte le informazioni in un unico posto. Un paio di domande per iniziare:

  1. Come specificare più livelli, in cui un gruppo è nidificato nell'altro: è (1|group1:group2)o (1+group1|group2)?
  2. Qual è la differenza tra (~1 + ....)e (1 | ...)e (0 | ...)così via?
  3. Come specificare le interazioni a livello di gruppo?

11
Il manuale e tre vignette per il lme4pacchetto sono disponibili su CRAN
Henry,

4
Ci sono, oltre al materiale CRAN, diapositive delle lezioni e capitoli di un libro che Doug sta scrivendo su (G) LMM e R con lme4 disponibile da r-forge
Gavin Simpson,

Collegamento diretto alla versione arXiv del documento JSS di Bates et al .: Montaggio di modelli lineari a effetti misti usando lme4 (in particolare la Sezione 2.2 "Comprensione delle formule a modello misto"). Vedi anche la sezione pertinente delle FAQ di Ben Bolker.
ameba,

5
Probabilmente, il linguaggio usato da lmerè di interesse statistico generale e quindi non è solo una questione di programmazione. Pertanto voto per mantenere aperta questa discussione.
whuber

2
@whuber +1 Completamente d'accordo.
amoeba,

Risposte:


180

Qual è la differenza tra (~ 1 + ....) e (1 | ...) e (0 | ...) ecc.?

Supponiamo che tu abbia la variabile V1 prevista dalla variabile categorica V2, che viene trattata come un effetto casuale, e la variabile continua V3, che viene trattata come un effetto fisso lineare. Utilizzando la sintassi lmer, il modello più semplice (M1) è:

V1 ~ (1|V2) + V3

Questo modello stimerà:

P1: un'intercettazione globale

P2: intercettazioni di effetti casuali per V2 (ovvero per ogni livello di V2, la deviazione dell'intercettazione di quel livello dall'intercetta globale)

P3: una singola stima globale per l'effetto (pendenza) di V3

Il prossimo modello più complesso (M2) è:

V1 ~ (1|V2) + V3 + (0+V3|V2)

Questo modello stima tutti i parametri da M1, ma stimerà inoltre:

P4: L'effetto di V3 all'interno di ciascun livello di V2 (più precisamente, il grado in cui l'effetto V3 all'interno di un dato livello si discosta dall'effetto globale di V3), mentre impone una correlazione zero tra le deviazioni dell'intercettazione e le deviazioni dell'effetto V3 tra i livelli di V2 .

Quest'ultima limitazione è allentata in un modello finale più complesso (M3):

V1 ~ (1+V3|V2) + V3

In cui vengono stimati tutti i parametri di M2 consentendo al contempo la correlazione tra le deviazioni dell'intercettazione e le deviazioni dell'effetto V3 entro i livelli di V2. Pertanto, in M3, viene stimato un parametro aggiuntivo:

P5: La correlazione tra deviazioni di intercettazione e deviazioni V3 attraverso i livelli di V2

Di solito vengono calcolate coppie di modelli come M2 e M3, quindi confrontate per valutare l'evidenza di correlazioni tra effetti fissi (inclusa l'intercettazione globale).

Ora considera l'aggiunta di un altro predittore ad effetti fissi, V4. Il modello:

V1 ~ (1+V3*V4|V2) + V3*V4

stimerebbe:

P1: un'intercettazione globale

P2: una singola stima globale per l'effetto di V3

P3: un'unica stima globale per l'effetto di V4

P4: un'unica stima globale per l'interazione tra V3 e V4

P5: deviazioni dell'intercetta da P1 in ciascun livello di V2

P6: deviazioni dell'effetto V3 da P2 in ciascun livello di V2

P7: deviazioni dell'effetto V4 da P3 in ogni livello di V2

P8: deviazioni dell'interazione V3-by-V4 da P4 in ciascun livello di V2

P9 Correlazione tra P5 e P6 tra i livelli di V2

P10 Correlazione tra P5 e P7 attraverso i livelli di V2

P11 Correlazione tra P5 e P8 attraverso i livelli di V2

P12 Correlazione tra P6 e P7 attraverso i livelli di V2

P13 Correlazione tra P6 e P8 attraverso i livelli di V2

P14 Correlazione tra P7 e P8 attraverso i livelli di V2

Accidenti , sono molti parametri! E non mi sono nemmeno preoccupato di elencare i parametri di varianza stimati dal modello. Inoltre, se hai una variabile categoriale con più di 2 livelli che vuoi modellare come effetto fisso, invece di un singolo effetto per quella variabile, stimerai sempre gli effetti k-1 (dove k è il numero di livelli) , sfruttando in tal modo il numero di parametri da stimare ulteriormente dal modello.


1
@Mike Lawrence Grazie per la risposta! come viene stimato un modello a 3 livelli? dove un fattore di raggruppamento è nidificato all'interno di un altro?

DBR, non credo che tu sappia quali sono i livelli. Lo hai chiesto per sempre. Crea una domanda che descriva in dettaglio il design del tuo esperimento e dimostri la tua interpretazione di "livello".
Giovanni,

3
Penso che DBR si riferisca ai livelli nella gerarchia. Quello che ho descritto è un modello gerarchico a 2 livelli, con osservazioni nidificate all'interno delle materie, e DBR sta chiedendo informazioni sulle gerarchie a 3 livelli, un esempio del quale potrebbero essere elementi di prova all'interno degli studenti all'interno delle scuole in cui si desidera modellare casualmente sia gli studenti che le scuole effetti, con gli studenti nidificati nelle scuole. In tali casi presumo che le deviazioni a livello di scuola vengano prima calcolate poi le deviazioni da studente a scuola.
Mike Lawrence,

2
La migliore risposta che ho visto per aver configurato i modelli. Mi ha aiutato a fornire un quadro semplice per il mio capo per capire cosa sto facendo in R con lmer.
bfoste01,

Yij=γ00+γ10Xij+γ01Zj+γ11XijZj+u1jXij+u0j+eij
iijjlmerY~X+Z+(1|group)+(0+X|Z)group

50

Il trucco generale è, come menzionato in un'altra risposta , che la formula segue la forma dependent ~ independent | grouping. Il groupingè generalmente un fattore casuale, è possibile includere fattori fissi senza alcun raggruppamento e si può avere fattori casuali supplementari senza alcun fattore fisso (un unico intercetta modello). Un +fattore tra indica nessuna interazione, un *indica interazione.

Per fattori casuali, hai tre varianti di base:

  1. Intercetta solo per fattore casuale: (1 | random.factor)
  2. Pendenze solo per fattore casuale: (0 + fixed.factor | random.factor)
  3. Intercettazioni e pendenze per fattore casuale: (1 + fixed.factor | random.factor)

Si noti che la variante 3 ha la pendenza e l'intercetta calcolate nello stesso raggruppamento, cioè allo stesso tempo. Se vogliamo che la pendenza e l'intercetta siano calcolate in modo indipendente, cioè senza alcuna presunta correlazione tra i due, abbiamo bisogno di una quarta variante:

  • Intercetta e pendenza, separatamente, da fattore casuale: (1 | random.factor) + (0 + fixed.factor | random.factor). Un modo alternativo per scrivere questo è usare la notazione a doppia barra fixed.factor + (fixed.factor || random.factor).

C'è anche un bel riassunto in un'altra risposta a questa domanda che dovresti guardare.

Se hai intenzione di scavare un po 'in matematica, Barr et al. (2013) riassumono lmerabbastanza bene la sintassi nella loro Tabella 1, adattata qui per soddisfare i vincoli del markdown senza tabl. Quel documento trattava di dati psicolinguistici, quindi i due effetti casuali sono Subjecte Item.

Modelli e lme4sintassi della formula equivalente :

    • Ysi=β0+β1Xi+esi
    • N / A (non un modello a effetti misti)
    • Ysi=β0+S0s+β1Xi+esi
    • Y ∼ X+(1∣Subject)
    • Ysi=β0+S0s+(β1+S1s)Xi+esi
    • Y ∼ X+(1 + X∣Subject)
    • Ysi=β0+S0s+I0i+(β1+S1s)Xi+esi
    • Y ∼ X+(1 + X∣Subject)+(1∣Item)
    • Ysi=β0+S0s+I0i+β1Xi+esi
    • Y ∼ X+(1∣Subject)+(1∣Item)
    • S0sS1s
    • Y ∼ X+(1∣Subject)+(0 + X∣ Subject)+(1∣Item)
    • Ysi=β0+I0i+(β1+S1s)Xi+esi
    • Y ∼ X+(0 + X∣Subject)+(1∣Item)

Riferimenti:

Barr, Dale J, R. Levy, C. Scheepers e HJ Tily (2013). Struttura ad effetti casuali per test di ipotesi di conferma: mantenerlo al massimo . Journal of Memory and Language, 68: 255– 278.


4
Bello. Potrebbe essere meglio con informazioni su "/" fattori annidati e notazione a doppia barra "||"
skan

1
Che dire del simbolo:?
Eastafri,

1
@eastafri Significa che la stessa cosa fa ovunque in R (formule): l'interazione tra due variabili.
Livio

S0sS1s0S0sS1s

4

Il |simbolo indica un fattore di raggruppamento in metodi misti.

Secondo Pinheiro & Bates:

... La formula indica anche una risposta e, se disponibile, una covariata primaria . È dato come

response ~ primary | grouping

dove responseè un'espressione per la risposta, primaryè un'espressione per la covariata primaria ed groupingè un'espressione per il fattore di raggruppamento.

A seconda del metodo utilizzato per eseguire l'analisi di metodi misti R, potrebbe essere necessario creare un groupedDataoggetto per poter utilizzare il raggruppamento nell'analisi (vedere il nlmepacchetto per i dettagli, lme4non sembra averne bisogno). Non posso parlare del modo in cui hai specificato le lmerdichiarazioni del tuo modello perché non conosco i tuoi dati. Tuttavia, avere multipli (1|foo)nella linea del modello è insolito da quello che ho visto. Cosa stai cercando di modellare?

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.