Название говорит само за себя, и я в замешательстве. Следующее запускает повторные измерения aov () в R и выполняет то, что я думал, было эквивалентным вызовом lm (), но они возвращают различные остатки ошибок (хотя суммы квадратов одинаковы).
Ясно, что остатки и подогнанные значения из aov () - это те, которые используются в модели, потому что их суммы квадратов суммируются с каждой из сумм модели / остатка квадратов, представленных в итоге (my.aov). Итак, каковы действительные линейные модели, которые применяются к дизайну повторных измерений?
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
, как вanova(lm(value ~ factor1*factor2*participant, DFlong))
Ответы:
Один из способов думать об этом, чтобы рассматривать ситуацию как 3-факторные между субъектами ANOVA с капельницей
participant
,factor1
,factor2
и размером ячейки 1.anova(lm(value ~ factor1*factor2*participant, DFlong))
высчитывает все SS для всех эффектов в этом 3-полосной ANOVA (3 основных эффекты, 3 взаимодействия первого порядка, 1 взаимодействие второго порядка). Поскольку в каждой ячейке находится только 1 человек, полная модель не содержит ошибок, и приведенный выше вызовanova()
не может вычислить F-тесты. Но СС такие же, как в 2-х факторных в рамках дизайна.Как на
anova()
самом деле вычислить СС для эффекта? Посредством последовательного сравнения моделей (тип I): он подходит для ограниченной модели без рассматриваемого эффекта и неограниченной модели, которая включает этот эффект. СС, связанная с этим эффектом, представляет собой разницу в ошибке СС между обеими моделями.Теперь давайте проверим эффект SS, связанный с взаимодействием
id:IV1
, вычитая ошибку SS неограниченной модели из ошибки SS ограниченной модели.Теперь, когда у вас есть все «сырые» эффекты SS, вы можете создавать внутрисубъектные тесты, просто выбрав правильный термин ошибки, чтобы проверить SS эффекта. Например, проверить эффект SS для
factor1
против эффекта взаимодействия SSparticipant:factor1
.Для отличного знакомства с подходом сравнения моделей я рекомендую Maxwell & Delaney (2004). Разработка экспериментов и анализ данных.
источник