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.