Asumiendo que hay un punto en probar el supuesto de normalidad para anova (ver 1 y 2 )
¿Cómo se puede probar en R?
Esperaría hacer algo como:
## From Venables and Ripley (2002) p.165.
utils::data(npk, package="MASS")
npk.aovE <- aov(yield ~ N*P*K + Error(block), npk)
residuals(npk.aovE)
qqnorm(residuals(npk.aov))
Lo que no funciona, ya que los "residuos" no tienen un método (ni predicen, para el caso) para el caso de medidas repetidas anova.
Entonces, ¿qué se debe hacer en este caso?
¿Se pueden extraer los residuos del mismo modelo de ajuste sin el término Error? No estoy lo suficientemente familiarizado con la literatura para saber si esto es válido o no, gracias de antemano por cualquier sugerencia.
fuente
names(npk.aovE)
devuelve `[1]" (Intercepción) "" bloque "" Dentro ""Otra opción sería utilizar la
lme
función delnlme
paquete (y luego pasar el modelo obtenido aanova
). Se puede usarresiduals
en su salida.fuente
Creo que el supuesto de normalidad se puede evaluar para cada una de las medidas repetidas, antes de realizar el análisis. Cambiaría la forma del marco de datos para que cada columna corresponda a una medida repetida, y luego realice una prueba shapiro.test para cada una de esas columnas.
fuente
Venables y Ripley explican cómo hacer diagnósticos residuales para un diseño de medidas repetidas más adelante en su libro (p. 284), en la sección sobre efectos aleatorios y mixtos.
La función de residuos (o residuos) se implementa para los resultados de aov para cada estrato:
de su ejemplo:
oats.aov <- aov(Y ~ N + V + Error(B/V), data=oats, qr=T)
Para obtener los valores ajustados o residuales:
"Por lo tanto
fitted(oats.aov[[4]])
yresid(oats.aov[[4]])
son vectores de longitud 54 que representan los valores ajustados y los residuos desde el último estrato."Es importante destacar que agregan:
"No es posible asociarlos únicamente con las tramas del experimento original".
Para el diagnóstico, usan una proyección:
También muestran que el modelo se puede hacer usando lme, como lo publicó otro usuario.
fuente
Aquí hay dos opciones, con aov y con lme (creo que se prefiere la segunda):
El ejemplo original vino sin la interacción (
Lme.mod <- lme(Y ~ N * V, random = ~1 | B/V, data = oats)
) pero parece estar trabajando con él (y está produciendo resultados diferentes, por lo que está haciendo algo).Y eso es...
pero para completar:
1 - Los resúmenes del modelo
2 - La prueba de Tukey con medidas repetidas anova (¡3 horas buscando esto!).
3 - Las tramas de normalidad y homocedasticidad
fuente