Keywords: einfaktorielle Varianzanalyse (ANOVA), statistischer Test, Statistik Beratung, Data Science

Einführung

Im folgenden geht es um die Einfaktorielle Varianzanalyse. Bestehen Hypothesen über die Erwartungswerte einer Variable in mehr als zwei Bedingungen wir häufig eine Varianzanalyse (AONVA, analysis of variance) zur Prüfung herangezogen. Die einfaktorielle Varianzanalyse ohne Messwiederholung mit \(k\) Gruppen verallgemeinert dabei die Fragestellung eines t-Tests für unabhängige Stichproben auf Situationen, in denen Werte einer normalverteilten Variable in mehr als zwei Gruppen ermittelt werden. In der einfaktoriellen Varianzanalyse wird geprüft, ob die in verschiedenen Bedingungen erhobenen Werte einer Variable mit der \(H_0\) verträglich sind, dass diese Variable in allen Gruppen denselben Erwartungswert besitzt. Die \(H_1\) lautet, dass sich mindestens zwei Erwartungswerte unterscheiden.

Voraussetzungen

  • Die Fehlerkomponenten müssen normalverteilt sein. Fehlerkomponenten bezeichnen die jeweiligen Varianzen (Gesamt-, Treatment- und Fehlervarianz). Die Gültigkeit dieser Voraussetzung setzt gleichzeitig eine Normalverteilung der Messwerte in der jeweiligen Grundgesamtheit voraus.

  • Die Fehlervarianzen müssen zwischen den Gruppen (also den k Faktorstufen) gleich bzw. homogen sein.

  • Die Messwerte bzw. Faktorstufen müssen unabhängig voneinander sein.

Hypothesen

Es sei \(\mu_i\) der Erwartungswert der abhängigen Variable in der \(i\). Gruppe. Die Nullhypothese einer einfaktoriellen Varianzanalyse lautet:

\[ H_0: \mu_1 = \mu_2 = ... = \mu_k \]

Die Alternativhypothese lautet:

\[ H_1: \exists i,j:\ \mu_i \neq \mu_j \]

Die Nullhypothese besagt demnach, dass zwischen den Erwartungswerten der Gruppen (die den Faktorausprägungen bzw. Faktorstufen entsprechen) kein Unterschied besteht. Die Alternativhypothese besagt, dass zwischen mindestens zwei Erwartungswerten ein Unterschied besteht. Wenn wir beispielsweise fünf Faktorstufen haben, dann ist die Alternativhypothese bestätigt, wenn sich mindestens zwei der Gruppenmittelwerte unterscheiden. Es können sich aber auch drei Erwartungswerte oder vier oder alle fünf deutlich voneinander unterscheiden.

Mathematisches Modell

Das Modell in Effektdarstellung lautet: \[ X_{ij} = \mu + \alpha_{i} + \varepsilon_{ij},\quad i=1,\dots,k,\ j=1,\dots,n_{i}. \]

Darin sind:

  • \(X_{ij}\): Zielvariable; annahmegemäß in den Gruppen normalverteilt
  • \(k\): Anzahl der Faktorstufen des betrachteten Faktors
  • \(n_i\): Stichprobenumfänge für die einzelnen Faktorstufen
  • \(\mu\): arithmetisches Mittel der Erwartungswerte in den Gruppen
  • \(\alpha_i\): Effekt der i-ten Faktorstufe \(\epsilon_{ij}\): Störvariablen, unabhängig und normalverteilt mit Erwartungswert \(0\) und gleicher (unbekannter) Varianz \(\sigma^2\).

Für den Erwartungswert in der \(i\). Gruppe schreibt man üblicherweise \(\mu_i=\mu + \alpha_i\), und es gilt :

\[\sum_{i=1}^kn_i\alpha_i = 0.\]

Quadratsummen

Die gesamte Variabilität, QST, ausgedrückt wie die gesamte quadratische Abweichung vom Mittelwert, lässt sich in zwei Teile zerlegen. Ein Teil bezieht sich auf die Gruppenzugehörigkeit, und der andere Teil, der Rest, wird dem Zufall zugeschrieben. Der erste Teil, QSA, lässt sich ausdrücken als die quadratische Abweichung der Mittelwerte vom Gesamtmittelwert der Gruppen. Der Rest, QSE, der die Unterschiede innerhalb der Gruppen betrifft, wird ausgedrückt als die gesamte Abweichung von den Mittelwerten in den Gruppen. Es gilt also:

\[QST=QSA + QSE \]

Darin ist: \[\!\,QST=\sum(X_{ij}-X..)^2,\]

\[\!\,QSA=\sum_i n_i(X_i.-X..)^2,\]

und \[\!\,QSE=\sum_{i,j}(X_{ij}-X_i.)^2.\]

Die zwei Quadratsummen QSA und QSE sind stochastisch unabhängig.

Im Fall von \(k\) Gruppen mit gleichem Umfang \(N/k\) gilt unter der Nullhypothese außerdem:

\(QSA/\sigma^2\) folgt einer Chi-Quadrat-Verteilung mit k-1 Freiheitsgraden,

und \(QSE/\sigma^2\) folgt einer Chi-Quadrat-Verteilung mit \(N - k\) Freiheitsgraden.

Prüfgröße

Man definiert meistens auch noch die mittleren Quadratsummen: \[MQSA=\frac 1{k-1}QSA,\]

und \[MQSE=\frac 1{n-k}QSE.\]

Damit lässt sich die Prüfgröße definieren wie: \[F=\frac{MQSA}{MQSE}.\]

Im Falle Gruppen gleicher Größe ist \(F\) unter der Nullhypothese also F-Verteilt mit \(k-1\) Freiheitsgraden im Zähler und \(N-k\) Freiheitsgraden im Nenner.

Wenn die Prüfgröße signifikant wird, unterscheiden sich mindestens zwei Gruppen voneinander.

Beispiel

Es sei folgendes Beispiel gegeben:

Gruppe Scores
Gruppe 1 8 12 7 10 11 12
Gruppe 2 7 9 15 13 11 16 12 8 13 16
Gruppe 3 4 5 6 3 8 10 3 9

Wir wollen untersuchen, ob die Gruppe einen Einfluss auf das Score hat. Dazu verwenden wir die einfaktorielle Varianzanalyse mit \(k=3\) Gruppen.

k <- 3                                # Anzahl der Gruppen
Nj <- c(6,10,8)                       # Gruppengroessen
IV <- factor(rep(seq(1,k),Nj))        # Gruppierungsfaktor
g1 <- c(8,12,7,10,11,12)              # Gruppe 1
g2 <- c(7,9,15,13,11,16,12,8,13,16)   # Gruppe 2
g3 <- c(4,5,6,3,8,10,3,9)             # Gruppe 3
DV <- c(g1,g2,g3)                     # Gesamtgruppen
d <- data.frame(IV,DV)            # Datensatz
oneway.test(DV ~ IV, data = d , var.equal = TRUE)  # erste Moeglichkeit den Test in R zu machen
## 
##  One-way analysis of means
## 
## data:  DV and IV
## F = 10.125, num df = 2, denom df = 21, p-value = 0.0008344
summary(aov(DV ~ IV, data = d))                    # zweite Moeglichkeit den Test in R zu machen
##             Df Sum Sq Mean Sq F value   Pr(>F)    
## IV           2    162      81   10.12 0.000834 ***
## Residuals   21    168       8                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Interpretation: Da der p-Wert \(< 0.05\) ist, können wir die Nullhypothese verwerfen dass alle Mittelwerte gleich sind. D.h. die Gruppe hat einen Einfluss auf das Score.

Wir wollen hier noch eine dritte, direkte Möglichkeit zeigen, den Test in R durchzuführen:

N <- sum(Nj)                # Gesamt-N
Vj <- tapply(DV,IV,var)         # korrig. Gruppenvarianzen
Mj <- tapply(DV,IV,mean)        # Gruppenmittel
M <- sum((Nj/N)*Mj)         # gewichtetes Gesamtmittel
SSw <- sum((Nj-1)*Vj)           # Quadratsumme within
SSb <- sum(Nj*(Mj-M)^2)         # Quadratsumme between
MSw <- SSw / (N-k)          # mittlere QS within
MSb <- SSb / (k-1)          # mittlere QS between
Fval <- MSb / MSw           # Teststatistik
pVal <- pf(Fval, k-1,N-k, lower.tail=FALSE) # p-Wert
print(Fval)
## [1] 10.125
print(pVal)
## [1] 0.0008343554