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?