Come scegliere la libreria nlme o lme4 R per i modelli di effetti misti?


85

Ho adattare alcuni modelli effetti misti (in particolare modelli longitudinali) utilizzando lme4in Rma vorrei padroneggiare davvero i modelli e il codice che va con loro.

Tuttavia, prima di immergermi con entrambi i piedi (e acquistare alcuni libri) voglio essere sicuro di imparare la biblioteca giusta. Ho usato lme4fino ad ora perché l'ho appena trovato più facile di nlme, ma se nlmeè meglio per i miei scopi, penso che dovrei usarlo.

Sono sicuro che nessuno dei due è "migliore" in modo semplicistico, ma apprezzerei alcune opinioni o pensieri. I miei criteri principali sono:

  1. facile da usare (sono uno psicologo in allenamento e non sono particolarmente esperto di statistica o programmazione, ma sto imparando)
  2. buone caratteristiche per adattare i dati longitudinali (se c'è una differenza qui- ma questo è quello per cui li uso principalmente)
  3. buoni riassunti grafici (facili da interpretare), ancora una volta non sono sicuro che ci sia una differenza qui, ma spesso produco grafici per le persone anche meno tecnici di me, quindi i bei grafici chiari sono sempre buoni (mi piace molto la funzione xyplot in reticolo () per questa ragione).

Come al solito, spero che questa domanda non sia troppo vaga, e grazie in anticipo per qualsiasi saggezza!

Risposte:


68

Entrambi i pacchetti usano Latticecome backend, ma nlmeha alcune caratteristiche piacevoli groupedData()e lmList()che mancano lme4(IMO). Da un punto di vista pratico, i due criteri più importanti sembrano tuttavia quello

  1. lme4si estende nlmecon altre funzioni di collegamento: in nlme, non è possibile adattare i risultati la cui distribuzione non è gaussiana, ad esempio lme4può essere utilizzato per adattarsi alla regressione logistica ad effetti misti.
  2. in nlme, è possibile specificare la matrice varianza-covarianza per gli effetti casuali (ad es. un AR (1)); non è possibile in lme4.

Ora, lme4può facilmente gestire un numero enorme di effetti casuali (quindi, il numero di individui in un dato studio) grazie alla sua parte C e all'uso di matrici sparse. Il nlmepacchetto è stato in qualche modo sostituito da lme4quindi non mi aspetto che le persone trascorrano molto tempo a sviluppare componenti aggiuntivi nlme. Personalmente, quando ho una risposta continua nel mio modello, tendo a usare entrambi i pacchetti, ma ora sono esperto nel lme4modo di adattare GLMM.

Invece di comprare un libro, date un'occhiata prima al Doug Bates' progetto libro su R-forge: lme4: multi-effetti di modellazione con R .


5
@ 2) più precisamente, lme4è possibile specificare una struttura di covarianza diagonale (ovvero effetti casuali indipendenti) o matrici di covarianza non strutturate (cioè tutte le correlazioni devono essere stimate) o matrici di covarianza parzialmente diagonali, parzialmente non strutturate per gli effetti casuali. Aggiungerei anche una terza differenza nelle capacità che potrebbero essere più rilevanti per molte situazioni di dati longitudinali: nlmespecifichiamo le strutture di varianza-covarianza per i residui (ovvero autocorrelazione spaziale o temporale o eteroschedasticità), lme4no.
fabians

@fabians (+1) Ah, grazie! Non ho realizzato lme4permette di scegliere diverse strutture VC. Sarebbe meglio che lo aggiungessi nella tua risposta, insieme ad altre idee che potresti avere. Valuterò. A proposito, ho anche capito che lmList()è disponibile lme4anche in. Mi sembra di ricordare qualche discussione a riguardo su R-sig-ME.
chl

Qualche alternativa più veloce? Devo adattare modelli con set di dati di grandi dimensioni e impiegare quasi mezz'ora nel mio computer. Esistono molti pacchetti di regressione rapida, ma nessuno sembra essere in grado di gestire effetti casuali.
skan

52

Come sottolineato da chl, la differenza principale è che tipo di struttura varianza-covarianza è possibile specificare per gli effetti casuali. In lme4è possibile specificare:

  • strutture di covarianza diagonale (ovvero, applicare effetti casuali non correlati tra loro tramite sintassi simile ~ (1 | group)+ (0 + x1 | group) + (0 + x2 | group))
  • o matrici di covarianza non strutturate (ovvero tutte le correlazioni sono stimate ~ (1 + x1 + x2 | group))
  • o covarianza parzialmente diagonale, parzialmente non strutturata ( y ~ (1 + x1 | group) + (0 + x2 | group)dove si stimerebbe una correlazione tra l'intercettazione casuale e la pendenza casuale per x1, ma nessuna correlazione tra la pendenza casuale per x2e l'intercetta casuale e tra la pendenza casuale per x2e la pendenza casuale per x1).

nlmeoffre una classe molto più ampia di strutture di covarianza per gli effetti casuali. La mia esperienza è che la flessibilità di lme4è sufficiente per la maggior parte delle applicazioni, tuttavia.

Aggiungerei anche una terza differenza nelle capacità che potrebbero essere più rilevanti per molte situazioni di dati longitudinali: nlme specifichiamo le strutture di varianza-covarianza per i residui (ovvero autocorrelazione spaziale o temporale o eteroschedasticità o variabilità dipendente dalla covariata) weightsnell'argomento (cfr. ?varFunc), mentre lme4consente solo pesi precedenti fissi per le osservazioni.

Una quarta differenza è che può essere difficile nlmeadattarsi a effetti casuali (parzialmente) incrociati, mentre non è un problema lme4.

Probabilmente starai bene se rimani con lme4.


1
Con la possibile eccezione (come hai sottolineato) di essere in grado di incorporare l'autocorrelazione temporale in nlme ma non in lme4. Se il set di dati è abbastanza grande e se i dati hanno questo tipo di struttura, questo potrebbe essere un grande vantaggio di nlme.
Ben Bolker,

22

Altri hanno riassunto molto bene le differenze. La mia impressione è che lme4sia più adatto per set di dati in cluster soprattutto quando è necessario utilizzare effetti casuali incrociati. Per misure ripetute (compresi molti disegni longitudinali), tuttavia, nlmeè lo strumento poiché nlmesupporta solo la specifica di una struttura di correlazione per i residui. Lo fai usando l' argomento correlationso corcon un corStructoggetto. Ti permette anche di modellare l'eteroscedasticità usando un varFuncoggetto.


13

In realtà ci sono un certo numero di pacchetti in R per adattare modelli di effetti misti oltre lme4e nlme. C'è una bella wiki gestita dal gruppo di interesse speciale R per i modelli misti, che ha una bella FAQ e una pagina che confronta i diversi pacchetti .

Per quanto riguarda le mie opinioni sull'uso effettivo lme4e nlme: Ho trovato lme4generalmente più facile da usare a causa della sua estensione piuttosto diretta della sintassi della formula R di base. (Se hai bisogno di lavorare con modelli additivi generalizzati, il gamm4pacchetto estende questa sintassi di un ulteriore passo e quindi hai una curva di apprendimento graduale.) Come altri hanno già detto, lme4può gestire modelli generalizzati (altre funzioni di collegamento e distribuzioni di errori), mentre nlmeIl focus sulla funzione di collegamento gaussiano gli consente di fare alcune cose molto difficili nel caso generale (specificare la struttura della covarianza e alcune cose dipendenti dal calcolo dei gradi di libertà, come i valori p, quest'ultima delle quali ti incoraggio a muoverti lontano da!).

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.