Come ottenere un valore p "complessivo" e una dimensione dell'effetto per un fattore categoriale in un modello misto (lme4)?


28

Vorrei ottenere un valore p e una dimensione dell'effetto di una variabile categoriale indipendente (con più livelli) - che è "complessiva" e non per ogni livello separatamente, come è l'output normale di lme4in R. È proprio come la cosa che la gente riferisce quando esegue un ANOVA.

Come posso ottenerlo?


Quali statistiche vuoi esattamente? È possibile utilizzare la anova()funzione per ottenere una tabella anova con modelli misti lineari proprio come con i modelli lineari.
smillig

Ho provato anova () ma mi dà Df, Sum Sq, Mean Sq e valore F. Non vedo la dimensione dell'effetto e il valore p. Ne hai idea?
user3288202

1
Per dimensione dell'effetto, intendi qualcosa di simile a ? Per quanto riguarda i valori p, c'è un lungo e sostanziale dibattito sulla loro stima e sulla loro attuazione . Dai un'occhiata alla discussione in questa domanda per maggiori dettagli. R2lme4
smillig

Grazie per il link, Smilig. Ciò significa che a causa di un problema con il calcolo del valore p, anche la dimensione dell'effetto del fattore è un problema?
user3288202

Non sono problemi direttamente correlati. Tuttavia, è necessario tenere presente che un modello misto lineare non si comporta esattamente come un modello lineare senza effetti casuali, pertanto una misura che può essere appropriata per il modello lineare non si generalizza necessariamente a modelli misti.
smillig

Risposte:


48

Entrambi i concetti citati (valori di p e dimensioni dell'effetto di modelli misti lineari) presentano problemi intrinseci. Per quanto riguarda le dimensioni dell'effetto , citando Doug Bates, l'autore originale di lme4,

Supponendo che si voglia definire una misura , penso che si potrebbe argomentare per trattare la somma residua penalizzata di quadrati da un modello misto lineare nello stesso modo in cui consideriamo la somma residua di quadrati da un modello lineare. Oppure si potrebbe usare solo la somma residua di quadrati senza la penalità o la somma minima residua di quadrati ottenibili da un determinato insieme di termini, che corrisponde a una matrice di precisione infinita. Non lo so, davvero. Dipende da cosa stai cercando di caratterizzare.R2

Per ulteriori informazioni, puoi guardare questo thread , questo thread e questo messaggio . Fondamentalmente, il problema è che non esiste un metodo concordato per l'inclusione e la decomposizione della varianza dagli effetti casuali nel modello. Tuttavia, ci sono alcuni standard che vengono utilizzati. Se dai un'occhiata al Wiki creato per / dalla mailing list di modelli misti r-sig , ci sono un paio di approcci elencati.

Uno dei metodi suggeriti esamina la correlazione tra i valori adattati e quelli osservati. Questo può essere implementato in R come suggerito da Jarrett Byrnes in uno di quei thread:

r2.corr.mer <- function(m) {
  lmfit <-  lm(model.response(model.frame(m)) ~ fitted(m))
  summary(lmfit)$r.squared
}

Ad esempio, supponiamo che stimiamo il seguente modello misto lineare:

set.seed(1)
d <- data.frame(y = rnorm(250), x = rnorm(250), z = rnorm(250),
                g = sample(letters[1:4], 250, replace=T)       )
library(lme4)
summary(fm1 <- lmer(y ~ x + (z | g), data=d))
# Linear mixed model fit by REML ['lmerMod']
# Formula: y ~ x + (z | g)
#    Data: d
# REML criterion at convergence: 744.4
# 
# Scaled residuals: 
#     Min      1Q  Median      3Q     Max 
# -2.7808 -0.6123 -0.0244  0.6330  3.5374 
# 
# Random effects:
#  Groups   Name        Variance Std.Dev. Corr 
#  g        (Intercept) 0.006218 0.07885       
#           z           0.001318 0.03631  -1.00
#  Residual             1.121439 1.05898       
# Number of obs: 250, groups: g, 4
# 
# Fixed effects:
#             Estimate Std. Error t value
# (Intercept)  0.02180    0.07795   0.280
# x            0.04446    0.06980   0.637
# 
# Correlation of Fixed Effects:
#   (Intr)
# x -0.005

Possiamo calcolare la dimensione dell'effetto usando la funzione sopra definita:

r2.corr.mer(fm1)
# [1] 0.0160841

Un'alternativa simile è raccomandata in un documento di Ronghui Xu , indicato come , e può essere calcolato in R semplicemente:Ω02

1-var(residuals(fm1))/(var(model.response(model.frame(fm1))))
# [1] 0.01173721  # Usually, it would be even closer to the value above

Per quanto riguarda i valori di p , questo è un problema molto più controversa (almeno nella R / lme4comunità). Vedi le discussioni nelle domande qui , qui e qui, tra molte altre. Facendo nuovamente riferimento alla pagina Wiki, ci sono alcuni approcci per testare le ipotesi sugli effetti nei modelli misti lineari. Elencato dal "peggiore al migliore" (secondo gli autori della pagina Wiki che credo includa Doug Bates e Ben Bolker che contribuisce molto qui):

  • Test Z di Wald
  • Per LMM bilanciati e annidati in cui è possibile calcolare df: Wald t-test
  • Test del rapporto di verosimiglianza, impostando il modello in modo che il parametro possa essere isolato / eliminato (tramite anovao drop1) oppure tramite il calcolo dei profili di verosimiglianza
  • MCMC o intervalli di confidenza bootstrap parametrici

Raccomandano l'approccio di campionamento della catena Markov di Monte Carlo ed elencano anche una serie di possibilità per attuare questo da approcci pseudo e completamente bayesiani, elencati di seguito.

Pseudo-Bayesiano:

  • Campionamento post-hoc, in genere (1) assumendo priori piatti e (2) a partire dall'MLE, possibilmente utilizzando la stima approssimativa della varianza-covarianza per scegliere una distribuzione candidata
  • Via mcmcsamp(se disponibile per il tuo problema: ad esempio LMM con semplici effetti casuali - non GLMM o complessi effetti casuali)
    Via pvals.fncnel languageRpacchetto, un wrapper per mcmcsamp)
  • In AD Model Builder, eventualmente tramite il glmmADMBpacchetto (utilizzare l' mcmc=TRUEopzione) o il R2admbpacchetto (scrivere la propria definizione del modello in AD Model Builder) o al di fuori di R
  • Tramite la simfunzione dal armpacchetto (simula il posteriore solo per i coefficienti beta (ad effetto fisso)

Approcci completamente bayesiani:

  • Tramite il MCMCglmmpacchetto
  • Utilizzo glmmBUGS(un'interfaccia wrapper / R di WinBUGS )
  • Utilizzando JAGS / WinBUGS / OpenBUGS ecc., Tramite i pacchetti rjags/ r2jags/ R2WinBUGS/BRugs

Per motivi di illustrazione per mostrare come potrebbe apparire, di seguito è una MCMCglmmstima che utilizza il MCMCglmmpacchetto che vedrai produce risultati simili al modello sopra e ha una sorta di valori p bayesiani:

library(MCMCglmm)
summary(fm2 <- MCMCglmm(y ~ x, random=~us(z):g, data=d))
# Iterations = 3001:12991
# Thinning interval  = 10
#  Sample size  = 1000 
# 
#  DIC: 697.7438 
# 
#  G-structure:  ~us(z):g
# 
#       post.mean  l-95% CI u-95% CI eff.samp
# z:z.g 0.0004363 1.586e-17 0.001268    397.6
# 
#  R-structure:  ~units
# 
#       post.mean l-95% CI u-95% CI eff.samp
# units    0.9466   0.7926    1.123     1000
# 
#  Location effects: y ~ x 
# 
#             post.mean l-95% CI u-95% CI eff.samp pMCMC
# (Intercept)  -0.04936 -0.17176  0.07502     1000 0.424
# x            -0.07955 -0.19648  0.05811     1000 0.214

Spero che questo aiuti un po '. Penso che il miglior consiglio per qualcuno che inizi con modelli misti lineari e cerchi di stimarli in R sia quello di leggere le domande frequenti su Wiki da cui è stata ricavata la maggior parte di queste informazioni. È una risorsa eccellente per tutti i tipi di temi di effetti misti, da quelli di base a quelli avanzati, dalla modellazione alla trama.


Grazie mille. Quindi potrei non riportare la dimensione dell'effetto per i parametri generali.
user3288202

r2

3
+6, straordinariamente chiaro, completo e accuratamente annotato.
gung - Ripristina Monica

1
inoltre, puoi dare un'occhiata al pacchetto afex e in particolare alla funzione mista. vedi qui
inizio

6

Per quanto riguarda il calcolo dei valori di significatività ( p ), Luke (2016) La valutazione della significatività nei modelli lineari a effetti misti in R riporta che il metodo ottimale è l'approssimazione di Kenward-Roger o Satterthwaite per gradi di libertà (disponibile in R con pacchetti come lmerTesto afex).

Astratto

I modelli a effetti misti vengono utilizzati sempre più frequentemente nell'analisi di dati sperimentali. Tuttavia, nel pacchetto lme4 in R gli standard per valutare la significatività degli effetti fissi in questi modelli (cioè ottenere valori p) sono piuttosto vaghi. Vi sono buone ragioni per questo, ma poiché i ricercatori che utilizzano questi modelli sono tenuti in molti casi a riportare valori p, è necessario un metodo per valutare il significato dell'output del modello. Questo documento riporta i risultati delle simulazioni che mostrano che i due metodi più comuni per valutare la significatività, usando i test del rapporto di verosimiglianza e applicando la distribuzione z ai valori di Wald t dall'output del modello (t-as-z), sono in qualche modo anti-conservativi, soprattutto per campioni di dimensioni inferiori. Altri metodi per valutare la significatività,I risultati di queste simulazioni suggeriscono che i tassi di errore di Tipo 1 sono più vicini a .05 quando i modelli sono montati usando REML e i valori di p sono derivati ​​usando le approssimazioni Kenward-Roger o Satterthwaite, poiché entrambe queste approssimazioni hanno prodotto tassi di errore di Tipo 1 accettabili anche per i più piccoli campioni.

(enfasi aggiunta)


4
+1 Grazie per aver condiviso questo link. Commenterò brevemente che l'approssimazione Kenward-Roger è disponibile nel lmerTestpacchetto.
ameba dice di reintegrare Monica il

5

Io uso il lmerTestpacchetto. Ciò include convenientemente una stima del valore p anova()nell'output per le mie analisi MLM, ma non fornisce una dimensione dell'effetto per i motivi indicati in altri post qui.


1
Nel mio caso, preferisco il confronto a coppie usando lsmeans in quanto mi dà tutte le coppie di contrasti inclusi i valori di p. Se uso lmerTest dovrò eseguire il modello sei volte con diverse linee di base per vedere tutte le coppie di contrasti.
user3288202
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.