Come stimare i componenti di varianza con lmer per i modelli con effetti casuali e confrontarli con i risultati lme


14

Ho eseguito un esperimento in cui ho cresciuto diverse famiglie provenienti da due diverse popolazioni di origine. Ad ogni famiglia è stato assegnato uno di due trattamenti. Dopo l'esperimento ho misurato diversi tratti su ciascun individuo. Per verificare l'effetto del trattamento o della fonte, nonché la loro interazione, ho usato un modello lineare a effetti misti con la famiglia come fattore casuale, ovvero

lme(fixed=Trait~Treatment*Source,random=~1|Family,method="ML")

finora tutto bene, ora devo calcolare i componenti della varianza relativa, ovvero la percentuale di variazione spiegata dal trattamento o dalla fonte, nonché dall'interazione.

Senza un effetto casuale, potrei facilmente usare le somme dei quadrati (SS) per calcolare la varianza spiegata da ciascun fattore. Ma per un modello misto (con stima ML), non ci sono SS, quindi ho pensato di poter usare anche il trattamento e la fonte come effetti casuali per stimare la varianza, cioè

lme(fixed=Trait~1,random=~(Treatment*Source)|Family, method="REML")

Tuttavia, in alcuni casi, lme non converge, quindi ho usato lmer dal pacchetto lme4:

lmer(Trait~1+(Treatment*Source|Family),data=DATA)

Dove estraggo le varianze dal modello usando la funzione di riepilogo:

model<-lmer(Trait~1+(Treatment*Source|Family),data=regrexpdat)
results<-VarCorr(model)
variances<-results[,3]

Ottengo gli stessi valori della funzione VarCorr. Uso quindi questi valori per calcolare la percentuale effettiva di variazione prendendo la somma come variazione totale.

Dove sto lottando è con l'interpretazione dei risultati dal modello iniziale di lme (con il trattamento e la fonte come effetti fissi) e il modello casuale per stimare i componenti della varianza (con il trattamento e la fonte come effetto casuale). Trovo nella maggior parte dei casi che la percentuale di varianza spiegata da ciascun fattore non corrisponda al significato dell'effetto fisso.

Ad esempio per il tratto HD, The iniziale lme suggerisce una tendenza all'interazione e un significato per il trattamento. Utilizzando una procedura a ritroso, trovo che il trattamento abbia una tendenza prossima a significativa. Tuttavia, stimando i componenti della varianza, trovo che Source abbia la varianza più alta, pari al 26,7% della varianza totale.

Lme:

anova(lme(fixed=HD~as.factor(Treatment)*as.factor(Source),random=~1|as.factor(Family),method="ML",data=test),type="m")
                                      numDF denDF  F-value p-value
(Intercept)                                1   426 0.044523  0.8330
as.factor(Treatment)                       1   426 5.935189  0.0153
as.factor(Source)                          1    11 0.042662  0.8401
as.factor(Treatment):as.factor(Source)     1   426 3.754112  0.0533

E il lmer:

summary(lmer(HD~1+(as.factor(Treatment)*as.factor(Source)|Family),data=regrexpdat))
Linear mixed model fit by REML 
Formula: HD ~ 1 + (as.factor(Treatment) * as.factor(Source) | Family) 
   Data: regrexpdat 
    AIC    BIC logLik deviance REMLdev
 -103.5 -54.43  63.75   -132.5  -127.5
Random effects:
 Groups   Name                                      Variance  Std.Dev. Corr                 
 Family   (Intercept)                               0.0113276 0.106431                      
          as.factor(Treatment)                      0.0063710 0.079819  0.405               
          as.factor(Source)                         0.0235294 0.153393 -0.134 -0.157        
          as.factor(Treatment)L:as.factor(Source)   0.0076353 0.087380 -0.578 -0.589 -0.585 
 Residual                                           0.0394610 0.198648                      
Number of obs: 441, groups: Family, 13

Fixed effects:
            Estimate Std. Error t value
(Intercept) -0.02740    0.03237  -0.846

Quindi la mia domanda è: è corretto quello che sto facendo? O dovrei usare un altro modo per stimare la quantità di varianza spiegata da ciascun fattore (ad es. Trattamento, fonte e loro interazione). Ad esempio, le dimensioni dell'effetto sarebbero un modo più appropriato di procedere?


Il fattore di trattamento ha 40 volte più gradi di libertà del fattore sorgente (pseudoreplicazione?). Ciò indubbiamente sta riducendo il valore P del trattamento.

Risposte:


1

Un modo comune per determinare il contributo relativo di ciascun fattore a un modello è rimuovere il fattore e confrontare la probabilità relativa con qualcosa come un test chi-quadrato:

pchisq(logLik(model1) - logLik(model2), 1)

Poiché il modo in cui le probabilità vengono calcolate tra le funzioni può essere leggermente diverso, in genere le confronterò solo con lo stesso metodo.


1
non dovrebbe essere 1-pchisq(logLik(model1) - logLik(model2), 1)?
user81411
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.