Confronto di un modello misto (soggetto come effetto casuale) con un modello lineare semplice (soggetto come effetto fisso)


10

Sto finendo alcune analisi su un ampio set di dati. Vorrei prendere il modello lineare utilizzato nella prima parte del lavoro e rimontarlo utilizzando un modello misto lineare (LME). L'LME sarebbe molto simile con l'eccezione che una delle variabili utilizzate nel modello sarebbe utilizzata come effetto casuale. Questi dati provengono da molte osservazioni (> 1000) in un piccolo gruppo di soggetti (~ 10) e so che modellare l'effetto del soggetto è meglio come effetto casuale (questa è una variabile che voglio spostare). Il codice R sarebbe simile a:

my_modelB <- lm(formula = A ~ B + C + D)    
lme_model <- lme(fixed=A ~ B + C, random=~1|D, data=my_data, method='REML')

Tutto funziona bene e i risultati sono molto simili. Sarebbe bello se potessi usare qualcosa come RLRsim o un AIC / BIC per confrontare questi due modelli e decidere quale sia il più appropriato. I miei colleghi non vogliono segnalare l'LME perché non esiste un modo facilmente accessibile di scegliere quale sia "migliore", anche se penso che l'LME sia il modello più appropriato. Eventuali suggerimenti?

Risposte:


6

Questo è da aggiungere alla risposta di @ ocram perché è troppo lungo per pubblicare un commento. Tratterei A ~ B + Ccome il tuo modello null in modo da poter valutare il significato statistico di un'intercettazione Dcasuale di livello in una configurazione del modello nidificata. Come sottolineato da Ocram, le condizioni di regolarità sono violate quando e la statistica del test del rapporto di verosimiglianza (LRT) non sarà necessariamente distribuita asintoticamente . La soluzione che mi è stata insegnata era quella di avviare bootstrap LRT (la cui distribuzione bootstrap probabilmente non sarà ) parametricamente e calcolare un valore p bootstrap come questo:χ 2 χ 2H0:σ2=0χ2χ2

library(lme4)
my_modelB <- lm(formula = A ~ B + C)
lme_model <- lmer(y ~ B + C + (1|D), data=my_data, REML=F)
lrt.observed <- as.numeric(2*(logLik(lme_model) - logLik(my_modelB)))
nsim <- 999
lrt.sim <- numeric(nsim)
for (i in 1:nsim) {
    y <- unlist(simulate(mymodlB))
    nullmod <- lm(y ~ B + C)
    altmod <- lmer(y ~ B + C + (1|D), data=my_data, REML=F)
    lrt.sim[i] <- as.numeric(2*(logLik(altmod) - logLik(nullmod)))
}
mean(lrt.sim > lrt.observed) #pvalue

La proporzione di LRT con bootstrap più estrema rispetto a LRT osservata è il valore p.


Grazie per aver completato la mia risposta. Inoltre, a volte le persone usano una combinazione di chi-quadrati anziché una distribuzione di chi-quadrato per la statistica del test.
Ocram,

@ocram +1 per il tuo commento su come decidere se trattare la variabile come casuale o riparata separatamente dall'analisi. @MudPhud Se il tuo PI non capisce il problema e insiste su un valore p, allora forse gli mostri solo il risultato del test dell'effetto casuale (che dovresti comunque includere nella scrittura).
chiuso il

Grazie per il codice Quando l'ho eseguito il risultato è che nessuno degli LRT avviati dal boot è maggiore di quello osservato, quindi questo significa che posso attenermi a lm senza gli effetti casuali o anche la variabile originale
inserita

@MudPhud: hai riscontrato errori? Prova a digitare lrt.simper assicurarti che non siano tutti zeri, nel qual caso il colpevole più probabile sarebbe che non hai lme4installato il pacchetto .
chiuso il

Non sono 0, solo molto piccoli (~ 1e-6) rispetto all'osservato (63,95).
MudPhud,

2

0H0:variance=0H1:variance>0...

MODIFICARE

Al fine di evitare confusione: il test sopra menzionato viene talvolta usato per decidere se l'effetto casuale è significativo ... ma non per decidere se deve essere trasformato in un effetto fisso.


La domanda è: esiste un test per decidere se la variabile deve essere modellata come effetto misto o casuale? Altrimenti potresti fare il test che hai descritto e poi testarlo con una distinzione chi-quadrata (non sono sicuro di quale sarebbe il test appropriato).
MudPhud,

2
@MudPhud: la modellazione di una variabile come un effetto fisso o casuale dovrebbe in realtà essere decisa prima dell'analisi, quando lo studio è pianificato. Dipende, in particolare, dall'ambito delle tue conclusioni. Gli effetti casuali consentono una maggiore generalizzabilità. Potrebbe anche evitare alcune difficoltà tecniche. Ad esempio, gli asintotici potrebbero rompersi quando il numero di parametri aumenta, come nel caso in cui una variabile categoriale con molti livelli sia considerata come una variabile fissa.
Ocram,

Sono d'accordo, ma quando ho provato a spiegarlo al mio PI, si è girato e ha chiesto un valore p di qualche tipo. Voglio includere questa analisi in un manoscritto, ma non lo inserirà se non c'è una giustificazione più concreta.
MudPhud,

1
@MudPhud: Per quanto ne so, non esiste un valore p per tale decisione. Se l'interesse si concentra sull'effetto dei livelli specifici scelti, allora dovrebbe essere considerato fisso. Se i livelli di fattore disponibili sono visti come un campione casuale da una popolazione più ampia e le inferenze sono richieste per una popolazione più ampia, l'effetto dovrebbe essere casuale.
Ocram,
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.