Usando lmer per la previsione


18

Ciao ho due problemi che sembrano candidati naturali per modelli multilivello / misti, che non ho mai usato. Il più semplice, e che spero di provare come introduzione, è il seguente: I dati sembrano molte righe del modulo

x y innergroup outergroup

dove x è una covariata numerica su cui desidero regredire y (un'altra variabile numerica), ogni y appartiene a un gruppo di appartenenza e ogni gruppo di gruppi è nidificato in un gruppo esterno (ovvero, tutti i gruppi di un gruppo di appartenenza appartengono allo stesso gruppo di appartenenza) . Sfortunatamente, innergroup ha molti livelli (molte migliaia) e ogni livello ha relativamente poche osservazioni di y, quindi ho pensato che questo tipo di modello potesse essere appropriato. Le mie domande sono

  1. Come scrivo questo tipo di formula multilivello?

  2. Una volta che lmer si adatta al modello, come si fa a prevederlo? Ho adattato alcuni esempi di giocattoli più semplici, ma non ho trovato una funzione predict (). Molte persone sembrano più interessate all'inferenza che alla previsione con questo tipo di tecnica. Ho diversi milioni di righe, quindi i calcoli potrebbero essere un problema, ma posso sempre ridurlo a seconda dei casi.

Non avrò bisogno di fare il secondo per qualche tempo, ma potrei anche iniziare a pensarci e giocarci. Ho dati simili a prima, ma senza x, e y ora è una variabile binomiale del modulo . y mostra anche molta sovradispersione, anche all'interno di gruppi di utenti. La maggior parte degli n non sono più di 2 o 3 (o meno), quindi per ricavare stime delle percentuali di successo di ogni y i ho usato lo stimatore di contrazione beta-binomiale ( α + k i ) / ( α + β + n i ) , dove(n,n-K)nyio(α+Kio)/(α+β+nio) e β sono stimati da MLE per ciascun gruppo interno separatamente. Questo è stato in qualche modo adeguato, ma la scarsità dei dati mi affligge ancora, quindi vorrei utilizzare tutti i dati disponibili. Da un punto di vista, questo problema è più semplice poiché non esiste la covariata, ma dall'altro la natura binomiale lo rende più difficile. Qualcuno ha una guida di livello alto (o basso!)?αβ


Verifica che le parentesi che ho inserito nella formula di restringimento si trovino dove volevi che fossero.
whuber

1
La seconda parte della tua domanda (con una variabile binaria) non dovrebbe essere una domanda separata?
chl

Risposte:


17

L'espressione delle relazioni di fattori usando le formule R segue dalla notazione di Wilkinson, dove '*' indica incrocio e '/' annidamento, ma ci sono alcune particolarità nel modo in cui vengono gestite la formula per i modelli a effetti misti, o più in generale gli effetti casuali. Ad esempio, due effetti casuali incrociati potrebbero essere rappresentati come (1|x1)+(1|x2). Ho interpretato la tua descrizione come un caso di nidificazione, proprio come le classi sono nidificate nelle scuole (nidificate negli stati, ecc.), Quindi una formula di base con lmersarebbe simile (se non diversamente specificato, una gaussianfamiglia viene utilizzata per impostazione predefinita):

y ~ x + (1|A:B) + (1|A)

dove A e B corrispondono ai tuoi fattori interni ed esterni, rispettivamente. B è nidificato all'interno di A ed entrambi sono trattati come fattori casuali. Nel vecchio pacchetto nlme , ciò corrisponderebbe a qualcosa del genere lme(y ~ x, random=~ 1 | A/B). Se A dovesse essere considerato come un fattore fisso, la formula dovrebbe leggere y ~ x + A + (1|A:B).

Ma vale la pena controllare più precisamente le specifiche di D. Bates per il pacchetto lme4 , ad esempio nel suo prossimo libro di testo, lme4: Mixed-effects Modeling con R , o le numerose dispense disponibili sulla stessa pagina web. In particolare, v'è un esempio per tali rapporti di nidificazione in Montaggio lineari con effetti misti modelli, il pacchetto lme4 in R . Il tutorial di John Maindonald fornisce anche una bella panoramica: Anatomia di un Modello di analisi misto, con lme4 pacchetto di R . Infine, la sezione 3 della vignetta R sull'implementazione di lme4 include un esempio dell'analisi di una struttura nidificata.

Non esiste alcuna predict()funzione in lme4(questa funzione ora esiste, vedi il commento sotto) e devi calcolare te stesso i singoli valori previsti usando gli effetti fissi (vedi ?fixef) e casuali (vedi ?ranef) stimati , ma vedi anche questo thread sulla mancanza della funzione di previsione in lme4 . Puoi anche generare un campione dalla distribuzione posteriore usando la mcmcsamp()funzione. A volte, però, potrebbe scontrarsi. Vedi la mailing list sig-me per informazioni più aggiornate.


3
Per aggiornare: lme4ora include una funzione di previsione all'interno di-r.org/packages/cran/lme4/docs/predict.mermod
Bar

Documentazione per predict.merMod ora disponibile qui: rdocumentation.org/packages/lme4/versions/1.1-12/topics/…
DirtStats

10

Il pacchetto ez contiene la funzione ezPredict (), che ottiene previsioni dai modelli lmer in cui la previsione si basa solo sugli effetti fissi. È davvero solo un involucro attorno all'approccio dettagliato nel wiki glmm .


5

Vorrei usare la funzione "logit.mixed" in Zelig , che è un wrapper per lime4 e rende molto conveniente fare previsioni e simulazioni.


Sembra che non ci sia alcun metodo predcit () per logit.mixed in zelig ..
nassimhddd

3

La versione di sviluppo di lme4 ha una funzione di previsione integrata (predict.merMod). Può essere trovato su https://github.com/lme4/lme4/ .

Il codice per installare i "binari di sviluppo quasi aggiornati dal repository lme4 r-forge" si trova nella pagina sopra ed è:

install.packages("lme4", repos=c("http://lme4.r-forge.r-project.org/repos", getOption("repos")["CRAN"]))

1
nota che questa non è più la versione di sviluppo, predictè disponibile da alcuni anni.
Ben Bolker,

1

Stephen Raudenbush ha un capitolo del libro nel Manuale di analisi multilivello su " Molti piccoli gruppi ". Se sei interessato solo agli effetti di x su y e non hai interesse per gli effetti di livello superiore, il suo suggerimento è semplicemente di stimare un modello di effetti fissi (cioè una variabile fittizia per tutti i possibili raggruppamenti di livello superiore).

Non so quanto sia applicabile alla previsione, ma immagino che parte di ciò che scrive sia applicabile a ciò che stai cercando di realizzare.

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.