Zunächst installieren wir Pakete, die wir benötigen, um die folgenden Analysen durchzuführen.
if (!require('rstudioapi')) install.packages('rstudioapi')
if (!require('car')) install.packages('car')
Jetzt laden wir die installierten Pakete. Das Paket “rstudiopai”
enthält die Funktion getActiveDocumentContext()
, die es uns
später erleichtert, das Working Directory zu setzen. Das Paket “car”
benötigen wir, da es eine Funktion namens Anova()
enthält,
mit der wir multivariate Varianzanalysen (MANOVAs) berechnen können.
library(rstudioapi)
library(car)
Nun schalten wir die wissenschaftliche Notation ab, um möglichst viele Nachkommastellen im Output zu erhalten (das kann vor allem für p-Werte wichtig sein, die sonst schwer zu interpretieren sind).
options(scipen=999)
Hier setzen wir das Working Directory auf den Pfad, in dem sich auch dieses Notebook befindet. Dadurch findet R alle nötigen Dateien, so lange sich diese im selben Ordner wie dieses Notebook auf Ihrem Rechner befinden.
setwd(dirname(getActiveDocumentContext()$path))
Wir wollen uns nun anschauen, wie mittels der multivariaten Varianzanalyse (MANOVA) Messwiederholungspläne angemessen ausgewertet werden können. Dazu laden wir den Datensatz “EmoGed.RData” ein (erste Zeile) und lassen ihn uns ausgeben (zweite Zeile), um ihn zu inspizieren.
load('EmoGed.RData')
EmoGed
Der Datensatz enthält die Wiedererkennungsleistung (gemessen im PR-Maß) für Gesichter, die mit unterschiedlichen emotionalen Ausdrücken präsentiert wurden. Uns interessieren zunächst die Variablen PR_Neutral, PR_Freude und PR_Angst.
Wir wollen nun wieder das Paket “car” nutzen, das wir aus dem vorherigen Kapitel bereits kennen, um eine einfaktorielle Varianzanalyse zu berechnen. Wie wir bereits aus dem vorherigen Kapitel wissen, müssen wir dazu zunächst eine Regression fitten, bei der unsere drei Variablen als abhängige Variablen eingehen. Da wir keinen Zwischensubjektfaktor haben, lassen wir wieder eine Regression nur mit Intercept (in der Formel nur eine 1 hinter der Tilde) berechnen. Die drei Variablen geben wir hier in einer anderen Reihenfolge ein als sie im Datensatz vorliegen, um uns die spätere Analyse zu vereinfachen (wir werden später sehen, warum das eine Rolle spielt).
reg_emo <- lm(formula = as.matrix(EmoGed[,c('PR_Freude', 'PR_Angst', 'PR_Neutral')]) ~ 1, data = EmoGed)
reg_emo
##
## Call:
## lm(formula = as.matrix(EmoGed[, c("PR_Freude", "PR_Angst", "PR_Neutral")]) ~
## 1, data = EmoGed)
##
## Coefficients:
## PR_Freude PR_Angst PR_Neutral
## (Intercept) 0.3109 0.3194 0.2429
Nun müssen wir dem Paket “car” noch mitteilen, dass die drei
Variablen PR_Neutral, PR_Freude, und PR_Angst die drei Faktorstufen
eines Messwiederholungsfaktors bilden, welchen wir “emotion” nennen. Wir
tun dies mittels der Funktion factor()
. Dieser Funktion
übergeben wir zwei Argumente:
Sie fragen sich wahrscheinlich, warum wir das Argument “levels” überhaupt benötigen. Kann R nicht auch ohne das Argument erkennen, dass es sich offensichtlich bei “Freude”, “Angst” und “Neutral” um die Faktorstufen handelt? Diese Frage ist vollkommen berechtigt. Tatsächlich würde der Code unten auch funktionieren, ohne das Argument “levels” extra einzugeben. Dann würde R die Faktorstufen aber alphabetisch sortieren. Wie wir oben aber bereits angedeutet haben, wollen wir die spezfische Reihenfolge “Freude”, “Angst”, “Neutral” der Faktorstufen beibehalten (wie gesagt, wir werden später sehen, warum). Wie wir sehen, wenn wir uns den neu gebildeten Faktor “emotion” in der zweiten Zeile des untenstehenden Codes ausgeben lassen, wird die gewünschte Reihenfolge beibehalten, wenn wir das Argument “levels” explizit angeben.
emotion <- factor(x = c('Freude', 'Angst', 'Neutral'), levels = c('Freude' ,'Angst', 'Neutral'))
emotion
## [1] Freude Angst Neutral
## Levels: Freude Angst Neutral
Wir bilden zusätzlich auf Basis des neu erstellten Faktors “emotion”,
mittels der Funktion data.frame()
einen Data-Frame mit
einer Spalte, den wir “emotion_df” nennen. Wir lassen uns diesen
Data-Frame anschließend auch anzeigen. Wie wir gleich sehen werden,
benötigen wir diesen Data-Frame ebenfalls, um eine
Messwiederholungs-ANOVA mit “car” berechnen zu können.
emotion_df <- data.frame(emotion)
emotion_df
Nun können wir endlich die bereits bekannte Funktion
Anova()
aufrufen. Um eine Messwiederholungs-ANOVA
anzufordern, ist der Aufruf allerdings etwas komplizierter, als eine
“klassische” MANOVA mit einem Set aus Variablen zu berechnen. Wir müssen
der Funktion die folgenden Argumente übergeben:
Anova()
wissen,
welche Haupteffekte und Interaktionen in die ANOVA eingehen sollen.
Wichtig ist, dass die Funktion hier eine Tilde gefolgt von den
eingehenden Haupteffekten und Interaktionen erwartet. Wir haben in
diesem Fall nur den Faktor “emotion”.Wir packen die Ergebnisse unserer Messwiederholungs-ANOVA in ein
Objekt namens “anova_emo” und lassen uns die Ergebnisse anschließend
mittels der Funktion summary()
ausgeben.
anova_emo <- Anova(mod = reg_emo, idata = emotion_df, idesign = ~emotion, icontrasts = c('contr.helmert','contr.poly'))
## Note: model has only an intercept; equivalent type-III tests substituted.
summary(anova_emo)
## Warning in summary.Anova.mlm(anova_emo): HF eps > 1 treated as 1
##
## Type III Repeated Measures MANOVA Tests:
##
## ------------------------------------------
##
## Term: (Intercept)
##
## Response transformation matrix:
## (Intercept)
## PR_Freude 1
## PR_Angst 1
## PR_Neutral 1
##
## Sum of squares and products for the hypothesis:
## (Intercept)
## (Intercept) 190.5946
##
## Multivariate Tests: (Intercept)
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 1 0.854489 1462.209 1 249 < 0.000000000000000222 ***
## Wilks 1 0.145511 1462.209 1 249 < 0.000000000000000222 ***
## Hotelling-Lawley 1 5.872326 1462.209 1 249 < 0.000000000000000222 ***
## Roy 1 5.872326 1462.209 1 249 < 0.000000000000000222 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## ------------------------------------------
##
## Term: emotion
##
## Response transformation matrix:
## emotion1 emotion2
## PR_Freude -1 -1
## PR_Angst 1 -1
## PR_Neutral 0 2
##
## Sum of squares and products for the hypothesis:
## emotion1 emotion2
## emotion1 0.01836735 -0.3097959
## emotion2 -0.30979592 5.2252245
##
## Multivariate Tests: emotion
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 1 0.1396048 20.11981 2 248 0.0000000079901 ***
## Wilks 1 0.8603952 20.11981 2 248 0.0000000079901 ***
## Hotelling-Lawley 1 0.1622565 20.11981 2 248 0.0000000079901 ***
## Roy 1 0.1622565 20.11981 2 248 0.0000000079901 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Univariate Type III Repeated-Measures ANOVA Assuming Sphericity
##
## Sum Sq num Df Error SS den Df F value Pr(>F)
## (Intercept) 63.532 1 10.819 249 1462.209 < 0.00000000000000022 ***
## emotion 0.880 2 10.117 498 21.661 0.0000000009543 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
##
## Mauchly Tests for Sphericity
##
## Test statistic p-value
## emotion 0.99372 0.45759
##
##
## Greenhouse-Geisser and Huynh-Feldt Corrections
## for Departure from Sphericity
##
## GG eps Pr(>F[GG])
## emotion 0.99375 0.000000001062 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## HF eps Pr(>F[HF])
## emotion 1.001725 0.0000000009542862
Der Output kann in zwei Teile geteilt werden (auch wenn man die Grenzen zwischen den zwei Teilen nicht auf den ersten Blick erkennen kann):
Wir wollen zunächst auf den zweiten Teil eingehen. Dieser enthält die Ergebnisse der “klassischen” varianzanalytischen Auswertungsstrategie (Zerlegung der gesamten Quadratsumme in die “Zwischen-Personen“ und die”Innerhalb-Personen“ mit Aufteilung der “Innerhalb-Personen“-Quadratsumme in die”Treatment“-Quadratsumme und die Fehlerquadratsumme). Wie Sie auch wissen, ist Sphärizität eine wichtige Voraussetzung der “klassischen” Messwiederholungs-ANOVA. Damir wir sehen können, ob diese Voraussetzung gegeben ist, wird uns hier auch der Mauchly-Test für Sphärizität ausgegeben. Da dieser nicht signifikant ist, können wir davon ausgehen, dass die Sphärizität gegeben ist. Nichtsdestotrotz gibt uns R hier auch automatisch zwei korrigierte p-Werte aus, nämlich einen Greenhouse-Geisser korrigierten p-Wert und einen Huynh-Feldt korrigierten p-Wert. In den Fällen, in denen der Mauchly-Test auf Sphärizität signifikant wird, müsste man hier das Ergebnis entnehmen.
Interessanter ist aber der erste Teil der Ausgabe. Wie die
Überschrift schon verrät, finden wir hier die multivariate
Auswertungsstrategie für Messwiederholungspläne. Wie wir sehen, enthält
dieser Teil einen Unterteil für das Intercept und für unseren Faktor
“emotion”. Der Unterteil für das Intercept ist relativ uninteressant.
Hier wird getestet, ob der Mittelwertsvektor der drei Variablen
“PR_Freude”, “PR_Angst” und “PR_Neutral” signifikant vom Nullvektor
abweicht. Da das PR-Maß (zumindest bei ausbalancierten Designs) nicht
negativ werden kann, ist dies hier trivialerweise der Fall. Deswegen
wollen wir uns direkt dem Faktor “emotion” zuwenden. Was hat R hier im
Hintergrund gemacht? Wir finden die Antwort unter der Überschrift
“Response transformation matrix”: Unser dreigestufter Faktor “emotion”
wurde in zwei Kontrastvariablen umkodiert. Woher wusste R, wie genau die
Kontrastvariablen gebildet werden sollen? Indem wir der Funktion
Anova()
gesagt haben, dass Helmert-Kontraste für
ungeordnete Faktoren gebildet werden sollen. Helmert-Kontraste werden in
R1 nach
folgenden Regeln für einen p-gestuften Faktor gebildet:
Vielleicht wird Ihnen nun auch klar, warum wir vorher so sehr auf die Reihenfolge unserer Faktorstufen geachtet haben! Indem wir die Faktorstufen in der Reihenfolge “Freude”, “Angst”, “Neutral” gebildet haben, bildet nun die erste im Hintergrund gebildete Kontrastvariable den Unterschied zwischen fröhlichen und ängstlichen Gesichtern ab. Die zweite gebildete Kontrastvariable bildet den Unterschied zwischen neutralen und emotionalen Gesichtern (unabhängig der spezifischen Emotion) ab. Dies wird uns gleich noch die weitere Analyse erleichtern.
Die Tabelle “Sum of squares and products for the hypothesis” kennen wir bereits aus dem letzten Kapitel. Hier hat sie nun zwei Zeilen und zwei Spalten, da im Hintergrund ja zwei Kontrastvariablen für unseren dreigestuften Faktor gebildet wurden.
Die vier multivariaten Testgrößen zeigen hier wieder alle ein
identisches Ergebnis: Es bestehen signifikante Unterschiede in der
Erinnerungsleistung für Gesichter mit unterschiedlichem emotionalem
Ausdruck. Zwischen welchen Faktorstufen bestehen nun genau Unterschiede
in der Gedächtnisleistung? Für diese Fragestellung können wir uns die im
Hintergrund gebildeten Kontrastvariablen zu nutze machen! Wir wollen
zunächst überprüfen, ob es einen Unterschied zwischen neutralen und
emotionalen Gesichtern (unabhängig der spezifischen Emotion) gab. Dazu
nutzen wir die Funktion linearHypothesis()
, die ebenfalls
im Paket “car” enthalten ist. Wir übergeben ihr drei Argumente:
linearHypothesis(mod = reg_emo, hypothesis.matrix = "(Intercept) = 0", P = anova_emo$P$emotion[ , 2, drop = FALSE])
##
## Response transformation matrix:
## emotion2
## PR_Freude -1
## PR_Angst -1
## PR_Neutral 2
##
## Sum of squares and products for the hypothesis:
## emotion2
## emotion2 5.225224
##
## Sum of squares and products for error:
## emotion2
## emotion2 32.71355
##
## Multivariate Tests:
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 1 0.1377278 39.77193 1 249 0.0000000012924 ***
## Wilks 1 0.8622722 39.77193 1 249 0.0000000012924 ***
## Hotelling-Lawley 1 0.1597266 39.77193 1 249 0.0000000012924 ***
## Roy 1 0.1597266 39.77193 1 249 0.0000000012924 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Wir sehen, dass es einen signifikanten Unterschied in der Gedächtnisleistung zwischen neutralen und emotionalen Gesichtern (unabhängig vom spezfischen emotionalen Ausdruck) gibt.
Wir wollen nun analog noch überprüfen, ob es einen Unterschied in der
Gedächtnisleistung zwischen wütenden und fröhlichen Gesichtern gibt. Wir
machen das analog zur obigen Analyse wieder mit der Funktion
linearHypothesis()
. Statt auf die zweite Spalte der
Transformationsmatrix zuzugreifen, greifen wir nun aber auf die erste
Spalte zu (die den interessierenden Kontrast enthält).
linearHypothesis(mod = reg_emo, hypothesis.matrix = "(Intercept) = 0", P = anova_emo$P$emotion[ , 1, drop = FALSE])
##
## Response transformation matrix:
## emotion1
## PR_Freude -1
## PR_Angst 1
## PR_Neutral 0
##
## Sum of squares and products for the hypothesis:
## emotion1
## emotion1 0.01836735
##
## Sum of squares and products for error:
## emotion1
## emotion1 9.328571
##
## Multivariate Tests:
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 1 0.0019651 0.4902647 1 249 0.48446
## Wilks 1 0.9980349 0.4902647 1 249 0.48446
## Hotelling-Lawley 1 0.0019689 0.4902647 1 249 0.48446
## Roy 1 0.0019689 0.4902647 1 249 0.48446
Wie wir sehen können, gab es keinen signifikanten Unterschied in der Gedächtnisleistung zwischen fröhlichen und wütenden Gesichtern.
Schließlich wollen wir noch zeigen, dass die Berechnung der Signifikanz für die einzelnen Kontraste äquivalent zu einem Einstichproben t-Test ist. Zur illustration berechnen wir hier einmal die Kontrastvariable D2, die den Unterschied zwischen emotionalen und neutralen Gesichtern kodiert, von Hand.
EmoGed$D2 <- EmoGed$PR_Neutral - (EmoGed$PR_Freude + EmoGed$PR_Angst)/2
Jetzt nutzen wir einen Einstichproben t-Test, um die neue Variable D2 gegen 0 zu testen.
t.test(EmoGed$D2, mu = 0)
##
## One Sample t-test
##
## data: EmoGed$D2
## t = -6.3065, df = 249, p-value = 0.000000001292
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## -0.09486074 -0.04971069
## sample estimates:
## mean of x
## -0.07228571
Wie wir sehen, ist der p-Wert des t-Tests identisch zu dem p-Wert des
F-Tests für den Kontrast zwischen neutralen und emotionalen Gesichtern,
den wir mittels linearHypothesis()
angefordert haben.
Außerdem lässt sich der F-Wert mittels folgender Formel in den t-Wert
überführen: \(t = \sqrt{F}\).
Wir wollen nun einen zweiten Messwiederholungsfaktor in unsere
Analyse mit aufnehmen, nämlich die räumliche Frequenz der präsentierten
Gesichter (HSF vs. LSF). Wir haben somit ein 3 * 2
Messwiederholungsdesign. Zunächst wollen wir uns die Mittelwerte und
Standardabweichungen der insgesamt sechs Kombinationen von Faktorstufen
anzeigen lassen. Dazu schauen wir zunächst mittels der Funktion
colnames()
nach, in welchen Spalten sich diese nach
Frequenz differenzierten Variablen befinden. Wie wir sehen, befinden
sich diese in den Spalten 5 bis 10.
colnames(EmoGed)
## [1] "VP" "exp" "Alter"
## [4] "Geschlecht" "PR_Neutral_LSF" "PR_Neutral_HSF"
## [7] "PR_Freude_LSF" "PR_Freude_HSF" "PR_Angst_LSF"
## [10] "PR_Angst_HSF" "PR_Neutral" "PR_Freude"
## [13] "PR_Angst" "Aengstlichkeit_fiktiv" "D2"
Mittels der Funktion sapply()
lassen wir uns Mittelwerte
und Standardabweichungen für diese Variablen ausgeben.
sapply(EmoGed[,5:10], mean)
## PR_Neutral_LSF PR_Neutral_HSF PR_Freude_LSF PR_Freude_HSF PR_Angst_LSF
## 0.1937143 0.2920000 0.2788571 0.3428571 0.3131429
## PR_Angst_HSF
## 0.3257143
sapply(EmoGed[,5:10], sd)
## PR_Neutral_LSF PR_Neutral_HSF PR_Freude_LSF PR_Freude_HSF PR_Angst_LSF
## 0.2129555 0.2266044 0.2377089 0.2367720 0.2327191
## PR_Angst_HSF
## 0.2131640
Nun wollen wir wieder eine Messwiederholungs-(M)ANOVA rechnen, diesmal jedoch mit beiden Faktoren. Zunächst müssen wir wieder eine Regression mit den sechs interessierenden Variablen als abhängigen Variablen ohne Prädiktoren rechnen. Wieder achten wir darauf, die Variablen in einer sinnvollen Reihenfolge aufzunehmen: Zuerst “Freude”, dann “Angst”, schließlich “Neutral”. Da der andere Faktor nur zweigestuft ist, ist es nicht entscheidend, ob wir zuerst “LSF” oder “HSF” eingeben.
reg_emo_SF <- lm(formula = as.matrix(EmoGed[,c('PR_Freude_LSF', 'PR_Angst_LSF', 'PR_Neutral_LSF', 'PR_Freude_HSF', 'PR_Angst_HSF', 'PR_Neutral_HSF')]) ~ 1, data = EmoGed)
reg_emo_SF
##
## Call:
## lm(formula = as.matrix(EmoGed[, c("PR_Freude_LSF", "PR_Angst_LSF",
## "PR_Neutral_LSF", "PR_Freude_HSF", "PR_Angst_HSF", "PR_Neutral_HSF")]) ~
## 1, data = EmoGed)
##
## Coefficients:
## PR_Freude_LSF PR_Angst_LSF PR_Neutral_LSF PR_Freude_HSF
## (Intercept) 0.2789 0.3131 0.1937 0.3429
## PR_Angst_HSF PR_Neutral_HSF
## (Intercept) 0.3257 0.2920
Nun müssen wir R wieder erklären, welche Faktorstufen unsere Faktoren jeweils haben. Wir fangen nun mit dem Faktor emotion an, den wir hier “emotion2” nennen, weil wir den Faktor “emotion” bereits weiter oben verwendet haben. Wie Ihnen vielleicht auffällt, führen wir hier jede Emotion zweimal auf. Wir werden gleich sehen, warum.
emotion2 <- factor(x = c('Freude', 'Angst', 'Neutral', 'Freude', 'Angst','Neutral'), levels = c('Freude' ,'Angst', 'Neutral'))
emotion2
## [1] Freude Angst Neutral Freude Angst Neutral
## Levels: Freude Angst Neutral
Den zweiten Faktor sf (spatial frequency) kreieren wir auf ähnliche Weise, nur dass wir jede der beiden Freqzenzen sogar dreimal aufnehmen.
sf <- factor(x = c('LSF', 'LSF', 'LSF', 'HSF', 'HSF','HSF'), levels = c('LSF' ,'HSF'))
sf
## [1] LSF LSF LSF HSF HSF HSF
## Levels: LSF HSF
Jetzt sehen wir, warum wir die einzelnen Faktorstufen mehrmals
aufführen mussten. Wir bilden jetzt einen Data-Frame, der alle möglichen
Kombinationen der Stufen der beiden Faktoren aufführt. Dazu nutzen wir
die Funktion data.frame()
, die die beiden Vektoren
nebeneinander als Spalten in einen Data-Frame fügt.
emotion2_sf_df <- data.frame(emotion2, sf)
emotion2_sf_df
Nun können wir wieder die Funktion Anova()
aus dem Paket
“car” aufrufen, um die Messwiederholungs-(M)ANOVA zu berechnen.
anova_emo_sf <- Anova(mod = reg_emo_SF, idata = emotion2_sf_df, idesign = ~emotion2 * sf, icontrasts = c("contr.helmert","contr.poly"))
## Note: model has only an intercept; equivalent type-III tests substituted.
summary(anova_emo_sf)
## Warning in summary.Anova.mlm(anova_emo_sf): HF eps > 1 treated as 1
##
## Type III Repeated Measures MANOVA Tests:
##
## ------------------------------------------
##
## Term: (Intercept)
##
## Response transformation matrix:
## (Intercept)
## PR_Freude_LSF 1
## PR_Angst_LSF 1
## PR_Neutral_LSF 1
## PR_Freude_HSF 1
## PR_Angst_HSF 1
## PR_Neutral_HSF 1
##
## Sum of squares and products for the hypothesis:
## (Intercept)
## (Intercept) 762.3784
##
## Multivariate Tests: (Intercept)
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 1 0.854489 1462.209 1 249 < 0.000000000000000222 ***
## Wilks 1 0.145511 1462.209 1 249 < 0.000000000000000222 ***
## Hotelling-Lawley 1 5.872326 1462.209 1 249 < 0.000000000000000222 ***
## Roy 1 5.872326 1462.209 1 249 < 0.000000000000000222 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## ------------------------------------------
##
## Term: emotion2
##
## Response transformation matrix:
## emotion21 emotion22
## PR_Freude_LSF -1 -1
## PR_Angst_LSF 1 -1
## PR_Neutral_LSF 0 2
## PR_Freude_HSF -1 -1
## PR_Angst_HSF 1 -1
## PR_Neutral_HSF 0 2
##
## Sum of squares and products for the hypothesis:
## emotion21 emotion22
## emotion21 0.07346939 -1.239184
## emotion22 -1.23918367 20.900898
##
## Multivariate Tests: emotion2
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 1 0.1396048 20.11981 2 248 0.0000000079901 ***
## Wilks 1 0.8603952 20.11981 2 248 0.0000000079901 ***
## Hotelling-Lawley 1 0.1622565 20.11981 2 248 0.0000000079901 ***
## Roy 1 0.1622565 20.11981 2 248 0.0000000079901 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## ------------------------------------------
##
## Term: sf
##
## Response transformation matrix:
## sf1
## PR_Freude_LSF -1
## PR_Angst_LSF -1
## PR_Neutral_LSF -1
## PR_Freude_HSF 1
## PR_Angst_HSF 1
## PR_Neutral_HSF 1
##
## Sum of squares and products for the hypothesis:
## sf1
## sf1 7.643755
##
## Multivariate Tests: sf
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 1 0.0810350 21.95701 1 249 0.0000045919 ***
## Wilks 1 0.9189650 21.95701 1 249 0.0000045919 ***
## Hotelling-Lawley 1 0.0881808 21.95701 1 249 0.0000045919 ***
## Roy 1 0.0881808 21.95701 1 249 0.0000045919 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## ------------------------------------------
##
## Term: emotion2:sf
##
## Response transformation matrix:
## emotion21:sf1 emotion22:sf1
## PR_Freude_LSF 1 1
## PR_Angst_LSF -1 1
## PR_Neutral_LSF 0 -2
## PR_Freude_HSF -1 -1
## PR_Angst_HSF 1 -1
## PR_Neutral_HSF 0 2
##
## Sum of squares and products for the hypothesis:
## emotion21:sf1 emotion22:sf1
## emotion21:sf1 0.6612245 -1.542857
## emotion22:sf1 -1.5428571 3.600000
##
## Multivariate Tests: emotion2:sf
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 1 0.0414925 5.367788 2 248 0.0052221 **
## Wilks 1 0.9585075 5.367788 2 248 0.0052221 **
## Hotelling-Lawley 1 0.0432886 5.367788 2 248 0.0052221 **
## Roy 1 0.0432886 5.367788 2 248 0.0052221 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Univariate Type III Repeated-Measures ANOVA Assuming Sphericity
##
## Sum Sq num Df Error SS den Df F value Pr(>F)
## (Intercept) 127.063 1 21.638 249 1462.2092 < 0.00000000000000022 ***
## emotion2 1.760 2 20.233 498 21.6609 0.0000000009543 ***
## sf 1.274 1 14.447 249 21.9570 0.0000045918673 ***
## emotion2:sf 0.465 2 20.589 498 5.6273 0.003831 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
##
## Mauchly Tests for Sphericity
##
## Test statistic p-value
## emotion2 0.99372 0.45759
## emotion2:sf 0.99748 0.73168
##
##
## Greenhouse-Geisser and Huynh-Feldt Corrections
## for Departure from Sphericity
##
## GG eps Pr(>F[GG])
## emotion2 0.99375 0.000000001062 ***
## emotion2:sf 0.99749 0.003861 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## HF eps Pr(>F[HF])
## emotion2 1.001725 0.0000000009542862
## emotion2:sf 1.005536 0.0038308859363039
Wir konzentrieren uns von nun an nur noch auf die multivariaten Analysen (und ignorieren die Ergebnisse der “klassischen” ANOVA). Hier können wir sehen, dass wir jetzt Tests der Haupteffekte von emotion2 und sf erhalten sowie Tests für die Interaktion der beiden Terme. Die p-Werte aller drei Tests liegen unter dem Signifikanzniveau. Uns werden auch die Kodierschemata für die Kontrastvariablen, die im Hintergrund gebildet werden, ausgegeben. Vor allem beim Interaktionsterm wirken diese auf den ersten Blick etwas kompliziert. Im Buchkapitel wird genauer erläutert, wie diese Werte zu Stande kommen.
Um zu überprüfen, welcher der Emotionskontraste unterschiedlich für
LSF und HSF Gesichter ist, wollen wir uns nun erneut mit der Funktion
linearHypothesis()
die einzelnen Kontraste der Interaktion
ausgeben lassen. Wir beginnen mit dem Kontrast Frequenz * Freude
vs. Angst. Wegen des Doppelpunkts im Interaktionsterm “emotion2:sf”
müssen wir bei der Anforderung der Kontrastkodierung diesen Term in
Anführungszeichen setzen.
linearHypothesis(mod = reg_emo_SF, hypothesis.matrix = "(Intercept) = 0", P = anova_emo_sf$P$'emotion2:sf'[, 1, drop = FALSE])
##
## Response transformation matrix:
## emotion21:sf1
## PR_Freude_LSF 1
## PR_Angst_LSF -1
## PR_Neutral_LSF 0
## PR_Freude_HSF -1
## PR_Angst_HSF 1
## PR_Neutral_HSF 0
##
## Sum of squares and products for the hypothesis:
## emotion21:sf1
## emotion21:sf1 0.6612245
##
## Sum of squares and products for error:
## emotion21:sf1
## emotion21:sf1 39.74694
##
## Multivariate Tests:
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 1 0.0163636 4.142329 1 249 0.042883 *
## Wilks 1 0.9836364 4.142329 1 249 0.042883 *
## Hotelling-Lawley 1 0.0166359 4.142329 1 249 0.042883 *
## Roy 1 0.0166359 4.142329 1 249 0.042883 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Wie wir sehen, ist der Unterschied zwischen der Gedächtnisleistung für fröhliche und ängstliche Gesichter signifikant unterschiedlich für LSF und HSF Gesichter.
Nun wollen wir analog noch den Kontrast Frequenz * Emotional vs. Neutral anfordern.
linearHypothesis(mod = reg_emo_SF, hypothesis.matrix = "(Intercept) = 0", P = anova_emo_sf$P$'emotion2:sf'[, 2, drop = FALSE])
##
## Response transformation matrix:
## emotion22:sf1
## PR_Freude_LSF 1
## PR_Angst_LSF 1
## PR_Neutral_LSF -2
## PR_Freude_HSF -1
## PR_Angst_HSF -1
## PR_Neutral_HSF 2
##
## Sum of squares and products for the hypothesis:
## emotion22:sf1
## emotion22:sf1 3.6
##
## Sum of squares and products for error:
## emotion22:sf1
## emotion22:sf1 127.8286
##
## Multivariate Tests:
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 1 0.0273913 7.012517 1 249 0.0086112 **
## Wilks 1 0.9726087 7.012517 1 249 0.0086112 **
## Hotelling-Lawley 1 0.0281627 7.012517 1 249 0.0086112 **
## Roy 1 0.0281627 7.012517 1 249 0.0086112 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Wie wir sehen, wird auch dieser Kontrast signifikant. Daher können wir schlussfolgern, dass der Unterschied in der Erinnerungsleistung für emotionale versus neutrale Gesichter signifikant unterschiedlich für LSF und HSF Gesichter ist.
Bis jetzt haben wir uns ausschließlich mit Messwiederholungsfaktoren
(also Innerhalb-Versuchspersonen-Faktoren) beschäftigt. Nun wollen wir
einen Zwischen-Versuchspersonen-Faktor in die Analyse mit aufnehmen,
nämlich den Faktor “exp”, der repräsentiert, welche Aufgabe eine
gegebene Versuchsperson bei der Enkodierung der Gesichter durchführen
sollte. Wir haben nun also ein 2 (Frequenz) * 3 (Emotion) * 4
(Experiment) Mixed Design. Vielleicht ahnen Sie schon, was wir jetzt zu
tun haben: Wir fitten das gleiche Regressionsmodell wie bei der obigen
Analyse, nehmen aber die Variable “exp” als Prädiktor auf. Es gibt dabei
nur ein Problem: Wie wir aus Kapitel 6 wissen, nutzt R automatisch eine
Dummy-Kodierung, wenn man eine nominalskalierte Variable in eine
Regression eingibt. Wir können uns die automatisch gebildeten Kontraste
mit der Funktion contrasts()
ausgeben lassen.
contrasts(EmoGed$exp)
## Ethnie Geschlecht Emotion
## Alter 0 0 0
## Ethnie 1 0 0
## Geschlecht 0 1 0
## Emotion 0 0 1
Wie wir sehen, ist “Alter” hier die Referenzgruppe und die drei Dummy-Variablen kodieren jeweils den Unterschied einer anderen Gruppe zu dieser Referenzgruppe. Wir sehen auch, dass die drei Dummy-Variablen alle einen Mittelwert annehmen, der positiv von 0 verschieden ist (dies muss ja so sein, wenn eine Gruppe mit 1 und alle anderen Gruppen mit 0 kodiert werden). Wie wir bereits im Kapitel 6 gelernt haben, würde es tatsächlich zu Problemen führen, wenn wir den Faktor “Experiment” auf Basis dieser Kodierung in die Analyse mit aufnehmen würden: Alle Tests von Haupteffekten und Interaktionen, an denen der Faktor “Experiment” nicht beteiligt ist, wären verzerrt. Sie können dem Buchkapitel genauere Informationen entnehmen, warum das so ist.
Deswegen sagen wir R, bevor wir die Regression fitten, dass es keine
Dummykodierung sondern eine Kontrastkodierung für die Umkodierung der
Variable “exp” verwenden soll. Wir haben bereits eine sehr praktische
Art der Kontrastkodierung kennengelernt, nämlich die Helmert-Kontraste.
In untenstehendem Code sagen wir R mittels der Funktion
contr.helmert()
, dass es zur Kodierung von “exp”
Helmert-Kontraste verwenden soll (1. Zeile) und lassen uns die so
gebildeten Kontrastvariablen anzeigen (2. Zeile).
contrasts(EmoGed$exp) <- contr.helmert(4)
contrasts(EmoGed$exp)
## [,1] [,2] [,3]
## Alter -1 -1 -1
## Ethnie 1 -1 -1
## Geschlecht 0 2 -1
## Emotion 0 0 3
Wie wir sehen, haben nun alle Kontrastvariablen den Mittelwert 0. Jetzt können wir problemlos die Regression mit dem Prädiktor “exp” fitten. Wir lassen uns die Regressionsgewichte ausgeben, um zu zeigen, dass es sich nicht mehr um eine Dummy-Kodierung, sondern um eine Kontrastkodierung handelt.
reg_between <- lm(formula = as.matrix(EmoGed[,c('PR_Freude_LSF', 'PR_Angst_LSF', 'PR_Neutral_LSF', 'PR_Freude_HSF', 'PR_Angst_HSF', 'PR_Neutral_HSF')]) ~ exp, data = EmoGed)
reg_between
##
## Call:
## lm(formula = as.matrix(EmoGed[, c("PR_Freude_LSF", "PR_Angst_LSF",
## "PR_Neutral_LSF", "PR_Freude_HSF", "PR_Angst_HSF", "PR_Neutral_HSF")]) ~
## exp, data = EmoGed)
##
## Coefficients:
## PR_Freude_LSF PR_Angst_LSF PR_Neutral_LSF PR_Freude_HSF
## (Intercept) 0.277086 0.311371 0.191631 0.340088
## exp1 -0.045359 0.009711 0.014642 0.011960
## exp2 -0.015578 -0.011230 -0.006537 -0.018436
## exp3 -0.021351 -0.015236 -0.019600 -0.023972
## PR_Angst_HSF PR_Neutral_HSF
## (Intercept) 0.324278 0.289492
## exp1 -0.020123 -0.023171
## exp2 -0.016910 -0.035167
## exp3 -0.013690 -0.020474
Wir müssen die Innersubjektfaktoren “emotion2” und “sf” nicht erneut
definieren, da wir dies bereits für die obigen Analysen getan haben. Nun
müssen wir lediglich noch die Funktion Anova()
aufrufen,
der wir die Ergebnisse der Regression übergeben, in die die
Helmert-kodierten Kontrastvariablen als Prädiktoren eingegangen sind.
Ihnen fällt vielleicht auf, dass wir noch ein weiteres neues Argument
übergeben, nämlich “type = 3”. Dieses Argument gibt an, wie die
Quadratsummen der einzelnen Terme berechnet werden.2
anova_between <- Anova(mod = reg_between, idata = emotion2_sf_df, idesign = ~emotion2 * sf, icontrasts = c('contr.helmert','contr.poly'), type = 3)
summary(anova_between)
## Warning in summary.Anova.mlm(anova_between): HF eps > 1 treated as 1
##
## Type III Repeated Measures MANOVA Tests:
##
## ------------------------------------------
##
## Term: (Intercept)
##
## Response transformation matrix:
## (Intercept)
## PR_Freude_LSF 1
## PR_Angst_LSF 1
## PR_Neutral_LSF 1
## PR_Freude_HSF 1
## PR_Angst_HSF 1
## PR_Neutral_HSF 1
##
## Sum of squares and products for the hypothesis:
## (Intercept)
## (Intercept) 749.0286
##
## Multivariate Tests: (Intercept)
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 1 0.865808 1587.2 1 246 < 0.000000000000000222 ***
## Wilks 1 0.134192 1587.2 1 246 < 0.000000000000000222 ***
## Hotelling-Lawley 1 6.452031 1587.2 1 246 < 0.000000000000000222 ***
## Roy 1 6.452031 1587.2 1 246 < 0.000000000000000222 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## ------------------------------------------
##
## Term: exp
##
## Response transformation matrix:
## (Intercept)
## PR_Freude_LSF 1
## PR_Angst_LSF 1
## PR_Neutral_LSF 1
## PR_Freude_HSF 1
## PR_Angst_HSF 1
## PR_Neutral_HSF 1
##
## Sum of squares and products for the hypothesis:
## (Intercept)
## (Intercept) 13.73372
##
## Multivariate Tests: exp
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 3 0.1057859 9.700631 3 246 0.0000044912 ***
## Wilks 3 0.8942141 9.700631 3 246 0.0000044912 ***
## Hotelling-Lawley 3 0.1183004 9.700631 3 246 0.0000044912 ***
## Roy 3 0.1183004 9.700631 3 246 0.0000044912 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## ------------------------------------------
##
## Term: emotion2
##
## Response transformation matrix:
## emotion21 emotion22
## PR_Freude_LSF -1 -1
## PR_Angst_LSF 1 -1
## PR_Neutral_LSF 0 2
## PR_Freude_HSF -1 -1
## PR_Angst_HSF 1 -1
## PR_Neutral_HSF 0 2
##
## Sum of squares and products for the hypothesis:
## emotion21 emotion22
## emotion21 0.08503041 -1.337407
## emotion22 -1.33740718 21.035509
##
## Multivariate Tests: emotion2
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 1 0.1409275 20.09564 2 245 0.0000000082919 ***
## Wilks 1 0.8590725 20.09564 2 245 0.0000000082919 ***
## Hotelling-Lawley 1 0.1640461 20.09564 2 245 0.0000000082919 ***
## Roy 1 0.1640461 20.09564 2 245 0.0000000082919 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## ------------------------------------------
##
## Term: exp:emotion2
##
## Response transformation matrix:
## emotion21 emotion22
## PR_Freude_LSF -1 -1
## PR_Angst_LSF 1 -1
## PR_Neutral_LSF 0 2
## PR_Freude_HSF -1 -1
## PR_Angst_HSF 1 -1
## PR_Neutral_HSF 0 2
##
## Sum of squares and products for the hypothesis:
## emotion21 emotion22
## emotion21 0.2699811 -0.0371539
## emotion22 -0.0371539 0.2951200
##
## Multivariate Tests: exp:emotion2
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 3 0.0095085 0.3917109 6 492 0.88442
## Wilks 3 0.9905075 0.3903904 6 490 0.88526
## Hotelling-Lawley 3 0.0095672 0.3890678 6 488 0.88610
## Roy 3 0.0073702 0.6043569 3 246 0.61274
##
## ------------------------------------------
##
## Term: sf
##
## Response transformation matrix:
## sf1
## PR_Freude_LSF -1
## PR_Angst_LSF -1
## PR_Neutral_LSF -1
## PR_Freude_HSF 1
## PR_Angst_HSF 1
## PR_Neutral_HSF 1
##
## Sum of squares and products for the hypothesis:
## sf1
## sf1 7.522656
##
## Multivariate Tests: sf
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 1 0.0803128 21.48226 1 246 0.0000057972 ***
## Wilks 1 0.9196872 21.48226 1 246 0.0000057972 ***
## Hotelling-Lawley 1 0.0873263 21.48226 1 246 0.0000057972 ***
## Roy 1 0.0873263 21.48226 1 246 0.0000057972 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## ------------------------------------------
##
## Term: exp:sf
##
## Response transformation matrix:
## sf1
## PR_Freude_LSF -1
## PR_Angst_LSF -1
## PR_Neutral_LSF -1
## PR_Freude_HSF 1
## PR_Angst_HSF 1
## PR_Neutral_HSF 1
##
## Sum of squares and products for the hypothesis:
## sf1
## sf1 0.5385242
##
## Multivariate Tests: exp:sf
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 3 0.0062126 0.5126167 3 246 0.67395
## Wilks 3 0.9937874 0.5126167 3 246 0.67395
## Hotelling-Lawley 3 0.0062514 0.5126167 3 246 0.67395
## Roy 3 0.0062514 0.5126167 3 246 0.67395
##
## ------------------------------------------
##
## Term: emotion2:sf
##
## Response transformation matrix:
## emotion21:sf1 emotion22:sf1
## PR_Freude_LSF 1 1
## PR_Angst_LSF -1 1
## PR_Neutral_LSF 0 -2
## PR_Freude_HSF -1 -1
## PR_Angst_HSF 1 -1
## PR_Neutral_HSF 0 2
##
## Sum of squares and products for the hypothesis:
## emotion21:sf1 emotion22:sf1
## emotion21:sf1 0.625198 -1.495305
## emotion22:sf1 -1.495305 3.576365
##
## Multivariate Tests: emotion2:sf
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 1 0.0406892 5.195838 2 245 0.0061662 **
## Wilks 1 0.9593108 5.195838 2 245 0.0061662 **
## Hotelling-Lawley 1 0.0424150 5.195838 2 245 0.0061662 **
## Roy 1 0.0424150 5.195838 2 245 0.0061662 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## ------------------------------------------
##
## Term: exp:emotion2:sf
##
## Response transformation matrix:
## emotion21:sf1 emotion22:sf1
## PR_Freude_LSF 1 1
## PR_Angst_LSF -1 1
## PR_Neutral_LSF 0 -2
## PR_Freude_HSF -1 -1
## PR_Angst_HSF 1 -1
## PR_Neutral_HSF 0 2
##
## Sum of squares and products for the hypothesis:
## emotion21:sf1 emotion22:sf1
## emotion21:sf1 1.010414 1.213539
## emotion22:sf1 1.213539 2.262716
##
## Multivariate Tests: exp:emotion2:sf
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 3 0.0444128 1.862279 6 492 0.085531 .
## Wilks 3 0.9557476 1.869248 6 490 0.084317 .
## Hotelling-Lawley 3 0.0461336 1.876101 6 488 0.083139 .
## Roy 3 0.0421537 3.456606 3 246 0.017114 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Univariate Type III Repeated-Measures ANOVA Assuming Sphericity
##
## Sum Sq num Df Error SS den Df F value Pr(>F)
## (Intercept) 124.838 1 19.349 246 1587.1996 < 0.00000000000000022
## exp 2.289 3 19.349 246 9.7006 0.000004491217
## emotion2 1.774 2 20.141 492 21.6701 0.000000000956
## exp:emotion2 0.092 6 20.141 492 0.3749 0.894971
## sf 1.254 1 14.357 246 21.4823 0.000005797201
## exp:sf 0.090 3 14.357 246 0.5126 0.673947
## emotion2:sf 0.454 2 20.148 492 5.5472 0.004146
## exp:emotion2:sf 0.441 6 20.148 492 1.7955 0.098108
##
## (Intercept) ***
## exp ***
## emotion2 ***
## exp:emotion2
## sf ***
## exp:sf
## emotion2:sf **
## exp:emotion2:sf .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
##
## Mauchly Tests for Sphericity
##
## Test statistic p-value
## emotion2 0.99330 0.43908
## exp:emotion2 0.99330 0.43908
## emotion2:sf 0.99555 0.57898
## exp:emotion2:sf 0.99555 0.57898
##
##
## Greenhouse-Geisser and Huynh-Feldt Corrections
## for Departure from Sphericity
##
## GG eps Pr(>F[GG])
## emotion2 0.99335 0.000000001072 ***
## exp:emotion2 0.99335 0.893961
## emotion2:sf 0.99557 0.004203 **
## exp:emotion2:sf 0.99557 0.098465 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## HF eps Pr(>F[HF])
## emotion2 1.001408 0.000000000956035
## exp:emotion2 1.001408 0.894970705204443
## emotion2:sf 1.003674 0.004146038956688
## exp:emotion2:sf 1.003674 0.098107669136577
Wir sehen, dass sich die Prüfgrößen für alle Tests, an denen sowohl “emotion2” als auch “exp beteiligt sind, unterscheiden. Wie wir bereits in Kapitel 8 gelernt haben, liegt das daran, dass bei mehr als zweigestuften Zwischensubjektfaktoren im Hintergrund eine kanonische Korrelationsanalyse gerechnet wird. Ferner können wir sehen, dass sich die Effekte der Terme, bei denen”exp” nicht beteiligt ist, im Vergleich zur obigen Anlayse leicht verändert haben. Woran das liegt, können Sie im Detail dem Buchkapitel entnehmen.
Wir wollen uns nun anschauen, wie wir eine kontinuierliche Kovariate
in unsere (M)ANOVA mit aufnehmen können. Angenommen, wir hätten mit
einem gängigen Fragebogen die Ängstlichkeit der Versuchspersonen erhoben
und wollten jetzt überprüfen, ob die individuelle Ängstlichkeit der
Probanden die Ergebnisse beeinflusst. Man könnte jetzt naiverweise
annehmen, dass wir einfach in unsere Regression die Variable
“Aengstlichkeit_fiktiv” aufnehmen müssten und die Ergebnisse dieser
Regression dann der Funktion Anova()
übergeben müssten. Es
sei hier vorweggenommen: Das ist keine gute Idee! Zu
Illustrationszwecken wollen wir trotzdem einmal schauen, was hierbei
passiert.
reg_naiv <- lm(formula = as.matrix(EmoGed[,c('PR_Freude_LSF', 'PR_Angst_LSF', 'PR_Neutral_LSF', 'PR_Freude_HSF', 'PR_Angst_HSF', 'PR_Neutral_HSF')]) ~ Aengstlichkeit_fiktiv, data = EmoGed)
reg_naiv
##
## Call:
## lm(formula = as.matrix(EmoGed[, c("PR_Freude_LSF", "PR_Angst_LSF",
## "PR_Neutral_LSF", "PR_Freude_HSF", "PR_Angst_HSF", "PR_Neutral_HSF")]) ~
## Aengstlichkeit_fiktiv, data = EmoGed)
##
## Coefficients:
## PR_Freude_LSF PR_Angst_LSF PR_Neutral_LSF
## (Intercept) 0.2995601 0.3721690 0.2133271
## Aengstlichkeit_fiktiv -0.0005117 -0.0014588 -0.0004847
## PR_Freude_HSF PR_Angst_HSF PR_Neutral_HSF
## (Intercept) 0.3835891 0.3112309 0.3558424
## Aengstlichkeit_fiktiv -0.0010067 0.0003579 -0.0015778
Nun übergeben wir die gefittete Regression der Funktion
ANOVA()
.
anova_naiv <- Anova(mod = reg_naiv, idata = emotion2_sf_df, idesign = ~emotion2 * sf, icontrasts = c('contr.helmert','contr.poly'), type = 3)
summary(anova_naiv)
## Warning in summary.Anova.mlm(anova_naiv): HF eps > 1 treated as 1
##
## Type III Repeated Measures MANOVA Tests:
##
## ------------------------------------------
##
## Term: (Intercept)
##
## Response transformation matrix:
## (Intercept)
## PR_Freude_LSF 1
## PR_Angst_LSF 1
## PR_Neutral_LSF 1
## PR_Freude_HSF 1
## PR_Angst_HSF 1
## PR_Neutral_HSF 1
##
## Sum of squares and products for the hypothesis:
## (Intercept)
## (Intercept) 49.26288
##
## Multivariate Tests: (Intercept)
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 1 0.2758426 94.46699 1 248 < 0.000000000000000222 ***
## Wilks 1 0.7241574 94.46699 1 248 < 0.000000000000000222 ***
## Hotelling-Lawley 1 0.3809153 94.46699 1 248 < 0.000000000000000222 ***
## Roy 1 0.3809153 94.46699 1 248 < 0.000000000000000222 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## ------------------------------------------
##
## Term: Aengstlichkeit_fiktiv
##
## Response transformation matrix:
## (Intercept)
## PR_Freude_LSF 1
## PR_Angst_LSF 1
## PR_Neutral_LSF 1
## PR_Freude_HSF 1
## PR_Angst_HSF 1
## PR_Neutral_HSF 1
##
## Sum of squares and products for the hypothesis:
## (Intercept)
## (Intercept) 0.4979755
##
## Multivariate Tests: Aengstlichkeit_fiktiv
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 1 0.0038357 0.9549227 1 248 0.32942
## Wilks 1 0.9961643 0.9549227 1 248 0.32942
## Hotelling-Lawley 1 0.0038505 0.9549227 1 248 0.32942
## Roy 1 0.0038505 0.9549227 1 248 0.32942
##
## ------------------------------------------
##
## Term: emotion2
##
## Response transformation matrix:
## emotion21 emotion22
## PR_Freude_LSF -1 -1
## PR_Angst_LSF 1 -1
## PR_Neutral_LSF 0 2
## PR_Freude_HSF -1 -1
## PR_Angst_HSF 1 -1
## PR_Neutral_HSF 0 2
##
## Sum of squares and products for the hypothesis:
## emotion21 emotion22
## emotion21 0.0000008263396 -0.0007521968
## emotion22 -0.0007521967765 0.6847063971
##
## Multivariate Tests: emotion2
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 1 0.0052089 0.646668 2 247 0.52467
## Wilks 1 0.9947911 0.646668 2 247 0.52467
## Hotelling-Lawley 1 0.0052362 0.646668 2 247 0.52467
## Roy 1 0.0052362 0.646668 2 247 0.52467
##
## ------------------------------------------
##
## Term: Aengstlichkeit_fiktiv:emotion2
##
## Response transformation matrix:
## emotion21 emotion22
## PR_Freude_LSF -1 -1
## PR_Angst_LSF 1 -1
## PR_Neutral_LSF 0 2
## PR_Freude_HSF -1 -1
## PR_Angst_HSF 1 -1
## PR_Neutral_HSF 0 2
##
## Sum of squares and products for the hypothesis:
## emotion21 emotion22
## emotion21 0.003959743 -0.01428348
## emotion22 -0.014283481 0.05152300
##
## Multivariate Tests: Aengstlichkeit_fiktiv:emotion2
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 1 0.0005060 0.06252626 2 247 0.9394
## Wilks 1 0.9994940 0.06252626 2 247 0.9394
## Hotelling-Lawley 1 0.0005063 0.06252626 2 247 0.9394
## Roy 1 0.0005063 0.06252626 2 247 0.9394
##
## ------------------------------------------
##
## Term: sf
##
## Response transformation matrix:
## sf1
## PR_Freude_LSF -1
## PR_Angst_LSF -1
## PR_Neutral_LSF -1
## PR_Freude_HSF 1
## PR_Angst_HSF 1
## PR_Neutral_HSF 1
##
## Sum of squares and products for the hypothesis:
## sf1
## sf1 0.3605692
##
## Multivariate Tests: sf
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 1 0.0041425 1.031605 1 248 0.31077
## Wilks 1 0.9958575 1.031605 1 248 0.31077
## Hotelling-Lawley 1 0.0041597 1.031605 1 248 0.31077
## Roy 1 0.0041597 1.031605 1 248 0.31077
##
## ------------------------------------------
##
## Term: Aengstlichkeit_fiktiv:sf
##
## Response transformation matrix:
## sf1
## PR_Freude_LSF -1
## PR_Angst_LSF -1
## PR_Neutral_LSF -1
## PR_Freude_HSF 1
## PR_Angst_HSF 1
## PR_Neutral_HSF 1
##
## Sum of squares and products for the hypothesis:
## sf1
## sf1 0.001187595
##
## Multivariate Tests: Aengstlichkeit_fiktiv:sf
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 1 0.0000137 0.003397763 1 248 0.95356
## Wilks 1 0.9999863 0.003397763 1 248 0.95356
## Hotelling-Lawley 1 0.0000137 0.003397763 1 248 0.95356
## Roy 1 0.0000137 0.003397763 1 248 0.95356
##
## ------------------------------------------
##
## Term: emotion2:sf
##
## Response transformation matrix:
## emotion21:sf1 emotion22:sf1
## PR_Freude_LSF 1 1
## PR_Angst_LSF -1 1
## PR_Neutral_LSF 0 -2
## PR_Freude_HSF -1 -1
## PR_Angst_HSF 1 -1
## PR_Neutral_HSF 0 2
##
## Sum of squares and products for the hypothesis:
## emotion21:sf1 emotion22:sf1
## emotion21:sf1 0.2762953 -0.4992359
## emotion22:sf1 -0.4992359 0.9020655
##
## Multivariate Tests: emotion2:sf
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 1 0.0134050 1.678017 2 247 0.18887
## Wilks 1 0.9865950 1.678017 2 247 0.18887
## Hotelling-Lawley 1 0.0135872 1.678017 2 247 0.18887
## Roy 1 0.0135872 1.678017 2 247 0.18887
##
## ------------------------------------------
##
## Term: Aengstlichkeit_fiktiv:emotion2:sf
##
## Response transformation matrix:
## emotion21:sf1 emotion22:sf1
## PR_Freude_LSF 1 1
## PR_Angst_LSF -1 1
## PR_Neutral_LSF 0 -2
## PR_Freude_HSF -1 -1
## PR_Angst_HSF 1 -1
## PR_Neutral_HSF 0 2
##
## Sum of squares and products for the hypothesis:
## emotion21:sf1 emotion22:sf1
## emotion21:sf1 0.1214163 -0.1842429
## emotion22:sf1 -0.1842429 0.2795792
##
## Multivariate Tests: Aengstlichkeit_fiktiv:emotion2:sf
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 1 0.0050614 0.6282649 2 247 0.53437
## Wilks 1 0.9949386 0.6282649 2 247 0.53437
## Hotelling-Lawley 1 0.0050872 0.6282649 2 247 0.53437
## Roy 1 0.0050872 0.6282649 2 247 0.53437
##
## Univariate Type III Repeated-Measures ANOVA Assuming Sphericity
##
## Sum Sq num Df Error SS den Df F value
## (Intercept) 8.2105 1 21.555 248 94.4670
## Aengstlichkeit_fiktiv 0.0830 1 21.555 248 0.9549
## emotion2 0.0571 2 20.228 496 0.6996
## Aengstlichkeit_fiktiv:emotion2 0.0053 2 20.228 496 0.0648
## sf 0.0601 1 14.447 248 1.0316
## Aengstlichkeit_fiktiv:sf 0.0002 1 14.447 248 0.0034
## emotion2:sf 0.1442 2 20.535 496 1.7420
## Aengstlichkeit_fiktiv:emotion2:sf 0.0537 2 20.535 496 0.6479
## Pr(>F)
## (Intercept) <0.0000000000000002 ***
## Aengstlichkeit_fiktiv 0.3294
## emotion2 0.4973
## Aengstlichkeit_fiktiv:emotion2 0.9373
## sf 0.3108
## Aengstlichkeit_fiktiv:sf 0.9536
## emotion2:sf 0.1762
## Aengstlichkeit_fiktiv:emotion2:sf 0.5236
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
##
## Mauchly Tests for Sphericity
##
## Test statistic p-value
## emotion2 0.99373 0.45995
## Aengstlichkeit_fiktiv:emotion2 0.99373 0.45995
## emotion2:sf 0.99763 0.74577
## Aengstlichkeit_fiktiv:emotion2:sf 0.99763 0.74577
##
##
## Greenhouse-Geisser and Huynh-Feldt Corrections
## for Departure from Sphericity
##
## GG eps Pr(>F[GG])
## emotion2 0.99377 0.4964
## Aengstlichkeit_fiktiv:emotion2 0.99377 0.9364
## emotion2:sf 0.99763 0.1763
## Aengstlichkeit_fiktiv:emotion2:sf 0.99763 0.5232
##
## HF eps Pr(>F[HF])
## emotion2 1.001774 0.4972912
## Aengstlichkeit_fiktiv:emotion2 1.001774 0.9372836
## emotion2:sf 1.005715 0.1762378
## Aengstlichkeit_fiktiv:emotion2:sf 1.005715 0.5235637
Wir sehen, dass nun einige Effekte, nämlich die Haupteffekte von “emotion2” und “sf” sowie deren Interaktion, nicht mehr signifikant sind, obwohl diese Effekte in vorherigen Analysen doch sehr robust waren.
Woran liegt das? Es liegt daran, dass alle Effekte, an denen der Faktor “Aengstlichkeit_fiktiv” nicht beteiligt ist, für eine gedachte Person, die einen Wert von 0 auf dem Ängstlichkeitsfragebogen hat, geschätzt werden (siehe Buchkapitel für Details). Unser Ängstlichkeitsfragebogen hat aber gar keinen sinnvollen Nullpunkt: Wie wir mit folgendem kurzen Code sehen können, hat die Person mit dem niedrigsten Ängstlichkeitswert in unserer Stichprobe einen Wert von 9.85.
min(EmoGed$Aengstlichkeit_fiktiv)
## [1] 9.850361
Was können wir also tun? Ganz einfach: Wir zentrieren die Variable
“Aengstlichkeit_fiktiv” um 0. Die zentrierte Variable hat dann
logischerweise einen sinnvollen Nullpunkt. Ein Wert von 0 auf dieser
zentrierten Variable entspricht dem Stichprobenmittelwert in Bezug auf
Ängstlichkeit. Die einfachste Variante, eine Variable zu zentrieren,
ist, sie zu z-standardisieren. Dies geht ganz einfach mittels der
Funktion scale()
.
EmoGed$zAengstlichkeit <- scale(EmoGed$Aengstlichkeit_fiktiv)
Nun rechnen wir eine Regression unserer PR-Variablen auf die neu kreierte, z-standardisierte Ängstlichkeitsvariable.
reg_angst <- lm(formula = as.matrix(EmoGed[,c('PR_Freude_LSF', 'PR_Angst_LSF', 'PR_Neutral_LSF', 'PR_Freude_HSF', 'PR_Angst_HSF', 'PR_Neutral_HSF')]) ~ zAengstlichkeit, data = EmoGed)
reg_angst
##
## Call:
## lm(formula = as.matrix(EmoGed[, c("PR_Freude_LSF", "PR_Angst_LSF",
## "PR_Neutral_LSF", "PR_Freude_HSF", "PR_Angst_HSF", "PR_Neutral_HSF")]) ~
## zAengstlichkeit, data = EmoGed)
##
## Coefficients:
## PR_Freude_LSF PR_Angst_LSF PR_Neutral_LSF PR_Freude_HSF
## (Intercept) 0.278857 0.313143 0.193714 0.342857
## zAengstlichkeit -0.004887 -0.013935 -0.004630 -0.009616
## PR_Angst_HSF PR_Neutral_HSF
## (Intercept) 0.325714 0.292000
## zAengstlichkeit 0.003419 -0.015072
Wenn wir jetzt die gefittete Regression der Funktion
Anova()
übergeben, erhalten wir für die Haupteffekte von
“emotion2” und “sf” sowie deren Interaktion wieder Schätzungen, die
vergleichbar mit unseren vorherigen Analysen sind. Wir können aber auch
sehen, dass die Ergebnisse für alle Effekte, an denen Ängstlichkeit
beteiligt ist, gleich bleiben. Warum das so ist, können Sie im Detail
dem Buchkapitel entnehmen.
anova_angst <- Anova(mod = reg_angst, idata = emotion2_sf_df, idesign = ~emotion2 * sf, icontrasts = c('contr.helmert','contr.poly'), type = 3)
summary(anova_angst)
## Warning in summary.Anova.mlm(anova_angst): HF eps > 1 treated as 1
##
## Type III Repeated Measures MANOVA Tests:
##
## ------------------------------------------
##
## Term: (Intercept)
##
## Response transformation matrix:
## (Intercept)
## PR_Freude_LSF 1
## PR_Angst_LSF 1
## PR_Neutral_LSF 1
## PR_Freude_HSF 1
## PR_Angst_HSF 1
## PR_Neutral_HSF 1
##
## Sum of squares and products for the hypothesis:
## (Intercept)
## (Intercept) 762.3784
##
## Multivariate Tests: (Intercept)
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 1 0.854966 1461.945 1 248 < 0.000000000000000222 ***
## Wilks 1 0.145034 1461.945 1 248 < 0.000000000000000222 ***
## Hotelling-Lawley 1 5.894937 1461.945 1 248 < 0.000000000000000222 ***
## Roy 1 5.894937 1461.945 1 248 < 0.000000000000000222 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## ------------------------------------------
##
## Term: zAengstlichkeit
##
## Response transformation matrix:
## (Intercept)
## PR_Freude_LSF 1
## PR_Angst_LSF 1
## PR_Neutral_LSF 1
## PR_Freude_HSF 1
## PR_Angst_HSF 1
## PR_Neutral_HSF 1
##
## Sum of squares and products for the hypothesis:
## (Intercept)
## (Intercept) 0.4979755
##
## Multivariate Tests: zAengstlichkeit
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 1 0.0038357 0.9549227 1 248 0.32942
## Wilks 1 0.9961643 0.9549227 1 248 0.32942
## Hotelling-Lawley 1 0.0038505 0.9549227 1 248 0.32942
## Roy 1 0.0038505 0.9549227 1 248 0.32942
##
## ------------------------------------------
##
## Term: emotion2
##
## Response transformation matrix:
## emotion21 emotion22
## PR_Freude_LSF -1 -1
## PR_Angst_LSF 1 -1
## PR_Neutral_LSF 0 2
## PR_Freude_HSF -1 -1
## PR_Angst_HSF 1 -1
## PR_Neutral_HSF 0 2
##
## Sum of squares and products for the hypothesis:
## emotion21 emotion22
## emotion21 0.07346939 -1.239184
## emotion22 -1.23918367 20.900898
##
## Multivariate Tests: emotion2
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 1 0.1396578 20.04753 2 247 0.0000000085486 ***
## Wilks 1 0.8603422 20.04753 2 247 0.0000000085486 ***
## Hotelling-Lawley 1 0.1623282 20.04753 2 247 0.0000000085486 ***
## Roy 1 0.1623282 20.04753 2 247 0.0000000085486 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## ------------------------------------------
##
## Term: zAengstlichkeit:emotion2
##
## Response transformation matrix:
## emotion21 emotion22
## PR_Freude_LSF -1 -1
## PR_Angst_LSF 1 -1
## PR_Neutral_LSF 0 2
## PR_Freude_HSF -1 -1
## PR_Angst_HSF 1 -1
## PR_Neutral_HSF 0 2
##
## Sum of squares and products for the hypothesis:
## emotion21 emotion22
## emotion21 0.003959743 -0.01428348
## emotion22 -0.014283481 0.05152300
##
## Multivariate Tests: zAengstlichkeit:emotion2
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 1 0.0005060 0.06252626 2 247 0.9394
## Wilks 1 0.9994940 0.06252626 2 247 0.9394
## Hotelling-Lawley 1 0.0005063 0.06252626 2 247 0.9394
## Roy 1 0.0005063 0.06252626 2 247 0.9394
##
## ------------------------------------------
##
## Term: sf
##
## Response transformation matrix:
## sf1
## PR_Freude_LSF -1
## PR_Angst_LSF -1
## PR_Neutral_LSF -1
## PR_Freude_HSF 1
## PR_Angst_HSF 1
## PR_Neutral_HSF 1
##
## Sum of squares and products for the hypothesis:
## sf1
## sf1 7.643755
##
## Multivariate Tests: sf
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 1 0.0810361 21.86913 1 248 0.0000047983 ***
## Wilks 1 0.9189639 21.86913 1 248 0.0000047983 ***
## Hotelling-Lawley 1 0.0881820 21.86913 1 248 0.0000047983 ***
## Roy 1 0.0881820 21.86913 1 248 0.0000047983 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## ------------------------------------------
##
## Term: zAengstlichkeit:sf
##
## Response transformation matrix:
## sf1
## PR_Freude_LSF -1
## PR_Angst_LSF -1
## PR_Neutral_LSF -1
## PR_Freude_HSF 1
## PR_Angst_HSF 1
## PR_Neutral_HSF 1
##
## Sum of squares and products for the hypothesis:
## sf1
## sf1 0.001187595
##
## Multivariate Tests: zAengstlichkeit:sf
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 1 0.0000137 0.003397763 1 248 0.95356
## Wilks 1 0.9999863 0.003397763 1 248 0.95356
## Hotelling-Lawley 1 0.0000137 0.003397763 1 248 0.95356
## Roy 1 0.0000137 0.003397763 1 248 0.95356
##
## ------------------------------------------
##
## Term: emotion2:sf
##
## Response transformation matrix:
## emotion21:sf1 emotion22:sf1
## PR_Freude_LSF 1 1
## PR_Angst_LSF -1 1
## PR_Neutral_LSF 0 -2
## PR_Freude_HSF -1 -1
## PR_Angst_HSF 1 -1
## PR_Neutral_HSF 0 2
##
## Sum of squares and products for the hypothesis:
## emotion21:sf1 emotion22:sf1
## emotion21:sf1 0.6612245 -1.542857
## emotion22:sf1 -1.5428571 3.600000
##
## Multivariate Tests: emotion2:sf
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 1 0.0416850 5.372033 2 247 0.0052032 **
## Wilks 1 0.9583150 5.372033 2 247 0.0052032 **
## Hotelling-Lawley 1 0.0434982 5.372033 2 247 0.0052032 **
## Roy 1 0.0434982 5.372033 2 247 0.0052032 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## ------------------------------------------
##
## Term: zAengstlichkeit:emotion2:sf
##
## Response transformation matrix:
## emotion21:sf1 emotion22:sf1
## PR_Freude_LSF 1 1
## PR_Angst_LSF -1 1
## PR_Neutral_LSF 0 -2
## PR_Freude_HSF -1 -1
## PR_Angst_HSF 1 -1
## PR_Neutral_HSF 0 2
##
## Sum of squares and products for the hypothesis:
## emotion21:sf1 emotion22:sf1
## emotion21:sf1 0.1214163 -0.1842429
## emotion22:sf1 -0.1842429 0.2795792
##
## Multivariate Tests: zAengstlichkeit:emotion2:sf
## Df test stat approx F num Df den Df Pr(>F)
## Pillai 1 0.0050614 0.6282649 2 247 0.53437
## Wilks 1 0.9949386 0.6282649 2 247 0.53437
## Hotelling-Lawley 1 0.0050872 0.6282649 2 247 0.53437
## Roy 1 0.0050872 0.6282649 2 247 0.53437
##
## Univariate Type III Repeated-Measures ANOVA Assuming Sphericity
##
## Sum Sq num Df Error SS den Df F value
## (Intercept) 127.063 1 21.555 248 1461.9445
## zAengstlichkeit 0.083 1 21.555 248 0.9549
## emotion2 1.760 2 20.228 496 21.5796
## zAengstlichkeit:emotion2 0.005 2 20.228 496 0.0648
## sf 1.274 1 14.447 248 21.8691
## zAengstlichkeit:sf 0.000 1 14.447 248 0.0034
## emotion2:sf 0.465 2 20.535 496 5.6193
## zAengstlichkeit:emotion2:sf 0.054 2 20.535 496 0.6479
## Pr(>F)
## (Intercept) < 0.00000000000000022 ***
## zAengstlichkeit 0.329422
## emotion2 0.000000001032 ***
## zAengstlichkeit:emotion2 0.937284
## sf 0.000004798268 ***
## zAengstlichkeit:sf 0.953564
## emotion2:sf 0.003862 **
## zAengstlichkeit:emotion2:sf 0.523564
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
##
## Mauchly Tests for Sphericity
##
## Test statistic p-value
## emotion2 0.99373 0.45995
## zAengstlichkeit:emotion2 0.99373 0.45995
## emotion2:sf 0.99763 0.74577
## zAengstlichkeit:emotion2:sf 0.99763 0.74577
##
##
## Greenhouse-Geisser and Huynh-Feldt Corrections
## for Departure from Sphericity
##
## GG eps Pr(>F[GG])
## emotion2 0.99377 0.000000001148 ***
## zAengstlichkeit:emotion2 0.99377 0.93642
## emotion2:sf 0.99763 0.00389 **
## zAengstlichkeit:emotion2:sf 0.99763 0.52321
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## HF eps Pr(>F[HF])
## emotion2 1.001774 0.000000001031938
## zAengstlichkeit:emotion2 1.001774 0.937283628475847
## emotion2:sf 1.005715 0.003861767279653
## zAengstlichkeit:emotion2:sf 1.005715 0.523563747861070
Zum Schluss möchten wir noch eine Bemerkung bezüglich der Praktikabilität der hier vorgestellten Analysen im täglichen wissenschaftlichen Arbeiten machen. Vielleicht haben Sie das Gefühl, dass R und das “car” Paket Ihnen sehr viel an Programmierungsaufwand abverlangen, wo Sie doch nur eine einfache Messwiederholungs-(M)ANOVA rechnen möchten. Vor allem Leserinnen und Leser, die normalerweise experimentelle Studien durchführen, könnten an dieser Stelle fürchten, dass der Aufwand sogar noch größer sein könnte, weil die Daten in unserem Beispieldatensatz bereits in aggregierter Form und im Wide-Format vorlagen. Die Rohdaten aus experimentellen Studien liegen jedoch normalerweise in unaggregierter Form und im Long-Format vor. Daher möchten wir Ihnen an dieser Stelle das Paket “afex” (Analysis of Factorial Experiments) ans Herz legen, welches auf dem Paket “car” aufbaut. Dieses Paket erlaubt es, in sehr wenigen Schritten (M)ANOVAS mit messwiederholten Daten zu rechnen. Ferner kann dieses Paket mit Daten im Long-Format und sogar mit unaggregierten Daten (bei denen z.B. eine Zeile einen Trial enthält) umgehen.
Im kommerziellen Statistikprogramm SPSS werden Helmert-Kontraste in genau umgekehrter Reihenfolge gebildet.↩︎
Sie müssen nicht wissen, was es genau damit auf sich hat. Sie sollten nur wissen, dass es verschiedene Arten gibt, im Rahmen einer (M)ANOVA die Quadratsummen zu berechnen. Es ist bis heute umstritten unter Forschern, ob es sinnvoller ist, in Fällen wie diesen Typ-2 Quadratsummen oder Typ-3 Quadratsummen zu berechnen. Wir haben uns hier für Typ-3 Quadratsummen entschieden, da (a) diese von den “Erfindern” der multivariaten Behandlung von Messwiederholungsplänen empfohlen wurden (O’Brien & Kaiser, 1985) und da (b) die Ergebnisse der MANOVA dann identisch zu Ergebnissen sind, die man in kommerziellen Statistikpaketen erhält.↩︎