Ich habe eine Drei-Wege-ANOVA mit wiederholten Messungen durchgeführt. Welche Post-hoc-Analysen sind gültig?
Dies ist ein vollständig ausgewogenes Design (2x2x2), bei dem einer der Faktoren eine wiederholte Messung innerhalb der Probanden aufweist. Ich kenne multivariate Ansätze für ANOVA mit wiederholten Messungen in R, aber mein erster Instinkt ist, mit einem einfachen aov () - Stil von ANOVA fortzufahren:
aov.repeated <- aov(DV ~ IV1 * IV2 * Time + Error(Subject/Time), data=data)
DV = Antwortvariable
IV1 = unabhängige Variable 1 (2 Ebenen, A oder B)
IV2 = unabhängige Variable 2 (2 Ebenen, Ja oder Nein)
IV3 = Zeit (2 Ebenen, vorher oder nachher)
Subjekt = Subjekt-ID (40 Subjekte insgesamt, 20 für jede Stufe von 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
Alternativ habe ich darüber nachgedacht, das nlme-Paket für eine ANOVA im lme-Stil zu verwenden:
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
Mein erster Instinkt post-hoc von signifikanten 2-Wege-Interaktionen mit Tukey-Kontrasten unter Verwendung von glht () aus dem Multcomp-Paket:
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
Das Hauptproblem, das ich bei diesen Post-hoc-Analysen sehe, sind einige Vergleiche, die für meine Hypothesen nicht nützlich sind.
Vorschläge für eine angemessene Post-hoc-Analyse werden sehr geschätzt, danke.
Bearbeiten: Relevante Frage und Antwort, die auf das Testen manueller Kontrastmatrizen hinweist
Error
Begriff auf aov()
diese Weise formatiert , um anzugeben, dass dies Time
der Faktor innerhalb der Gruppen ist. Von Baron Error(subj/(color + shape))
scheint in gleicher Weise verwendet zu werden.
lme
Modell aufgerufen haben. Ich bin mir nicht sicher , wie ich es richtig benutze /
. Wie würden Sie festlegen , Time
wie die innerhalb der Gruppen Faktor wie in Error()
mit aov()
?
/
wird verwendet, um die Verschachtelung zu kennzeichnen (wie es normalerweise in einem Split-Plot-Experiment zu sehen ist), im Gegensatz zu seiner Verwendung in demError
Begriff, inaov()
dem hauptsächlich angegeben wird, wie Fehlerschichten erstellt werden .