¿Alguien puede decirme la diferencia entre usar aov()
y lme()
analizar datos longitudinales y cómo interpretar los resultados de estos dos métodos?
A continuación, se analiza el mismo conjunto de datos usando aov()
y lme()
y tengo 2 resultados diferentes. Con aov()
, obtuve un resultado significativo en la interacción tiempo por tratamiento, pero ajustando un modelo lineal mixto, la interacción tiempo por tratamiento es insignificante.
> UOP.kg.aov <- aov(UOP.kg~time*treat+Error(id), raw3.42)
> summary(UOP.kg.aov)
Error: id
Df Sum Sq Mean Sq F value Pr(>F)
treat 1 0.142 0.1421 0.0377 0.8471
Residuals 39 147.129 3.7725
Error: Within
Df Sum Sq Mean Sq F value Pr(>F)
time 1 194.087 194.087 534.3542 < 2e-16 ***
time:treat 1 2.077 2.077 5.7197 0.01792 *
Residuals 162 58.841 0.363
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> UOP.kg.lme <- lme(UOP.kg~time*treat, random=list(id=pdDiag(~time)),
na.action=na.omit, raw3.42)
> summary(UOP.kg.lme)
Linear mixed-effects model fit by REML
Data: raw3.42
AIC BIC logLik
225.7806 248.9037 -105.8903
Random effects:
Formula: ~time | id
Structure: Diagonal
(Intercept) time Residual
StdDev: 0.6817425 0.5121545 0.1780466
Fixed effects: UOP.kg ~ time + treat + time:treat
Value Std.Error DF t-value p-value
(Intercept) 0.5901420 0.1480515 162 3.986059 0.0001
time 0.8623864 0.1104533 162 7.807701 0.0000
treat -0.2144487 0.2174843 39 -0.986042 0.3302
time:treat 0.1979578 0.1622534 162 1.220053 0.2242
Correlation:
(Intr) time treat
time -0.023
treat -0.681 0.016
time:treat 0.016 -0.681 -0.023
Standardized Within-Group Residuals:
Min Q1 Med Q3 Max
-3.198315285 -0.384858426 0.002705899 0.404637305 2.049705655
Number of Observations: 205
Number of Groups: 41
fuente
Error(Subject/age)
, ya que busqué algún tutorial, diciendo que eso/age
significa medidas repetidas a lo largo de ese factor? ¿Es esto lo mismo que tuError(Subject)
? Otra pregunta es: para datos no balanceados,aov
ylme
puede tener resultados diferentes, ¿verdad?Solo agregaría que es posible que desee instalar el
car
paquete y usar elAnova()
que proporciona este paquete en lugar deanova()
porqueaov()
y paralm()
objetos, la vainillaanova()
usa una suma secuencial de cuadrados, lo que da el resultado incorrecto para tamaños de muestra desiguales, mientras que paralme()
el tipo -I o la suma de cuadrados de tipo III dependiendo deltype
argumento, pero la suma de cuadrados de tipo III viola la marginalidad, es decir, trata las interacciones de manera diferente a los efectos principales.La lista de R-help no tiene nada bueno que decir sobre las sumas de cuadrados de tipo I y tipo III, ¡y sin embargo, estas son las únicas opciones! Imagínate.Editar: En realidad, parece que el tipo II no es válido si hay un término de interacción significativo, y parece que lo mejor que alguien puede hacer es usar el tipo III cuando hay interacciones. Me dieron una respuesta a una de mis propias preguntas que a su vez me apuntó a esta publicación .
fuente
Me parece que tiene varias medidas para cada identificación en cada momento. Debe agregar estos para el aov porque aumenta injustamente el poder en ese análisis. No estoy diciendo que hacer el agregado hará que los resultados sean los mismos, pero debería hacerlos más similares.
Luego ejecute su modelo aov como antes de reemplazar los datos con dat.agg.
Además, creo que anova (lme) es más lo que quieres hacer para comparar los resultados. La dirección y la magnitud de un efecto no es lo mismo que la relación entre la varianza del modelo y el error.
(Por cierto, si haces el análisis de lme en los datos agregados, que no deberías, y compruebas anova (lme) obtendrás casi los mismos resultados que aov)
fuente