Der F-Test für zwei Stichproben

Zusammenfassung
Wir behandeln in diesem Kapitel den F-Test für zwei Stichproben. Dieser eignet sich dazu, zwei Stichproben aus unterschiedlichen, normalverteilten Populationen auf Unterschiede in den Varianzen zu prüfen.

Lernziele: Am Ende des Kapitels können Sie

  • den F-Test in R anwenden
  • die Ergebnisse interpretieren

1 Einführung

Als F-Test wird eine ganze Gruppe von statistischen Hypothesentests in der induktiven Statistik bezeichnet (Fahrmeir u. a. 2016). Die gängigsten F-Tests unterteilen sich in die folgenden Varianten:

  • Bei der Regressionsanalyse wird mit Hilfe des F-Tests eine Kombination von linearen Hypothesen getestet. Die bekanntesten Fälle sind der globale F-Test, der prüft ob mindestens ein Regressionskoeffizient ungleich null ist, und der t-Test für einen einzelnen Regressionskoeffizienten.

  • Im Rahmen des Normalverteilungsmodells wird mit Hilfe eines F-Tests überprüft, ob zwei Stichproben aus normalverteilten Populationen sich in Bezug auf ihre Varianz voneinander unterscheiden.

Beachten Sie: Wenn X \sim t_n verteilt ist, so ist X^2 \sim F_{1,n} verteilt.

Der Grund dafür, dass diese verschiedenen Tests alle als F-Tests bezeichnet werden, ist die Verteilung der zugehörigen Teststatistiken. Diese sind jeweils F-verteilt, wobei sich je nach Test die Freiheitsgrade der F-Verteilung unterscheiden (Fahrmeir u. a. 2016).

Die F-Verteilung selbst ist nach einem der Pioniere der Statistik, Ronald Aylmer Fisher (* 17. Februar 1890; † 29. Juli 1962), benannt.

In diesem Kapitel behandeln wir den F-Test für zwei Stichproben. Dieser dient zur Überprüfung, ob zwei Stichproben aus normalverteilten Grundgesamtheiten sich hinsichtlich ihrer Varianz unterscheiden.

2 Der F-Test für zwei Stichproben

Die Modellannahmen des F-Tests für zwei Stichproben sind die folgenden. Es werden zwei unterschiedliche normalverteilte Populationen vorausgesetzt, und es wird die Annahme getroffen, dass die Stichproben (X_1,…,X_m) und (Y_1,…,Y_n) in diesen normalverteilt sind:

X_i \sim N(\mu_1,\sigma_1^2), \hspace{1cm} Y_i \sim N(\mu_2,\sigma_2^2)

Weiter wird die Annahme getroffen, dass diese Stichproben unabhängig sowohl innerhalb einer Gruppe als auch untereinander sind. Die Stichproben (X_1,…,X_{m}) und (Y_1,…,Y_{n}) werden aus den beiden Populationen gezogen, wobei die Stichprobenumfänge m und n unterschiedlich sein dürfen. Der F-Test für zwei Stichproben wird dann durchgeführt, wenn vermutet wird, dass die Varianzen in beiden Gruppen sich unterscheiden.

In der Praxis sind die folgenden beiden Hypothesenpaare relevant:

  • H_0:\sigma_2^2 = \sigma_1^2 gegen H_1:\sigma_2^2 \neq \sigma_1^2, die Varianzen in beiden Gruppen unterscheiden sich. Dies ist ein zweiseitiger Test.

  • H_0:\sigma_2^2 = \sigma_1^2 gegen H_1:\sigma_2^2 > \sigma_1^2, die Varianz in Gruppe 2 ist größer als die in Gruppe 1. Dies ist ein einseitiger Test.

3 Herleitung der Teststatistik

Als ersten Schritt im Rahmen der statistischen Analyse zweier Stichproben (X_1,…,X_{m}) und (Y_1,…,Y_{n}) bietet es sich an, die Mittelwerte und Stichprobenvarianzen zu berechnen:

\bar{X}:=\sum_{i=1}^m X_i \hspace{1cm} s_X^2 := \frac{1}{m-1}\sum_{i=1}^m (X_i-\bar{X})^2 \bar{Y}:=\sum_{i=1}^n Y_i \hspace{1cm} s_Y^2 := \frac{1}{n-1}\sum_{i=1}^n (Y_i-\bar{Y})^2

3.1 Zweiseitiges Testproblem

Die Idee hinter der Teststatistik F-Test für zwei Stichproben ist relativ simpel. Man bildet den Quotienten F:=\frac{s_Y^2}{s_X^2} \tag{3.1} der Stichprobenvarianzen in beiden Gruppen. Unter der Nullhypothese H_0:\sigma_2^2 = \sigma_1^2 erwarten wir dann einen F-Wert nahe 1. Natürlich wird der konkrete Wert von F nie exakt 1 ergeben, und der statistische Hypothesentest dient dazu, herauszufinden, ob die Abweichung vom Wert 1 auf Zufall oder die Ungültigkeit der Hypothese H_0 zurückgeführt werden kann. Da die Alternative H_1:\sigma_2^2 \neq \sigma_1^2 zweiseitig ist, deuten sowohl große Werte von F als auch kleine Werte auf die Ungültigkeit von H_0 hin.

Man kann beweisen, dass F in Gleichung 3.1 eine F_{n-1,m-1}-Verteilung hat. Die kritischen Werte für den F-Test entnimmt man daher den \alpha/2- und 1-\alpha/2-Quantilen dieser Verteilung für ein vorgegebenes Testniveau \alpha. Die Nullhypothese H_0 wird dann verworfen, wenn der beobachtete Wert der F-Statistik in Gleichung 3.1 den unteren kritischen Wert F_{n-1,m-1,\alpha/2} oder oberen kritischen Wert F_{n-1,m-1,1-\alpha/2} überschreitet.

Erinnerung: Sind Y und X unabhängige \chi_{n-1}^2 bzw. \chi_{m-1}^2-verteilte Zufallsvariablen, so hat F=\frac{Y/n-1}{X/m-1} eine F_{n-1,m-1}-Verteilung mit n-1 und m-1 Freiheitsgraden. Für Details siehe Bijma u. a. (2017).

3.2 Einseitiges Testproblem

Im einseitigen Testproblem interessiert die Alternative H_1: \sigma_2^2 > \sigma_1^2. Man kann hier jedoch dieselbe Teststatistik aus Gleichung 3.1 verwenden. In diesem Fall deuten jedoch lediglich große Werte von F auf die Ungültigkeit von H_0:\sigma_2^2 = \sigma_1^2 hin. Man verwirft daher H_0 zum Testniveau \alpha nur dann, falls der Wert der F-Statistik in Gleichung 3.1 größer oder gleich dem (1-\alpha)-Quantil der F_{n-1,m-1}-Verteilung ist: \frac{s_Y^2}{s_X^2} \geq F_{n-1,m-1,1-\alpha} In der Praxis ist es oft unrealistisch, eine präzise Nullhypothese H_0:\sigma_2^2 = \sigma_1^2 anzunehmen. Realistischer ist der einseitige Test H_0:\sigma_2^2 \leq \sigma_1^2 \text{ versus } H_1:\sigma_2^2 > \sigma_1^2 Unter dieser Nullhypothese stellt sich die Frage, ob immer noch derselbe kritische Wert verwendet werden kann. Tatsächlich ist dies der Fall, da s_X^2 am größten wird, wenn \sigma_2^2 = \sigma_1^2 gilt, also die wahren Parameter \sigma_1^2, \sigma_2^2 dem rechten Endpunkt aus H_0 entsprechen. Der kritische Wert zum Testniveau \alpha ist daher immer noch das F_{n-1,m-1,1-\alpha}-Quantil.

4 Anwendungsbeispiel Pharmaindustrie

Kommen wir nun zu einem Anwendungsbeispiel:

Beispiel 4.1 (Qualitätskontrolle in der Pharmaindustrie) Das Pharmaunternehmen Astra Mathematica möchte die Herstellung eines Medikaments auf ein neues Fertigungsverfahren umstellen, welches eine bessere Qualität verspricht. Das neue Verfahren ist zwar kostspieliger, soll jedoch dafür eine kleinere Streuung der Medikamentenqualität garantieren, wodurch der Ausschuss niedriger wird. Gemessen wird die Qualität des Medikaments durch ein Messverfahren welches annähernd normalverteilte Werte als Resultat liefert. Um die Rentabilität des neuen Verfahrens zu testen, wird eine Stichprobe von 25 Packungen des Medikaments produziert und analysiert. Diese sollen mit 20 auf Lager liegenden Medikamenten verglichen werden, die nach dem alten Fertigungsverfahren hergestellt wurden.

Die Messwerte (X_1,...,X_{25}) und (Y_1,...,Y_{20}) aus der Analyse sind in Tabelle 4.1 (a) und Tabelle 4.1 (b) angegeben.

Das Pharmaunternehmen stellt sich die folgende Frage: Ist die Varianz des neuen Fertigungsverfahrens kleiner als die des alten Fertigungsverfahrens?

Tabelle 4.1: Messergebnisse des neuen und alten Fertigungsverfahren im Anwendungsbeispiel
(a) Messergebnisse (X_1,...,X_{25}) neues Fertigungsverfahren
0.04 1.55 1.17 -0.27 -0.47
-1.24 -0.01 -0.80 -0.53 1.29
-0.18 -1.07 0.16 -0.36 0.59
1.43 -0.99 0.45 0.08 0.90
0.84 -1.75 1.69 0.86 -0.15
(b) Messergebnisse (Y_1,...,Y_{20}) altes Fertigungsverfahren
-2.001 0.334 1.171 2.060 -1.377
-0.217 -1.284 0.386 -0.352 -0.522
1.349 -0.023 0.244 -0.942 -0.729
0.998 1.258 1.249 -1.381 2.050

Das Pharmaunternehmen ist also am Test der Hypothese H_0:\sigma_2^2 \leq \sigma_1^2 gegen H_1:\sigma_2^2 > \sigma_1^2 interessiert. Da \sigma_1^2 die Varianz des neuen Fertigungsverfahrens ist, und \sigma_2^2 die des alten, kann man schlussfolgern das die Varianz des neuen Verfahrens tatsächlich kleiner ist wenn H_0:\sigma_2^2 \leq \sigma_1^2 verworfen wird.

Aufgabe 4.1 (Berechnung der Teststatistik) Berechnen Sie den Wert der Teststatistik F in Gleichung 3.1 für das Anwendungsbeispiel. Die Werte aus Tabelle 4.1 (a) und Tabelle 4.1 (b) sind in den Vektoren X und Y verfügbar:

X <- c(0.04, 1.55, 1.17, -0.27, -0.47,
       -1.24,   -0.01, -0.80, -0.53, 1.29,
       -0.18,   -1.07, 0.16, -0.36, 0.59,
       1.43, -0.99, 0.45, 0.08, 0.90,
       0.84, -1.75, 1.69, 0.86, -0.15)

Y <- c(-2.001, 0.334, 1.171, 2.060, -1.377,
       -0.217, -1.284, 0.386,   -0.352, -0.522,
       1.349,   -0.023, 0.244, -0.942,  -0.729,
       0.998,   1.258, 1.249, -1.381,   2.050)

Sie können s_X^2 und s_Y^2 durch die Werte in Tabelle 4.1 (a) und Tabelle 4.1 (b) mit Hilfe der Funktion var schätzen.

Aufgabe 4.2 (Testentscheidung) Welche Testentscheidung muss das Pharmaunternehmen treffen, wenn der F-Test für zwei Stichproben zum Testniveau \alpha=0.05 durchgeführt wird?

Nutzen Sie den Wert der F-Statistik, den Sie in Arbeitsauftrag 1 berechnet haben. Die Freiheitsgrade n und m der F-Statistik in Gleichung 3.1 können Sie dann den Stichprobengrößen entnehmen. Die Funktion qf(q = ..., df1 = ..., df2 = ...) gibt die Quantile der F-Verteilung mit df1 und df2 Freiheitsgraden an.

Aufgabe 4.3 (p-Wert) Welcher zugehörige p-Wert ergibt sich für den F-Test aus dem Anwendungsbeispiel?

Sie können die Funktion pf(..., df1 = ..., df2 = ...) verwenden.

5 Anwendungsbeispiel Biologie

Wir verwenden nun einen Datensatz von Gorman, Williams, und Fraser (2014), der Daten zu drei verschiedenen antarktischen Pinguinarten enthält. Diese wurden 2007-2009 von Dr. Kristen Gorman im Rahmen des Palmer Station Long Term Ecological Research Program gesammelt und aufbereitet.

Zunächst installieren und laden wir dazu das R-Paket palmerpenguins.

install.packages("palmerpenguins")

Anschließend laden wir den Datensatz, wobei wir elf Pinguine entfernen die unvollständige Messungen enthalten. Zusätzlich laden wir die Pakete ggplot2 zur Visualisierung und dplyr zum Filtern des Datensatzes.

library(palmerpenguins)
library(dplyr)
library(ggplot2)
theme_set(theme_minimal())
penguins <- na.omit(penguins)
head(penguins)
str(penguins)
tibble [333 × 8] (S3: tbl_df/tbl/data.frame)
 $ species          : Factor w/ 3 levels "Adelie","Chinstrap",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ island           : Factor w/ 3 levels "Biscoe","Dream",..: 3 3 3 3 3 3 3 3 3 3 ...
 $ bill_length_mm   : num [1:333] 39.1 39.5 40.3 36.7 39.3 38.9 39.2 41.1 38.6 34.6 ...
 $ bill_depth_mm    : num [1:333] 18.7 17.4 18 19.3 20.6 17.8 19.6 17.6 21.2 21.1 ...
 $ flipper_length_mm: int [1:333] 181 186 195 193 190 181 195 182 191 198 ...
 $ body_mass_g      : int [1:333] 3750 3800 3250 3450 3650 3625 4675 3200 3800 4400 ...
 $ sex              : Factor w/ 2 levels "female","male": 2 1 1 1 2 1 2 1 2 2 ...
 $ year             : int [1:333] 2007 2007 2007 2007 2007 2007 2007 2007 2007 2007 ...
 - attr(*, "na.action")= 'omit' Named int [1:11] 4 9 10 11 12 48 179 219 257 269 ...
  ..- attr(*, "names")= chr [1:11] "4" "9" "10" "11" ...

Der Datensatz enthält Messungen zu 344 Pinguinen der Spezies Adelie, Chinstrap und und Gentoo. Die 344 Pinguine wurden auf drei verschiedenen Inseln Biscoe, Dream und Torgersen gesichtet, und die erhobenen Variablen sind

  • Die Schnabellänge bill_length_mm in Millimetern

  • Die Schnabeldicke bill_depth_mm in Millimetern

  • Die Flossenlänge flipper_length_mm in Millimetern

  • Das Gewicht body_mass_g in Gramm

  • Das Geschlecht sex

  • Das Jahr year wann der Pinguin gesichtet und vermessen wurde

Abbildung 5.1: Schnabellänge und -dicke von Pinguinen, Grafik von Allison Horst

Abbildung 5.1 veranschaulicht die gemessenen Abschnitte.

Wir interessieren uns für das folgende Anwendungsbeispiel:

Beispiel 5.1 (Gewicht von Adelie- und Gentoo-Pinguinen) Eine Forscher:innengruppe möchte herausfinden, ob sich die Varianz der Schnabellänge in Millimeter von Adelie- und Gentoo-Pinguinen sich unterscheidet. Dazu soll ein geeigneter F-Test durchgeführt werden.

Zunächst werden dazu die Messungen beider Gruppen in den Variablen adelie und gentoo gespeichert:

adelie <- penguins %>% filter(species == "Adelie")
gentoo <- penguins %>% filter(species == "Adelie")

Anschließend wird ein Boxplot erstellt, um die Unterschiede zwischen den Spezies zu veranschaulichen:

boxplot(bill_length_mm ~ species, data = penguins, 
        col = "cornflowerblue", 
        xlab = "Spezies", 
        ylab = "Schnabellänge in Millimeter")

Aufgabe 5.1 (Quiz) Welcher F-Test sollte zum Vergleich der Varianzen sinnvollerweise durchgeführt werden?

Aufgabe 5.2 (F-Test für die Adelie- und Gentoo-Pinguine) Führen Sie einen geeigneten F-Test für die Varianz der Schnabellängen von Adelie- und Gentoo-Pinguinen durch. Nutzen Sie dazu die R-Funktion var.test.

Die Funktion var.test hat folgende Struktur:

var.test(x = ..., y = ..., 
         alternative = ..., 
         conf.level = ...)

Die Argumente x und y sind die Daten aus beiden Gruppen, das Argument alternative kann die Werte alternative = c("two.sided"), alternative = c("greater") oder alternative = c("less") annehmen, je nach gewünschter Alternativhypothese H_1. Das Konfidenzlevel conf.level ist definiert durch 1 minus das Testniveau \alpha. Mehr Hilfe erhalten Sie, wenn Sie den Befehl help("var.test") in der R-Konsole eingeben.

6 Zusammenfassung

In diesem Kapitel haben Sie den F-Test für zwei Stichproben kennengelernt. Dieser eignet sich dazu, zwei Stichproben aus unterschiedlichen, normalverteilten Populationen auf Unterschiede in den Varianzen zu prüfen. Es wurde dargestellt, wie man mit Hilfe von R den F-Test manuell und mit Hilfe der Funktion var.test durchführen kann. Die Idee der Teststatistik wurde erläutert, und Anwendungsbeispiele haben die Verwendung in der Praxis illustriert.

Lösungen der Aufgaben

Um F aus Gleichung 3.1 zu berechnen, gehen wir wie folgt vor:

F <- var(Y)/var(X)
F
[1] 1.642638

Zurück zu Aufgabe 4.1

Es gilt n=20 und m=25. Damit folgt:

qf(0.95, df1 = 19, df2 = 24)
[1] 2.039858

Da F diesen kritischen Wert nicht überschreitet, kann die Nullhypothese H_0:\sigma_2^2 \leq \sigma_1^2 nicht abgelehnt werden. Das Pharmaunternehmen kann daher nicht schlussfolgern, dass das neue Fertigungsverfahren die Varianz reduziert.

Zurück zu Aufgabe 4.2

Der p-Wert ergibt sich zu:

1 - pf(F, df1 = 19, df2 = 24)
[1] 0.1247386

Da p=0.12>\alpha=0.05 bestätigt dieser die Testentscheidung auf Basis des kritischen Werts F_{19,24,0.95}.

Zurück zu Aufgabe 4.3

Die Verteilungen der Adelie- und Gentoo-Pinguine zeigen, dass der Interquartilsabstand bei den Gentoo-Pinguinen geringfügig größer ist. Dennoch besteht erhebliche Unsicherheit darüber, ob die Varianz in der einen Gruppe größer oder kleiner als in der anderen Gruppe ist. Ein zweiseitiger F-Test erscheint daher am sinnvollsten.

Zurück zu Aufgabe 5.1

Man erhält:

var.test(x = adelie$bill_length_mm, y = gentoo$bill_length_mm,
         alternative = c("two.sided"),
         conf.level = 0.95)

    F test to compare two variances

data:  adelie$bill_length_mm and gentoo$bill_length_mm
F = 1, num df = 145, denom df = 145, p-value = 1
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
 0.7212167 1.3865459
sample estimates:
ratio of variances 
                 1 

Auf Basis des p-Wertes lässt sich die Nullhypothese H_0:\sigma_2^2 = \sigma_1^2 nicht verwerfen.

Zurück zu Aufgabe 5.2

Lizenz
Diese Lerneinheit “Statistische Hypothesentests” wurde von Riko Kelter, Alexander Schurr und Susanne Spies unter Mithilfe von Annika Hirth an der Universität Siegen entwickelt. Es ist lizenziert unter der CC-BY-SA 4.0 Lizenz und ist verfügbar auf ORCA.nrw.

Literatur

Bijma, Fetsje, Marianne Jonker, A. W. van der Vaart, und Reinie. Erné. 2017. Introduction to Mathematical Statistics. Amsterdam: Amsterdam University Press.
Fahrmeir, Ludwig, Christian Heumann, Rita Künstler, Iris Pigeot, und Gerhard Tutz. 2016. Statistik. Springer-Lehrbuch. Berlin, Heidelberg: Springer Berlin Heidelberg. https://doi.org/10.1007/978-3-662-50372-0.
Gorman, Kristen B., Tony D. Williams, und William R. Fraser. 2014. Ecological Sexual Dimorphism and Environmental Variability within a Community of Antarctic Penguins (Genus Pygoscelis). PLOS ONE 9 (3): e90081. https://doi.org/10.1371/JOURNAL.PONE.0090081.