Verifica dei presupposti modelli misti lmer / lme in R


25

Ho eseguito un disegno ripetuto per cui ho testato 30 maschi e 30 femmine in tre diversi compiti. Voglio capire come il comportamento di maschi e femmine sia diverso e come ciò dipenda dal compito. Ho usato sia il pacchetto lmer che lme4 per indagare su questo, tuttavia, sono bloccato con il tentativo di verificare i presupposti per entrambi i metodi. Il codice che eseguo è

lm.full <- lmer(behaviour ~ task*sex + (1|ID/task), REML=FALSE, data=dat)
lm.full2 <-lme(behaviour ~ task*sex, random = ~ 1|ID/task, method="ML", data=dat)

Ho verificato se l'interazione era il modello migliore confrontandola con il modello più semplice senza l'interazione e gestendo un'anova:

lm.base1 <- lmer(behaviour ~ task+sex+(1|ID/task), REML=FALSE, data=dat)
lm.base2 <- lme(behaviour ~ task+sex, random= ~1|ID/task), method="ML", data=dat)
anova(lm.base1, lm.full)
anova(lm.base2, lm.full2)

Q1: è corretto utilizzare questi predittori categorici in un modello misto lineare?
Q2: Capisco correttamente che la variabile di risultato ("comportamento") non deve essere distribuita normalmente (tra sesso / attività)?
Q3: Come posso verificare l'omogeneità della varianza? Per un semplice modello lineare che uso plot(LM$fitted.values,rstandard(LM)). Usi è plot(reside(lm.base1))sufficiente?
Q4: per verificare la normalità si utilizza il seguente codice ok?

hist((resid(lm.base1) - mean(resid(lm.base1))) / sd(resid(lm.base1)), freq = FALSE); curve(dnorm, add = TRUE)

Una cosa che ho notato è anche che la versione di lme4 che stavo usando non era la più recente e quindi la trama semplice (myModel.lm) non ha funzionato, forse è utile che altri lettori lo sappiano ..
crazjo

Risposte:


26

Q1: Sì, proprio come qualsiasi modello di regressione.

D2: Proprio come i modelli lineari generali, la variabile di risultato non deve essere normalmente distribuita come variabile univariata. Tuttavia, i modelli LME presuppongono che i residui del modello siano normalmente distribuiti. Quindi una trasformazione o l'aggiunta di pesi al modello sarebbe un modo per prendersi cura di questo (e verificare con i grafici diagnostici, ovviamente).

Q3: plot(myModel.lme)

Q4: qqnorm(myModel.lme, ~ranef(., level=2)). Questo codice ti permetterà di creare grafici QQ per ogni livello degli effetti casuali. I modelli LME presuppongono che non solo i residui all'interno del cluster siano normalmente distribuiti, ma che anche ogni livello degli effetti casuali lo sia. Varia levelda 0, 1, a 2 in modo da poter controllare il topo, l'attività e i residui all'interno del soggetto.

EDIT: Dovrei anche aggiungere che, mentre si presume la normalità e che la trasformazione probabilmente aiuta a ridurre i problemi con errori non normali / effetti casuali, non è chiaro che tutti i problemi siano effettivamente risolti o che il pregiudizio non sia introdotto. Se i tuoi dati richiedono una trasformazione, fai attenzione alla stima degli effetti casuali. Ecco un documento che affronta questo .


Grazie per la tua risposta. Vorrei condividere il mio set di dati e lo script per l'analisi, incluso l'output, per vedere se ciò che ho fatto è effettivamente corretto. È possibile in cambio di stack? Inoltre, penso di aver eseguito il fattore casuale sbagliato (1 | ratto / compito), non dovrebbe essere (1 | ratto)? Ho testato 60 ratti (30 di ogni sesso) su tre compiti.
crazjo,

9
Di recente ho provato il codice per Q4 e ho riscontrato un errore sull'oggetto di tipo 'S4' non impostabile. Quel codice era destinato ai modelli compatibili con il pacchetto lme? Che dire di lme4?
emudrak,

Per quanto riguarda il Q4, le persone che creano questi grafici devono tenere presente che la N per ciascuno dei grafici prodotti sarà sostanzialmente più piccola del totale e quindi i grafici saranno molto più variabili. Non aspettarti che appaiano così uniformemente distribuiti come nel complesso.
Giovanni,

14

Sembri piuttosto fuorviante riguardo alle ipotesi relative ai modelli multilivello. Non si presume l'omogeneità della varianza nei dati, ma solo che i residui dovrebbero essere distribuiti approssimativamente normalmente. E i predittori categorici sono usati sempre nella regressione (la funzione sottostante in R che esegue un ANOVA è il comando di regressione lineare).

Per i dettagli sull'esame delle ipotesi, consultare il libro Pinheiro e Bates (p. 174, sezione 4.3.1). Inoltre, se prevedi di usare lme4 (di cui il libro non è scritto) puoi replicare i loro grafici usando la trama con un lmermodello ( ?plot.merMod).

Per verificare rapidamente la normalità sarebbe solo qqnorm(resid(myModel)).


Grazie per il tuo commento. Suggerisci di usare lmer sul metodo lme4? E ho ragione nel capire che la variabile di risposta non deve essere normalmente distribuita? Avrò una lettura corretta attraverso il libro Pinheiro e Bates.
crazjo,

Inoltre, sei sicuro di eseguire qqnorm (resid (myModel)) su un modello misto con più fattori?
crazjo,

La nuova funzione lmer ha più capacità e prestazioni più elevate. Hai provato qqnorm? Segui i consigli all'inizio del libro su come leggerlo.
Giovanni,

La trama inizialmente mi era sembrata strana, forse perché in effetti non avevo la versione più recente di lmer. Grazie per averlo notato, ora funziona come necessario.
crazjo,

12

Per quanto riguarda il secondo trimestre:

Secondo il libro di Pinheiro e Bates è possibile utilizzare il seguente approccio:

"La lmefunzione consente di modellare l'eteroscesdasticità del gruppo all'interno dell'errore attraverso un weightsargomento. Questo argomento sarà trattato in dettaglio nel § 5.2, ma, per ora, è sufficiente sapere che la varIdentstruttura della funzione di varianza consente varianze diverse per ogni livello di un fattore e può essere utilizzato per adattarsi al modello eteroscedastico [...] "

Pinheiro e Bates, p. 177

Se desideri verificare la presenza di varianze uguali tra questi, sexpuoi utilizzare questo approccio:

plot( lm.base2, resid(., type = "p") ~ fitted(.) | sex,
  id = 0.05, adj = -0.3 )

Se le varianze sono diverse, è possibile aggiornare il modello nel modo seguente:

lm.base2u <- update( lm.base2, weights = varIdent(form = ~ 1 | sex) )
summary(lm.base2u)

Inoltre, puoi dare un'occhiata al robustlmmpacchetto che utilizza anche un approccio di pesatura. La tesi di dottorato di Koller su questo concetto è disponibile come accesso aperto ("Stima robusta di modelli misti lineari"). Gli stati astratti:

"Una nuova stima della scala, la stima della scala adattativa del progetto, è stata sviluppata con l'obiettivo di fornire una solida base per i successivi test robusti. Lo fa uniformando l'eteroschedasticità naturale dei residui e adeguandosi all'equazione di stima robusta per la scala stessa . Queste correzioni adattative di progettazione sono cruciali in piccole impostazioni del campione, in cui il numero di osservazioni potrebbe essere solo cinque volte il numero di parametri da stimare o meno. "



Non ho abbastanza punti per i commenti. Vedo tuttavia la necessità di chiarire alcuni aspetti della risposta di @John sopra. Pinheiro e Bates dichiarano a pag. 174:

Presupposto 1 : gli errori all'interno del gruppo sono indipendenti e identicamente distribuiti normalmente, con zero medio e varianza σ2 e sono indipendenti dagli e ff etti casuali.

Questa affermazione in effetti non è chiara sulle variazioni omogenee e non sono abbastanza approfondito nelle statistiche per conoscere tutti i calcoli alla base del concetto di LME. Tuttavia, a p. 175, §4.3.1, la sezione relativa all'Assunzione 1 scrivono:

In questa sezione, ci concentriamo sui metodi per valutare l'assunto che gli errori all'interno del gruppo sono normalmente distribuiti, centrati su zero e con varianza costante .

Inoltre, negli esempi seguenti le " variazioni costanti " sono davvero importanti. Pertanto, si può ipotizzare se implicano varianze omogenee quando scrivono " identicamente normalmente distribuiti" a pag. 174 senza affrontarlo più direttamente.


-6

Q1: Sì, perché no?

Q2: Penso che il requisito sia che gli errori siano normalmente distribuiti.

D3: Ad esempio, può essere testato con il test di Leven.

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.