II. Univariate Statistik I: Das Lineare Modell 57
6. Das Allgemeine Lineare Modell: Mehrere Erkl¨ arende Variablen 89
6.4. Mehrere, kategoriale erkl¨arende Variablen: ANOVA und LM
Wir sehen einen klaren jahreszeitlichen Effekt und die gr¨oßere Unterart (C) scheint tats¨ach-lich etwas l¨anger zu tauchen als die kleinere (S). Wir k¨onnen jetzt diese Faktoren numerisch kodieren, indem wir die Unterarten nicht C und S nennen, sondern 0 und 1. ¨Ahnlich k¨onnen wir f¨ur jede Jahreszeit eine sog. dummy-Variable anlegen, die in dieser Jahreszeit 1 und sonst 0 ist. Jetzt haben wir aus den kategorialen Variablen numerische gemacht (wenn auch keine kontinuierlichen) und k¨onnen mit einer Regression nach Effekten suchen.
Die Steigung des Effekts UnterartS (also die Steigung von C ausgehend nach S) l¨asst sich (mit Formel 5.4 auf Seite 63) berechnen als −1.84. S hat also eine um etwa 2 min k¨urzere Tauchzeit als C. Der Wert f¨ur C wird durch den y-Achsenabschnitt gegeben (12.78), da der x-Kode f¨ur C ja 0 ist (siehe Abbildung 6.4, links unten).
F¨ur die Jahreszeiten gibt es jetzt drei Geradensteigungen: von F nach S, H und W mit Werten von 3.88, 8.10 und 13.04. Der Achsenabschnitt f¨ur F ist (analog zur Unterart C) 12.78 (siehe Abbildung 6.4, links unten).
Die gerade berechneten Regressionskoeffizienten ber¨ucksichtigen nicht m¨ogliche Wechsel-wirkungen von Unterart und Jahreszeit. Sie sind nur die bivariaten Regressionen. Da Unterart und Jahreszeit miteinander interagieren k¨onnen, also die Unterarten etwa im Sommer gleiche, aber im Winter unterschiedliche Tauchzeiten haben, m¨ussen wir drei weitere Koeffizienten be-stimmen: JahreszeitS:UnterartS, JahreszeitH:UnterartS und JahreszeitW:UnterartS.
Diese drei Koeffizienten geben also die Abweichung f¨ur die drei Jahreszeiten von dem Wert, der sich aus JahreszeitF und UnterartC errechnen l¨asst, an.
Bevor wir dies am Beispiel durchf¨uhren sei noch erw¨ahnt, dass sich, wie bei der Regression, f¨ur jeden Koeffizienten ein t-Test auf Abweichung von Null durchf¨uhren l¨asst.
Hier kommt derR-code f¨ur Abbildung 6.4 und das dazugeh¨orige lineare Modell:
> kormoran <- read.table("Kormoran.txt", header = T)
> attach(kormoran)
> Jahreszeit <- factor(Jahreszeit, levels = c("F", "S", "H", "W"))
> library(lattice)
> trellis.par.set("background$col" = "white")
> xyplot(Tauchzeit ~ Jahreszeit | Unterart, pch = 16, cex = 1.3, + par.strip.text = list(cex = 2), scales = list(alternating = F))
> par(mfrow = c(1, 2))
> plot(Tauchzeit ~ I(as.numeric(Unterart) - 1), xlab = "Unterart (kodiert)")
> lines(c(0, 1), c(19.15, 19.15 - 0.375))
> plot(Tauchzeit ~ I(as.numeric(Jahreszeit) - 1), xlab = "Jahreszeit (kodiert)")
> lines(c(0, 1), c(12.92, 12.92 + 3.87))
> lines(c(0, 2), c(12.92, 12.92 + 7.24))
> lines(c(0, 3), c(12.92, 12.92 + 13.11))
> summary(fm <- lm(Tauchzeit ~ Unterart * Jahreszeit)) Call:
lm(formula = Tauchzeit ~ Unterart * Jahreszeit) Residuals:
Min 1Q Median 3Q Max
-3.280 -0.905 -0.290 0.945 4.580 Coefficients:
Estimate Std. Error t value Pr(>|t|) (Intercept) 12.7800 0.7288 17.535 < 2e-16 ***
UnterartS -1.8400 1.0307 -1.785 0.083720 .
JahreszeitS 3.8800 1.0307 3.764 0.000676 ***
JahreszeitH 8.1000 1.0307 7.859 5.76e-09 ***
JahreszeitW 13.0400 1.0307 12.651 5.38e-14 ***
UnterartS:JahreszeitS -1.3000 1.4577 -0.892 0.379139 UnterartS:JahreszeitH -1.4600 1.4577 -1.002 0.324051
UnterartS:JahreszeitW -2.9600 1.4577 -2.031 0.050671 .
---Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1 Residual standard error: 1.63 on 32 degrees of freedom Multiple R-Squared: 0.9114, Adjusted R-squared: 0.892 F-statistic: 47.02 on 7 and 32 DF, p-value: 4.638e-15
Da der Koeffizient f¨ur UnterartS nicht signifikant von 0 unterschiedlich ist, deutet sich an, dass die Unterarten bez¨uglich ihrer Tauchzeit wahrscheinlich nicht unterscheidbar sind. Um dies herauszubekommen, lassen wir uns die ANOVA-Tabelle ausgeben. Darin wird auf die Signifikanz der Effekte getestet.
> anova(fm)
Analysis of Variance Table Response: Tauchzeit
Df Sum Sq Mean Sq F value Pr(>F) Unterart 1 106.93 106.93 40.2594 4.013e-07 ***
Jahreszeit 3 756.17 252.06 94.9009 5.185e-16 ***
Unterart:Jahreszeit 3 11.01 3.67 1.3817 0.2661
Residuals 32 84.99 2.66
---Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
Da im vorliegenden Fall die Interaktionenskoeffizienten (und in der ANOVA-Tabelle die Interaktion insge-samt) nicht signifikant sind k¨onnen wir das Modell vereinfachen:
> anova(lm(Tauchzeit ~ Unterart + Jahreszeit)) Analysis of Variance Table
Response: Tauchzeit
Df Sum Sq Mean Sq F value Pr(>F) Unterart 1 106.93 106.93 38.984 3.691e-07 ***
Jahreszeit 3 756.17 252.06 91.895 < 2.2e-16 ***
Residuals 35 96.00 2.74
---Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
Wenn wir alle diese Koeffizienten berechnet haben, k¨onnen wir den vorhergesagten Wert ei-ner Beobachtung daraus rekonstruieren. Dies ist praktisch eine dreidimensionale Rekonstruk-tion der Daten. Dimensionen 1 und 2 sind Unterart und Jahrezeit, w¨ahrend die Tauchzeit die dritte Dimension darstellt. Wenn wir den vorhergesagten Mittelwert f¨ur die Unterart S im Herbst wissen wollen, so addieren wir folgende Koeffizienten des obigen Modells:
(Intercept)+UnterartS+JahreszeitH+UnterartS:JahreszeitH= 12.78 − 1.84 + 8.10 − 1.46 = 17.58.10
6.4.2. Kategoriale erkl¨arende Variablen in der ANOVA
In einer Varianzanalyse verl¨auft der Test auf Signifikanz beteiligter Variablen etwas anders ab, als in der Regression dargelegt. Vielmehr ist es eine Erweiterung der Ideen, die in Abschnitt 5.3.1 auf Seite 81 f¨ur nur einen Faktor ausgef¨uhrt wurde.
10InRist daf¨ur die Funktion predict verf¨ugbar: predict(fm, newdata=data.frame(Unterart="S", Jahreszeit="H"))
Man kann argumentieren, dass die ANOVA nur eine andere Formulierung des LM ist, und ihr deshalb keinen besonderen Raum einr¨aumen. Andererseits hat kein anderes modernes sta-tistisches Verfahren so schnell und fundamental Einzug in die biologische Statistik gehalten wie die ANOVA. Die von ihr durchgef¨uhrten Analysen sind in allen statistischen Software-programmen verf¨ugbar, w¨ahrend dies f¨ur LM nicht immer der Fall ist. Somit ist der ANOVA inzwischen eine Sonderstellung angediehen, die es erforderlich macht, auch hier ein paar Ab-s¨atze ¨uber grunds¨atzliche Unterschiede und ¨Ahnlichkeiten von LM und ANOVA darzulegen.
Wir beginnen mit dem gleichen Beispiel wie gerade, den Kormoranen.
Die Berechnungen der ANOVA erfordern alle die Berechnung verschiedener Mittelwerte und der Abweichungen der Datenpunkte von diesen Mittelwerten. Im Beispiel betr¨agt der Mittelwert ¨uber alle Datenpunkte 17.4, und die Summe der Abweichungsquadrate (kurz SSres, f¨ur sum of squares der Residuen) etwa 959.1 (sum((Tauchzeit-mean(Tauchzeit))^2)). Jetzt berechnen wir f¨ur die beiden Unterarten einen eigenen Mittelwert (Gruppenmittel) (¯xC = 19.03, ¯xS= 15.77), und die SSres um die jeweiligen Gruppenmittel (mit dem Taschenrechner R):
> sum((Tauchzeit[Unterart == "C"] - mean(Tauchzeit[Unterart ==
+ "C"]))^2) [1] 532.1055 und
> sum((Tauchzeit[Unterart == "S"] - mean(Tauchzeit[Unterart ==
+ "S"]))^2) [1] 320.0655
Es ist also SSC = 532.11 und SSS = 320.07, so dass die SSres unter Ber¨ucksichtigung des Faktors Unterart = 532.11 + 320.07 = 852.18. Der Effekt (in SS) von Unterart ist also 959.1 − 852.18 = 106.92.
Treiben wir dieses Spiel f¨ur den Faktor Jahreszeit (mit entsprechend vier Mittelwerten und SS), so erhalten wir ¯xF = 11.86, ¯xS = 15.09, ¯xH = 19.23, ¯xW = 23.42, SSF = 29.22, SSS= 33.87, SSH = 45.36 und SSW = 94.48. Aufsummiert sind dies 202.93 unerkl¨arte SS f¨ur die Residuen. Entsprechend erkl¨arte der Faktor Jahreszeit (959 − 203 =) 756 von 959.
Abbildung 6.5 macht deutlich, um wieviel besser die Mittelwerte je Jahreszeit die Daten-punkte ann¨ahern als der Gesamtmittelwert.
Wir berechnen die SSF aktor, indem wir einfach die Abweichungen der Gruppenmittel vom Gesamtmittel berechnen. Dies ist ja gerade der Faktoreffekt. SSU nterart = ((¯x − ¯xC)2 + (¯x − ¯xS)2) · 20 = 107 Wir multiplizieren mit 20, da der Mittelwert der Gruppen auf 20 Messwerten beruht.11 Dies ist der gleiche Wert, den wir weiter oben als Differenz zwischen den Gesamtabweichungsquadraten (SStotal) und den Abweichungsquadraten der Residuen f¨ur Unterart(SSU nterart) berechnet haben. Welchen Weg wir beschreiten ist gleichg¨ultig.
Aus diesen Werten k¨onnen wir die F -Statistik f¨ur Unterart berechnen:
F = SSUnterart/dfUnterart
SSResiduen/dfResiduen = 107/1
(959 − 107)/(40 − 1 − 1) = 107
22.42 = 4.77 Der assoziiert P -Wert ist 0.035.
Entsprechende Berechnungen f¨ur (vier!) Jahreszeit sehen so aus:
F = SSJahreszeit/dfJahreszeit
SSResiduen/dfResiduen = 756/3
(959 − 756)/(40 − 3 − 1) = 252
5.34 = 47.17 Der assoziiert P -Wert ist viel kleiner als 0.001:
11Bei nur zwei Kategorien eines Faktors sind die Abweichungen der Gruppenmittel vom Gesamtmittelwert jeder Gruppe gleich. Deshalb k¨onnten wir auch diesen Wert in diesem Fall auch nur f¨ur eine Gruppe berechnen, und mit 40 multiplizieren. Bei drei oder mehr Gruppen ist dies nat¨urlich nicht mehr m¨oglich.
0 10 20 30 40
51015202530
Index
Tauchzeit
0 10 20 30 40
51015202530
Index
Tauchzeit
Abbildung 6.5.: Abweichung der Datenpunkte vom Gesamtmittelwert (links) und von den Gruppenmittelwerten (rechts). Diese Abweichungen quadriert sind die SSJahreszeit. Daten wie Abbildung 6.4.
> pf(47.17, 1, 38, lower.tail = F) [1] 3.711755e-08
Was wir hier berechnet haben sind die Einzeleffekte der Faktoren Unterart und Jah-reszeit. Unser Experiment war aber so angelegt, dass beide manipuliert wurden, und wir deshalb eine kombinierte Analyse vornehmen k¨onnen. Dies hat zur Folge, dass sich die Werte f¨ur die Residuen stark reduzieren:
Zusammen addieren sich die SSF aktor unserer beiden Faktoren Unterart und Jahreszeit also zu 107+756 = 863. Somit bleiben f¨ur die Residuen nur noch 959−863 = 96 ¨ubrig. Da wir jetzt die F -Statistik neu berechnen, n¨amlich auf Grundlage dieses viel kleineren Wertes f¨ur SSres, werden unsere Faktoren noch st¨arker signifikant. Zu ber¨ucksichtigen ist dabei allerdings, dass sich die Freiheitsgrade f¨ur die Residuen jetzt auf das Gesamtmodell beziehen, nicht alleine auf einen Faktor. Statt 40 − 1 − 1 = 38 f¨ur die Residuen von Unterart haben wir jetzt 40 − 1 − 3 − 1 = 35 f¨ur beide Faktoren:
F = SSUnterart/dfUnterart
SSres/dfres = 107/1
96/(40 − 4 − 1) = 107
2.74 = 39.0 Der assoziiert P -Wert ist viel kleiner als 0.001.
Dito f¨ur Jahreszeit:
F = SSJahreszeit/dfJahreszeit
SSres/dfres = 756/3
96/(40 − 4 − 1) = 252
2.74 = 92.0 Der assoziiert P -Wert ist ebenfalls viel kleiner als 0.001.
Wir sehen also, dass aufgrund der Kombination beider Faktoren in einer Analyse die Er-kl¨arungskraft unseres statistischen Modells dramatisch zunimmt, und beide Faktoren jetzt hochsignifikant sind.
F¨ur das additive ANOVA-Modell (also mit Unterart und Jahreszeit, aber ohne Interak-tionen) k¨onnen wir jetzt eine ANOVA-Tabelle konstruieren:
Effekt SS df MS F P
Unterart 107 1 107 39.0 <0.0001 Jahreszeit 756 3 252 92.0 <0.0001 Residuen 96 35 2.7
Gesamt 959 40
Schließlich k¨onnen wir auch die Interaktion auf diese Weise berechnen, indem wir Gruppen bilden, in der sowohl Unterart als auch Jahreszeit spezifiziert sind (2·4 = 8 Gruppen). Dies bringt nur eine geringe (nicht signifikante) Reduzierung der SSres gegen¨uber dem additiven Modell: 175 gegen¨uber 185.
Diese Berechnungsweise k¨onnen wir auf weit mehr Faktoren ausweiten. Sp¨atestens wenn signifikante Interaktionen dazukommen wird jedoch die Interpretierbarkeit gef¨ahrdet. Dieses Beispiel soll illustrieren, dass hinter der ANOVA auch keine Magie steckt, sondern dass sich diese Berechnungen auch mit dem Taschenrechner durchf¨uhren lassen.
Die ANOVA ist in Rdurch die Funktion aov implementiert12. Wir k¨onnen aber auch aus dem linearen Modell eine ANOVA-Tabelle konstruieren, wie im letzten Beispiel gezeigt. Der Syntax von aov ist analog zu lm.
> summary(aov(Tauchzeit ~ Unterart + Jahreszeit)) Df Sum Sq Mean Sq F value Pr(>F) Unterart 1 106.93 106.93 38.984 3.691e-07 ***
Jahreszeit 3 756.17 252.06 91.895 < 2.2e-16 ***
Residuals 35 96.00 2.74
---Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
> detach(kormoran)