2 x 3 Mixed Design ANOVA

Author

Boris Mayer

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

BibTeX 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}
}
For attribution, please cite this work as:
Mayer, Boris. n.d. “2 x 3 Mixed Design ANOVA.” https://psylu.github.io/anova_demo/pages/anova_demo_mixed.html.