Estoy tratando de analizar algunos datos usando un modelo de efectos mixtos. Los datos que recopilé representan el peso de algunos animales jóvenes de diferentes genotipos a lo largo del tiempo.
Estoy usando el enfoque propuesto aquí: https://gribblelab.wordpress.com/2009/03/09/repeated-measures-anova-using-r/
En particular estoy usando la solución # 2
Entonces tengo algo como
require(nlme)
model <- lme(weight ~ time * Genotype, random = ~1|Animal/time,
data=weights)
av <- anova(model)
Ahora, me gustaría tener algunas comparaciones múltiples. Usando multcomp
puedo hacer:
require(multcomp)
comp.geno <- glht(model, linfct=mcp(Genotype="Tukey"))
print(summary(comp.geno))
Y, por supuesto, podría hacer lo mismo con el tiempo.
Tengo dos preguntas:
- ¿Cómo uso
mcp
para ver la interacción entre el tiempo y el genotipo? Cuando corro
glht
me sale esta advertencia:covariate interactions found -- default contrast might be inappropriate
Qué significa eso? ¿Puedo ignorarlo con seguridad? ¿O qué debo hacer para evitarlo?
EDITAR: Encontré este PDF que dice:
Debido a que es imposible determinar los parámetros de interés automáticamente en este caso, mcp () en multcomp generará por defecto comparaciones solo para los efectos principales, ignorando las covariables y las interacciones . Desde la versión 1.1-2, se puede especificar promediar los términos de interacción y las covariables usando los argumentos interaccion_average = TRUE y covariate_average = TRUE respectivamente, mientras que las versiones anteriores a 1.0-0 promediaron automáticamente sobre los términos de interacción. Sin embargo, sugerimos a los usuarios que escriban, manualmente, el conjunto de contrastes que desean.Se debe hacer esto siempre que haya dudas acerca de lo que miden los contrastes predeterminados, lo que generalmente ocurre en modelos con términos de interacción de orden superior. Nos referimos a Hsu (1996), Capítulo ~ 7, y Searle (1971), Capítulo ~ 7.3, para más discusiones y ejemplos sobre este tema.
No tengo acceso a esos libros, pero ¿tal vez alguien aquí tiene?
Respuestas:
Si
time
yGenotype
son predictores categóricos como parecen ser, y usted está interesado en comparar todos los pares de tiempo / genotipo entre sí, entonces puede crear una variable de interacción y usar contrastes de Tukey en ella:Si está interesado en otros contrastes, puede usar el hecho de que el
linfct
argumento puede tomar una matriz de coeficientes para los contrastes, de esta manera puede configurar exactamente las comparaciones que desee.EDITAR
Parece haber cierta preocupación en los comentarios de que el modelo equipado con el
TimeGeno
predictor es diferente del modelo original equipado con elTime * Genotype
predictor. Este no es el caso , los modelos son equivalentes. La única diferencia está en la parametrización de los efectos fijos, que se configura para facilitar el uso de laglht
función.He utilizado uno de los conjuntos de datos integrados (tiene Dieta en lugar de Genotipo) para demostrar que los dos enfoques tienen la misma probabilidad, valores pronosticados, etc.
La única diferencia es que las hipótesis son fáciles de probar. Por ejemplo, en el primer modelo es fácil probar si los dos predictores interactúan, en el segundo modelo no hay una prueba explícita para esto. Por otro lado, el efecto conjunto de los dos predictores es fácil de probar en el segundo modelo, pero no en el primero. Las otras hipótesis son comprobables, es solo más trabajo configurarlas.
fuente
glht
usa los grados de libertad dados en el modelo lme. No estoy seguro de que estos grados de libertad sean apropiados ...Animal/time
que ahora no es uno de los factores. ¿Realmente me pareceunderstand
esto?all.equal(resid(model1), resid(model2))
ver que son iguales antes de adivinar lo contrario? Solo la parametrización de efectos fijos es diferente.TimeDiet
no es un término de interacción pura, y no es equivalente aTime:Diet
, sino más bien aTime + Diet + Time:Diet
.