Tiêu đề nói lên tất cả, và tôi bối rối. Sau đây chạy một số đo lặp lại aov () trong R và chạy những gì tôi nghĩ là một cuộc gọi lm () tương đương, nhưng chúng trả về các phần dư lỗi khác nhau (mặc dù các tổng bình phương là như nhau).
Rõ ràng phần dư và giá trị được trang bị từ aov () là giá trị được sử dụng trong mô hình, bởi vì tổng bình phương của chúng cộng với mỗi mô hình / tổng bình phương còn lại được báo cáo tóm tắt (my.aov). Vì vậy, các mô hình tuyến tính thực tế được áp dụng cho một thiết kế biện pháp lặp đi lặp lại là gì?
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
, như tronganova(lm(value ~ factor1*factor2*participant, DFlong))