El título lo dice todo, y estoy confundido. Lo siguiente ejecuta una medida repetida aov () en R, y ejecuta lo que pensé que era una llamada equivalente a lm (), pero devuelven diferentes residuales de error (aunque las sumas de cuadrados son las mismas).
Claramente, los valores residuales y ajustados de aov () son los que se usan en el modelo, porque sus sumas de cuadrados se suman a cada una de las sumas de cuadrados modelo / residuales reportadas en resumen (my.aov). ¿Cuáles son los modelos lineales reales que se aplican a un diseño de medidas repetidas?
set.seed(1)
# make data frame,
# 5 participants, with 2 experimental factors, each with 2 levels
# factor1 is A, B
# factor2 is 1, 2
DF <- data.frame(participant=factor(1:5), A.1=rnorm(5, 50, 20), A.2=rnorm(5, 100, 20), B.1=rnorm(5, 20, 20), B.2=rnorm(5, 50, 20))
# get our experimental conditions
conditions <- names(DF)[ names(DF) != "participant" ]
# reshape it for aov
DFlong <- reshape(DF, direction="long", varying=conditions, v.names="value", idvar="participant", times=conditions, timevar="group")
# make the conditions separate variables called factor1 and factor2
DFlong$factor1 <- factor( rep(c("A", "B"), each=10) )
DFlong$factor2 <- factor( rep(c(1, 2), each=5) )
# call aov
my.aov <- aov(value ~ factor1*factor2 + Error(participant / (factor1*factor2)), DFlong)
# similar for an lm() call
fit <- lm(value ~ factor1*factor2 + participant, DFlong)
# what's aov telling us?
summary(my.aov)
# check SS residuals
sum(residuals(fit)^2) # == 5945.668
# check they add up to the residuals from summary(my.aov)
2406.1 + 1744.1 + 1795.46 # == 5945.66
# all good so far, but how are the residuals in the aov calculated?
my.aov$"participant:factor1"$residuals
#clearly these are the ones used in the ANOVA:
sum(my.aov$"participant:factor1"$residuals ^ 2)
# this corresponds to the factor1 residuals here:
summary(my.aov)
# but they are different to the residuals reported from lm()
residuals(fit)
my.aov$"participant"$residuals
my.aov$"participant:factor1"$residuals
my.aov$"participant:factor1:factor2"$residuals
participant
, como enanova(lm(value ~ factor1*factor2*participant, DFlong))
Respuestas:
Una forma de pensar en ello es tratar la situación como una 3-factorial entre sujetos ANOVA con vías intravenosas
participant
,factor1
,factor2
, y un tamaño de celda de 1.anova(lm(value ~ factor1*factor2*participant, DFlong))
calcula toda la SS para todos los efectos en este ANOVA de 3 vías (3 Efectos principales, 3 interacciones de primer orden, 1 interacción de segundo orden). Como solo hay 1 persona en cada celda, el modelo completo no tiene errores, y la llamada anterior aanova()
no puede calcular las pruebas F. Pero las SS son las mismas que en el factorial 2 dentro del diseño.¿Cómo se
anova()
calcula realmente el SS para un efecto? Mediante comparaciones de modelos secuenciales (tipo I): se ajusta a un modelo restringido sin el efecto en cuestión y a un modelo sin restricciones que incluye ese efecto. El SS asociado con este efecto es la diferencia en el error SS entre ambos modelos.Ahora verifiquemos el efecto SS asociado con la interacción
id:IV1
restando el error SS del modelo no restringido del error SS del modelo restringido.Ahora que tiene todos los efectos "en bruto" SS, puede construir las pruebas dentro de los sujetos simplemente eligiendo el término de error correcto para probar un efecto SS. Por ejemplo, pruebe el efecto SS
factor1
contra el efecto de interacción SS departicipant:factor1
.Para una excelente introducción al enfoque de comparación de modelos, recomiendo Maxwell y Delaney (2004). Diseño de experimentos y análisis de datos.
fuente