2 x 3 Mixed Design ANOVA
In diesem Beispiel soll in einem fiktiven Datensatz von \(n=50\) Personen untersucht werden, inwiefern das Wohlbefinden sich über drei (gleichabständige) Messzeitpunkte hinweg verändert, und zwar zum einen in einer Therapiegruppe \((n=25)\) und zum anderen in einer Kontrollgruppe \((n=25)\).
Von Interesse ist daher hauptsächlich die Interaktion von (Therapie-)Bedingung und Messzeitpunkt, da sie die Unterschiedlichkeit der Verläufe zwischen beiden Gruppen testet und damit die Wirksamkeit der therapeutischen Intervention.
Packages laden
A) Daten
1) Daten einlesen und konvertieren
Lesen Sie den Datensatz therapie
ein und konvertieren Sie die Variablen id
und bedingung
zu Faktoren:
2) Datensatz transformieren
Führen Sie eine wide-to-long Transformation durch und bilden Sie damit einen Dataframe therapie_long
mit einer Variable messzeitpunkt
und der (Outcome-)Variablen wohlbefinden
.
Definieren Sie die Variable messzeitpunkt
als Faktor mit den Faktorstufen “beginn”, “mitte” und “ende” (in dieser Reihenfolge).
Zusammenfassung mit summary()
:
3) Mittelwerte berechnen
Berechnen Sie mittels group_by()
und summarize()
die Mittelwerte von wohlbefinden
getrennt nach bedingung
und messzeitpunkt
.
B) 2 x 3 Mixed Design ANOVA mit afex und emmeans
1) Mixed Design ANOVA
Führen Sie die Mixed Design ANOVA mit aov_4()
durch.
Für die Effektstärke Generalized Eta-Square (ges) brauchen wir noch den ANOVA-Table:
Hier werden standardmässig (unabhängig vom Ergebnis des Mauchly-Tests) die Greenhouse-Geisser(GG)-korrigierten F-Tests berichtet.
Für den Levene-Test benutzen wir leveneTest()
aus car:
2) afex-Plot der Mittelwerte
Für den Plot verwenden wir die Funktion afex_plot(object, x)
.
Als erstes Argument der Funktion wird das Ergebnisobjekt der ANOVA benötigt. Für das Argument x =
muss die Gruppierungsvariable/Faktor angegeben werden. Für das Argument trace =
muss derjenige Faktor angegeben werden, für den separate Linien (mit Legende) ausgegeben werden sollen.
In einem Mixed-Design wie unserem ist es am sinnvollsten, den Faktor messzeitpunkt
auf der X-Achse darzustellen und getrennte Linien für den Between-Faktor bedingung
zu verwenden. Der Legendentitel kann mit dem Argument legend.title
angepasst werden.
Wir erstellen mit afex_plot()
ein ggplot-Objekt, welches wir weiter verändern können:
Verschönern Sie den Plot, indem Sie folgende Elemente hinzufügen:
3) Bedingte Haupteffekte
Bedingte Haupteffekte erhalten wir mit der Funktion joint_tests(object, by)
aus emmeans
. Als erstes Argument wird das afex
-Ergebnisobjekt der ANOVA benötigt. Für das Argument by
muss derjenige Faktor angegeben werden, getrennt für dessen Stufen wir die bedingten Haupteffekte des jeweils anderen Faktors erhalten wollen.
Hier interessieren wir uns für die bedingten Haupteffekte des within-subject Faktors messzeitpunkt
(getrennt für - by
- die Stufen des between-subjects Faktors bedingung
).
4) Post-hoc-Einzelvergleiche für die bedingten Haupteffekte
Die bedingten Haupteffekte zeigen nur, dass es insgesamt signifikante Unterschiede zwischen den Messzeitpunkten gibt. Jetzt wollen wir noch wissen, welche Messzeitpunkten sich jeweils signifikant unterscheiden (und welche nicht).
Um diese Einzelvergleiche/Kontraste durchführen zu können, muss zuerst ein emmeans
-Objekt (hier: compar
) erstellt werden, und zwar für die Interaktion messzeitpunkt * bedingung
:
Post-hoc-Einzelvergleiche zwischen den Zeitpunkten (simple = "messzeitpunkt"
) getrennt für die beiden Bedingungen:
Plots für diese Vergleiche:
5) Kontrastanalysen für die bedingten Haupteffekte
Wir wollen nun zusätzlich zu den Einzelvergleichen auch noch Kontrastanalysen für den Faktor messzeitpunkt
innerhalb beider Bedingungen durchführen. Dazu muss zuerst nochmal ein emmeans
-Objekt (hier: contr
) erstellt werden (jetzt explizit für genau diese bedingten Haupteffekte):
Wir wollen das Wohlbefinden zu beginn
mit dem Durchschnitt des Wohlbefindens von mitte
und ende
vergleichen. Dazu muss ein Kontrast (hier: kontrast
) spezifiziert werden und dieser dann mit contrast()
evaluiert werden:
Zuletzt wollen wir noch Polynomiale Trendkontraste in Bezug auf den Zeitverlauf getrennt für die beiden Bedingungen testen. Dazu können wir dasselbe emmeans
-Objekt benutzen und als Kontrast-Methode poly
spezifizieren:
Reuse
Citation
@online{mayer,
author = {Mayer, Boris},
title = {2 x 3 {Mixed} {Design} {ANOVA}},
url = {https://psylu.github.io/anova_demo/pages/anova_demo_mixed.html},
langid = {en}
}