Я выполнил трехсторонние повторные измерения ANOVA; какие специальные анализы действительны?
Это полностью сбалансированный дизайн (2x2x2) с одним из факторов, имеющих повторное измерение внутри субъекта. Мне известны многовариантные подходы к повторным измерениям ANOVA в R, но мой первый инстинкт - перейти к простому стилю aov () ANOVA:
aov.repeated <- aov(DV ~ IV1 * IV2 * Time + Error(Subject/Time), data=data)
DV = переменная ответа
IV1 = независимая переменная 1 (2 уровня, A или B)
IV2 = независимая переменная 2 (2 уровня, да или нет)
IV3 = Время (2 уровня, До или После)
Субъект = ID субъекта (всего 40 предметов, 20 для каждого уровня IV1: nA = 20, nB = 20)
summary(aov.repeated)
Error: Subject
Df Sum Sq Mean Sq F value Pr(>F)
IV1 1 5969 5968.5 4.1302 0.049553 *
IV2 1 3445 3445.3 2.3842 0.131318
IV1:IV2 1 11400 11400.3 7.8890 0.007987 **
Residuals 36 52023 1445.1
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Error: Subject:Time
Df Sum Sq Mean Sq F value Pr(>F)
Time 1 149 148.5 0.1489 0.701906
IV1:Time 1 865 864.6 0.8666 0.358103
IV2:Time 1 10013 10012.8 10.0357 0.003125 **
IV1:IV2:Time 1 852 851.5 0.8535 0.361728
Residuals 36 35918 997.7
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
В качестве альтернативы я думал об использовании пакета nlme для ANOVA в стиле lme:
aov.repeated2 <- lme(DV ~ IV1 * IV2 * Time, random = ~1|Subject/Time, data=data)
summary(aov.repeated2)
Fixed effects: DV ~ IV1 * IV2 * Time
Value Std.Error DF t-value p-value
(Intercept) 99.2 11.05173 36 8.975972 0.0000
IV1 19.7 15.62950 36 1.260437 0.2156
IV2 65.9 15.62950 36 4.216385 0.0002 ***
Time 38.2 14.12603 36 2.704228 0.0104 *
IV1:IV2 -60.8 22.10346 36 -2.750701 0.0092 **
IV1:Time -26.2 19.97722 36 -1.311494 0.1980
IV2:Time -57.8 19.97722 36 -2.893295 0.0064 **
IV1:IV2:Time 26.1 28.25206 36 0.923826 0.3617
Мой первый инстинкт постфактум значительных двусторонних взаимодействий с Tukey контрастирует с использованием glht () из пакета multcomp:
data$IV1IV2int <- interaction(data$IV1, data$IV2)
data$IV2Timeint <- interaction(data$IV2, data$Time)
aov.IV1IV2int <- lme(DV ~ IV1IV2int, random = ~1|Subject/Time, data=data)
aov.IV2Timeint <- lme(DV ~ IV2Timeint, random = ~1|Subject/Time, data=data)
IV1IV2int.posthoc <- summary(glht(aov.IV1IV2int, linfct = mcp(IV1IV2int = "Tukey")))
IV2Timeint.posthoc <- summary(glht(aov.IV2Timeint, linfct = mcp(IV2Timeint = "Tukey")))
IV1IV2int.posthoc
#A.Yes - B.Yes == 0 0.94684
#B.No - B.Yes == 0 0.01095 *
#A.No - B.Yes == 0 0.98587 I don't care about this
#B.No - A.Yes == 0 0.05574 . I don't care about this
#A.No - A.Yes == 0 0.80785
#A.No - B.No == 0 0.00346 **
IV2Timeint.posthoc
#No.After - Yes.After == 0 0.0142 *
#Yes.Before - Yes.After == 0 0.0558 .
#No.Before - Yes.After == 0 0.5358 I don't care about this
#Yes.Before - No.After == 0 0.8144 I don't care about this
#No.Before - No.After == 0 0.1941
#No.Before - Yes.Before == 0 0.8616
Основная проблема, которую я вижу в этих специальных анализах, - это некоторые сравнения, которые бесполезны для моих гипотез.
Спасибо за любые предложения для соответствующего последующего анализа, спасибо.
Изменить: соответствующий вопрос и ответ, который указывает на тестирование ручных контрастных матриц
Error
термин aov()
таким образом, чтобы указать, что Time
это фактор внутри группы. От Барона, Error(subj/(color + shape))
похоже, используется такой же способ.
lme
модель, мне неясно, как правильно ее использовать /
. Как бы вы указали Time
в качестве фактора внутри группы, как в Error()
с aov()
?
/
используется для обозначения вложения (как это обычно наблюдается в эксперименте с расщепленными участками), в отличие от ее использования вError
терминах,aov()
где она в основном указывает на то, как построить страты ошибок .