{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "9bad8ced-d99e-4417-bb97-386bf8f09435",
"metadata": {
"tags": [
"remove-cell"
]
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"---------------------------------\n",
"Working on the host: Joachims-MacBook-Pro.local\n",
"\n",
"---------------------------------\n",
"Python version: 3.10.2 | packaged by conda-forge | (main, Feb 1 2022, 19:30:18) [Clang 11.1.0 ]\n",
"\n",
"---------------------------------\n",
"Python interpreter: /opt/miniconda3/envs/srh/bin/python\n"
]
}
],
"source": [
"%matplotlib inline\n",
"# Load the \"autoreload\" extension\n",
"%load_ext autoreload\n",
"# always reload modules\n",
"%autoreload 2\n",
"# black formatter for jupyter notebooks\n",
"#%load_ext nb_black\n",
"# black formatter for jupyter lab\n",
"%load_ext lab_black\n",
"\n",
"%run ../../src/notebook_env.py"
]
},
{
"cell_type": "markdown",
"id": "82bad07a-11ad-441f-99fa-377005e6a312",
"metadata": {},
"source": [
"# Varianzanalyse - ANOVA"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "64930077-9a2b-49e4-bfbf-8357338fb3b9",
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import pandas as pd\n",
"from scipy.stats import f, f_oneway, ttest_ind\n",
"import statsmodels.api as smi\n",
"from statsmodels.stats.multicomp import pairwise_tukeyhsd"
]
},
{
"cell_type": "markdown",
"id": "cfd2f4eb-de37-4173-9bbf-0785916d352f",
"metadata": {},
"source": [
"In diesem Abschnitt wird eine Methode namens Varianzanalyse (englisch analysis of variance, kurz ANOVA) erörtert, mit der mehrere Mittelwerte einer Grundgesamtheit verglichen werden können.\n",
"\n",
"Genauer gesagt geht es um die sogenannte einfaktorielle Varianzanalyse ({cite:t}`fahrmeirstatistik` s.478). Bei dieser Art der ANOVA werden die Mittelwerte einer Variablen verglichen, die sich aus der Klassifizierung durch *eine* andere Variable, dem sogenannten **Faktor**, ergeben. Um das Konzept zu veranschaulichen, wollen wir ein einfaches Beispiel entwerfen. Angenommen, wir vergleichen die mittleren Jahresgehälter der in Deutschland lebenden Personen, gruppiert nach Bundesländern, dann erhalten wir $16$ Mittelwerte der Jahresgehälter, einen für jedes Bundesland. In diesem Beispiel ist die Bundeslandvariable also eine Klassifikationsvariable, der so genannte Faktor.\n",
"\n",
"Bitte beachten Sie, dass die einfaktorielle Varianzanalyse die Verallgemeinerung des $2$-Stichproben $t$-Tests auf mehr als zwei Grundgesamtheiten ist."
]
},
{
"cell_type": "markdown",
"id": "167f023d-d0dc-4117-9abc-f443c289782b",
"metadata": {},
"source": [
"## Einfaktorielle ANOVA"
]
},
{
"cell_type": "markdown",
"id": "4e637344-eb20-4d44-a920-ad47aade6f8c",
"metadata": {},
"source": [
"Die grundlegende Logik einer einfaktoriellen ANOVA besteht darin, aus jeder Gruppe unabhängige Zufallsstichproben zu ziehen, dann die Stichprobenmittelwerte für jede Gruppe zu berechnen und anschließend die Variation der Stichprobenmittelwerte zwischen den Gruppen mit der Variation innerhalb der Gruppen zu vergleichen. Schließlich wird auf der Grundlage einer Teststatistik entschieden, ob die Mittelwerte der Gruppen gleich sind oder nicht.\n",
"\n",
"Auf der Grundlage dieser Logik benötigen wir quantitative **Maße für die Variabilität**. Daher teilen wir die Gesamtvariabilität in zwei Segmente auf: Eines, das die **Variabilität zwischen den Gruppen** berücksichtigt, und das andere, das die **Variabilität innerhalb der Gruppen** berücksichtigt."
]
},
{
"cell_type": "markdown",
"id": "02f9a1a6-7976-4465-a2a4-838a6849ce31",
"metadata": {},
"source": [
"### Maße der Variabilität"
]
},
{
"cell_type": "markdown",
"id": "b5224692-d5c7-448e-830a-7016842582df",
"metadata": {},
"source": [
"Wir führen drei quantitative Maße für die Variation ein:\n",
"\n",
"- Summe der Gesamtquadrate (SST)\n",
"- Summe der Gruppenquadrate (SSG)\n",
"- Summe der Fehlerquadrate (SSE)"
]
},
{
"cell_type": "markdown",
"id": "bf44d7a8-e02d-441e-82da-ab24a278f4a7",
"metadata": {},
"source": [
"Die **Summe der Gesamtquadrate (SST)** ist ein Maß für die Gesamtvariabilität der Variablen. Sie ist gegeben durch"
]
},
{
"cell_type": "markdown",
"id": "a2fbff1f-d7c7-4633-a9a1-98ca9e17a48c",
"metadata": {},
"source": [
"$$SST = \\sum_{i=1}^n(x_i-\\bar x)^2\\text{,}$$"
]
},
{
"cell_type": "markdown",
"id": "d9bcd349-e944-444b-ac4c-8cc2c574ec94",
"metadata": {},
"source": [
"wobei $x_i$ den Beobachtungen in den Stichproben entspricht und $\\bar x$ für den Gesamtmittelwert aller Stichproben steht.\n",
"\n",
"Die **Summe der Gruppenquadrate (SSG)** ist ein Maß für die Variabilität zwischen Gruppen und entspricht der quadrierten Abweichung der Gruppenmittelwerte vom Gesamtmittelwert, gewichtet mit dem Stichprobenumfang."
]
},
{
"cell_type": "markdown",
"id": "8a312c0a-7610-4370-9699-49f4c9a55389",
"metadata": {},
"source": [
"$$SSG = \\sum_{i=1}^n n_j(\\bar x_i-\\bar x)^2$$"
]
},
{
"cell_type": "markdown",
"id": "c9c18f0a-4643-4c8a-a293-823823965ff7",
"metadata": {},
"source": [
"Dabei steht $n_j$ für den Stichprobenumfang der Gruppe $j$, $\\bar{x}_i$ für den Mittelwert der Gruppe $j$ und $\\bar{x}$ für den Gesamtmittelwert der Stichprobe."
]
},
{
"cell_type": "markdown",
"id": "b7bd2ec7-d13c-4722-8f70-b7e495e50ada",
"metadata": {},
"source": [
"Die **Summe der Fehlerquadrate ($SSE$)** schließlich ist ein Maß für die Variabilität innerhalb der Gruppen. Sie steht im Zusammenhang mit der unerklärten Variabilität, d. h. der Variabilität, die nicht durch die Gruppenvariable erklärt werden kann. Die Summe der Fehlerquadrate ist gegeben durch"
]
},
{
"cell_type": "markdown",
"id": "0241ab4d-60a6-4e11-9830-697cb81c5163",
"metadata": {},
"source": [
"$$SSE = \\sum_{i=1}^n (n_j-1)s_j^2\\text{,}$$"
]
},
{
"cell_type": "markdown",
"id": "388112ed-56ba-404b-9dd9-8c75f8498df5",
"metadata": {},
"source": [
"wobei $n_j$ den Stichprobenumfang für Gruppe $j$ und $s^2_{j}$ die Varianz von Gruppe $j$ bezeichnet. Alternativ kann man $SSE$ sowie die Differenz von $SST$ und $SSG$ berechnen"
]
},
{
"cell_type": "markdown",
"id": "58e6ef07-931b-48c0-a386-73f384308cd1",
"metadata": {},
"source": [
"$$SSE = SST-SSG\\text{.}$$"
]
},
{
"cell_type": "markdown",
"id": "34b9adeb-78a6-4166-ad29-56a24f26e22f",
"metadata": {},
"source": [
"### Maße der mittleren Variabilität"
]
},
{
"cell_type": "markdown",
"id": "8db5b37b-33a4-4bac-b2e4-eb6c9fffea8e",
"metadata": {},
"source": [
"Bisher haben wir Maße für die Gesamtvariabilität ($SST$), die Variabilität zwischen Gruppen ($SSG$) und die Variabilität innerhalb von Gruppen ($SSE$) berechnet. Um eine durchschnittliche Variabilität zu erhalten, skalieren wir im nächsten Schritt diese Variabilitätsmaße mit dem Stichprobenumfang (genauer gesagt mit den Freiheitsgraden, $df$).\n",
"\n",
"Die **Freiheitsgrade** werden für jede Unterteilung der Variabilität (Gesamtvariabilität, Variabilität zwischen Gruppen und Variabilität innerhalb von Gruppen) definiert.\n",
"\n",
"- Gesamtvariabilität"
]
},
{
"cell_type": "markdown",
"id": "15ff3495-8e46-4c2a-9a2a-942aef17d97a",
"metadata": {},
"source": [
"$$df_T = n-1\\text{,}$$"
]
},
{
"cell_type": "markdown",
"id": "d4d7a2e9-5348-45c3-9e26-0e67e7d4d89a",
"metadata": {},
"source": [
"wobei $n$ den Gesamtumfang der Stichprobe bezeichnet. den Gesamtumfang der Stichprobe bezeichnet.\n",
"\n",
"- Variabilität zwischen den Gruppen"
]
},
{
"cell_type": "markdown",
"id": "d0b18266-f8d9-4527-8a03-0d9fc7c2bc85",
"metadata": {},
"source": [
"$$df_G=k-1\\text{,}$$"
]
},
{
"cell_type": "markdown",
"id": "c9af7014-448e-4ff7-b4b8-83e5b8aaaff0",
"metadata": {},
"source": [
"wobei $k$ die Anzahl der Gruppen bezeichnet.\n",
"den Gesamtumfang der Stichprobe bezeichnet.\n",
"\n",
"- Variabilität innerhalb der Gruppe"
]
},
{
"cell_type": "markdown",
"id": "44351466-1ecb-4a6b-bf50-7f7adc17543e",
"metadata": {},
"source": [
"$$df_E = n-k\\text{.}$$"
]
},
{
"cell_type": "markdown",
"id": "712accff-a333-48e6-94e4-79747626a1d9",
"metadata": {},
"source": [
"Nun können wir die **mittleren Quadrate** für die Variabilität zwischen den Gruppen und die Variabilität innerhalb der Gruppen berechnen. Die durchschnittliche Variabilität zwischen und innerhalb der Gruppen wird als die Gesamtvariabilität, skaliert mit den zugehörigen Freiheitsgraden, berechnet.\n",
"\n",
"- Mittlere Variabilität zwischen den Gruppen"
]
},
{
"cell_type": "markdown",
"id": "d0cddd16-9323-49a0-aa5a-cd114c46bda7",
"metadata": {},
"source": [
"$$MSG = \\frac{SSG}{df_G}$$"
]
},
{
"cell_type": "markdown",
"id": "e7dee819-f45f-4024-b084-5c1aaae7aadb",
"metadata": {},
"source": [
"- Mittlere Variabilität innerhalb der Gruppe"
]
},
{
"cell_type": "markdown",
"id": "071aa68d-ed8d-4975-8681-e0c7ad75d711",
"metadata": {},
"source": [
"$$MSE = \\frac{SSE}{df_E}$$"
]
},
{
"cell_type": "markdown",
"id": "7e9d69cc-e48c-456a-9a71-f5dfb22872a5",
"metadata": {},
"source": [
"### Teststatistik und $p$-Wert"
]
},
{
"cell_type": "markdown",
"id": "c21dbcf8-1ac0-4031-bdd4-3c6961080097",
"metadata": {},
"source": [
"Schließlich vergleichen wir die mittlere Variation zwischen den Gruppen, $MSG$, mit der Variation innerhalb der Gruppe, $MSE$. Daher berechnen wir das Verhältnis zwischen der durchschnittlichen Variation zwischen den Gruppen ($MSG$) und der Variation innerhalb der Gruppen ($MSE$), das mit $F$ bezeichnet wird."
]
},
{
"cell_type": "markdown",
"id": "d632d30a-b0c0-4761-9a82-5aed6075143b",
"metadata": {},
"source": [
"$$F= \\frac{MSG}{MSE}$$"
]
},
{
"cell_type": "markdown",
"id": "3721fa25-b2e1-46d2-a7f8-962130960a41",
"metadata": {},
"source": [
"Die $F$-Statistik hat die $F$-Verteilung (benannt nach Sir Ronald A. Fisher) mit"
]
},
{
"cell_type": "markdown",
"id": "39867d8d-a2ae-4c39-a758-ff4d619f47d8",
"metadata": {},
"source": [
"$$df = (k-1, n-k)\\text{,}$$"
]
},
{
"cell_type": "markdown",
"id": "19472d0c-108e-41fb-9d21-4f057ebb1e3a",
"metadata": {},
"source": [
"wobei $k$ für die Anzahl der Gruppen und $n$ für den Stichprobenumfang steht. Große Werte der $F$-Werte zeigen an, dass die Variation zwischen den Stichprobenmittelwerten der Gruppen im Verhältnis zur Variation innerhalb der Gruppe groß ist. Darüber hinaus können wir den $p$-Wert für jeden gegebenen $F$-Wert berechnen. Wenn der $p$-Wert klein ist, liefern die Daten überzeugende Beweise dafür, dass sich mindestens ein Paar von Gruppenmittelwerten voneinander unterscheidet. Ist der $p$-Wert groß, liefern die Daten keinen überzeugenden Beweis dafür, dass sich zumindest ein Paar von Gruppenmittelwerten voneinander unterscheidet, und die beobachteten Unterschiede in den Stichprobenmittelwerten sind somit auf Stichprobenvariabilität (oder Zufall) zurückzuführen."
]
},
{
"cell_type": "markdown",
"id": "ac22694d-4a7d-42b9-8a07-03033625cf97",
"metadata": {},
"source": [
"### Einfaktorielle ANOVA-Tabellen"
]
},
{
"cell_type": "markdown",
"id": "de80e04e-2745-4812-8051-5e4a1d9ea279",
"metadata": {},
"source": [
"Wie oben dargestellt, umfasst die einfache Varianzanalyse mehrere Analyseschritte. Dabei ist eine gängige Methode zur Darstellung einer einfachen ANOVA die so genannte **einfaktorielle ANOVA-Tabelle**. Der allgemeine Aufbau einer solchen Tabelle ist unten dargestellt."
]
},
{
"cell_type": "markdown",
"id": "d8eac7f2-1658-416a-84cc-f07732c6dc7e",
"metadata": {},
"source": [
"|Quelle|$df$|Summe der Quadrate (SS)| Mittlere Quadrate (MS)|$F$-Statistik|$p$-Wert|\n",
"|---|---|---|---|---|---|\n",
"|Gruppe/Klasse|$k-1$|$SSG$|$MSG = \\frac{SSG}{k-1}$ | $F=\\frac{MSG}{MSE}$ | $p$|\n",
"|Fehler/Residuen|$n-k$|$SSE$|$MSE=\\frac{SSE}{n-k}$||\n",
"|Insgesamt|$n-1$|$SST$|||"
]
},
{
"cell_type": "markdown",
"id": "c35667d6-dfc8-4a31-a1b6-faa5c8d0304d",
"metadata": {},
"source": [
"## Einfaktorieller ANOVA-Hypothesentest"
]
},
{
"cell_type": "markdown",
"id": "eb58a399-fefb-406a-b52e-0b37c508fb02",
"metadata": {},
"source": [
"Der Zweck eines **einfaktoriellen ANOVA-Hypothesentests** ist der Vergleich von $k$ Grundgesamtheits-/Gruppenmittelwerten, $\\mu_1, \\mu_2,...,\\mu_k$. \n",
"Die folgenden Annahmen müssen erfüllt sein, damit eine einseitige ANOVA angewendet werden kann ({cite:t}`fahrmeirstatistik` s.485):\n",
"\n",
"- Zufällige Stichproben\n",
"- Unabhängige Stichproben\n",
"- Für jede Grundgesamtheit ist die betrachtete Variable normalverteilt.\n",
"- Die Standardabweichungen der betrachteten Variable sind für alle Grundgesamtheiten gleich.\n",
"\n",
"Ein einfaktorieller ANOVA-Hypothesentest folgt demselben schrittweisen Verfahren wie andere Hypothesentests. "
]
},
{
"cell_type": "markdown",
"id": "18dac56a",
"metadata": {},
"source": [
"|||\n",
"|---|---|\n",
"|Schritt 1| Geben Sie die Nullhypothese $H_0$ und alternative Hypothese $H_A$ an|\n",
"|Schritt 2|Legen Sie das Signifikanzniveau,$\\alpha$ fest|\n",
"|Schritt 3|Berechnen Sie den Wert der Teststatistik|\n",
"|Schritt 4|Bestimmen Sie den p-Wert|\n",
"|Schritt 5| Wenn $p \\le \\alpha$, $H_0$ ablehnen; ansonsten $H_0$ nicht ablehnen|\n",
"|Schritt 6|Interpretieren Sie das Ergebnis des Hypothesentests|"
]
},
{
"cell_type": "markdown",
"id": "1e1aa8da-2ea6-420e-82ac-f5a1e0e53e18",
"metadata": {},
"source": [
"### Einfaktorieller ANOVA-Hypothesentest: Ein Beispiel"
]
},
{
"cell_type": "markdown",
"id": "70c5e165-6dd8-4b92-bdc2-b10c520be7cb",
"metadata": {},
"source": [
"Um praktische Erfahrungen zu sammeln, wenden wir den **einfaktoriellen ANOVA-Hypothesentest** in einer Übung an. Dazu laden wir den `students` Datensatz. Sie können die Datei `students.csv` hier herunterladen. Importieren Sie den Datensatz und geben Sie ihm einen passenden Namen."
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "17627746-49ca-4557-a442-ac3d22c7d773",
"metadata": {},
"outputs": [],
"source": [
"# Lese Datei students.csv als Dataframe ein\n",
"students = pd.read_csv(\"../../data/students.csv\")"
]
},
{
"cell_type": "markdown",
"id": "cd20ceaf-4ceb-43fa-bbfc-f4d88d03146a",
"metadata": {},
"source": [
"Der `students` Datensatz besteht aus $8239$ Zeilen, von denen jede einen bestimmten Studenten repräsentiert, und $16$ Spalten, von denen jede einer Variable/einem Merkmal entspricht, das sich auf diesen bestimmten Studenten bezieht. Diese selbsterklärenden Variablen sind: *stud_id, name, gender, age, height, weight, religion, nc_score, semester, major, minor, score1, score2, online_tutorial, graduated, salary.*"
]
},
{
"cell_type": "markdown",
"id": "d31cc806-0629-4eef-9206-e333323c2f3e",
"metadata": {},
"source": [
"Um den **einfaktoriellen ANOVA-Hypothesentest** zu veranschaulichen, untersuchen wir das mittlere Jahresgehalt der Absolventen, gruppiert nach ihrem Hauptstudienfach. Zur Verdeutlichung: In diesem Beispiel erfolgt die Klassifizierung/Gruppierung durch eine Variable, die Hauptvariable, den so genannten Faktor, wir führen also eine einfaktorielle ANOVA durch. In dieser Übung **wollen wir testen, ob sich das mittlere Jahresgehalt der Absolventen zwischen den Absolventen verschiedener Studienfächer unterscheidet.**"
]
},
{
"cell_type": "markdown",
"id": "900352a2-936e-49f5-8f88-b8f6c6a06e3e",
"metadata": {},
"source": [
"### Datenexploration und Aufbereitung"
]
},
{
"cell_type": "markdown",
"id": "aa1ed41b-60f0-48fd-b552-78c9f871d3b4",
"metadata": {},
"source": [
"Wir beginnen unsere Datenanalyse mit dem Zufallsstichprobenverfahren. Wir ziehen eine Zufallsstichprobe von $275$ Studenten aus dem Datensatz mit Hilfe der `sample()` Methode in Python. Wir wollen sicherstellen, dass wir nur Studenten mit abgeschlossenem Studium in die Stichprobe aufnehmen, deshalb unterteilen wir die Daten des Dataframes zuvor in Python. Des Weiteren reduzieren wir unseren Datensatz auf die zwei Variablen von Interesse, die kategoriale Variable `major` und die numerische Variable `salary`. Dann zeigen wir die ersten $10$ Zeilen des Datensatzes an."
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "41c9f204-fcaa-418d-b68e-8bba9301748d",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
major
\n",
"
salary
\n",
"
\n",
" \n",
" \n",
"
\n",
"
5019
\n",
"
Biology
\n",
"
49976.937146
\n",
"
\n",
"
\n",
"
4477
\n",
"
Political Science
\n",
"
27821.990115
\n",
"
\n",
"
\n",
"
241
\n",
"
Environmental Sciences
\n",
"
37668.890265
\n",
"
\n",
"
\n",
"
7166
\n",
"
Biology
\n",
"
60958.213489
\n",
"
\n",
"
\n",
"
2489
\n",
"
Economics and Finance
\n",
"
59920.480581
\n",
"
\n",
"
\n",
"
1194
\n",
"
Mathematics and Statistics
\n",
"
46116.221731
\n",
"
\n",
"
\n",
"
242
\n",
"
Social Sciences
\n",
"
35881.736200
\n",
"
\n",
"
\n",
"
2969
\n",
"
Economics and Finance
\n",
"
48456.787464
\n",
"
\n",
"
\n",
"
1476
\n",
"
Mathematics and Statistics
\n",
"
61384.549346
\n",
"
\n",
"
\n",
"
6765
\n",
"
Biology
\n",
"
61819.845923
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" major salary\n",
"5019 Biology 49976.937146\n",
"4477 Political Science 27821.990115\n",
"241 Environmental Sciences 37668.890265\n",
"7166 Biology 60958.213489\n",
"2489 Economics and Finance 59920.480581\n",
"1194 Mathematics and Statistics 46116.221731\n",
"242 Social Sciences 35881.736200\n",
"2969 Economics and Finance 48456.787464\n",
"1476 Mathematics and Statistics 61384.549346\n",
"6765 Biology 61819.845923"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"n = 275\n",
"data = students.loc[students[\"graduated\"] == 1, [\"major\", \"salary\"]].sample(\n",
" n, random_state=1\n",
")\n",
"data.head(10)"
]
},
{
"cell_type": "markdown",
"id": "94c1748f-e157-4ef2-aebe-5282facfeef8",
"metadata": {},
"source": [
"Aus reinem Interesse visualisieren wir die Zählungen für jede der $6$ verschiedenen Studienteilnehmer in unserer Stichprobe, indem wir ein Balkendiagramm erstellen. Wir verwenden die `barh()` Funktion aus der `mathplotlib` Bibliothek für die Darstellung."
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "dfc21929-ffd0-4673-9599-6f3d25f22743",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 0, 'Anzahl')"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"data.groupby(\"major\")[\"salary\"].count().plot.barh(ax=ax)\n",
"ax.set_ylabel(\"\")\n",
"ax.set_xlabel(\"Anzahl\")"
]
},
{
"cell_type": "markdown",
"id": "e270927b-3ea8-48d9-a79f-9fd682544bcc",
"metadata": {},
"source": [
"Wir sehen, dass die verschiedenen Studienteilnehmer in unserer Stichprobe nicht gleich verteilt sind, aber das ist in Ordnung.\n",
"\n",
"Bevor wir mit dem Hypothesentest beginnen, überprüfen wir, ob die Annahmen für den einfaktoriellen ANOVA-Hypothesentest erfüllt sind. Die Stichproben sind Zufallsstichproben und unabhängig. Das ist in Ordnung. Wir überprüfen die Normalitätsannahme, indem wir für jede gruppierte Variable ein Normalwahrscheinlichkeitsdiagramm (Q-Q-Diagramm) erstellen."
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "8b783c69-7abc-4916-9107-4b14e76dd4f1",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Erzeuge Q-Q Plot\n",
"for _major in data.major.unique():\n",
" _ = smi.qqplot(data.loc[data[\"major\"] == _major, \"salary\"], line=\"r\")\n",
" ax = plt.gca()\n",
" ax.set_title(_major)\n",
" ax.set_xlabel(\"Theoretische Quantile\")\n",
" ax.set_ylabel(\"Stichproben Quantile\")"
]
},
{
"cell_type": "markdown",
"id": "d28fc8ff-1d22-4ad4-bf1b-75ab0fdf2a93",
"metadata": {},
"source": [
"Als nächstes testen wir die Annahme gleicher Standardabweichungen. Dazu berechnen wir die Standardabweichung für jede Gruppe. Die Programmiersprache Python bietet einige ausgezeichnete Funktionen zur Berechnung statistischer Parameter für verschiedene Gruppierungen eines Datensatzes. Für unser Beispiel verwenden wir die Funktion `pivot_table()`, um die Standardabweichungen für jede Gruppe zu berechnen."
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "f1830e68-e1ed-4c12-a6d2-7248b31363fb",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
major
\n",
"
salary
\n",
"
\n",
" \n",
" \n",
"
\n",
"
5019
\n",
"
Biology
\n",
"
49976.937146
\n",
"
\n",
"
\n",
"
4477
\n",
"
Political Science
\n",
"
27821.990115
\n",
"
\n",
"
\n",
"
241
\n",
"
Environmental Sciences
\n",
"
37668.890265
\n",
"
\n",
"
\n",
"
7166
\n",
"
Biology
\n",
"
60958.213489
\n",
"
\n",
"
\n",
"
2489
\n",
"
Economics and Finance
\n",
"
59920.480581
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" major salary\n",
"5019 Biology 49976.937146\n",
"4477 Political Science 27821.990115\n",
"241 Environmental Sciences 37668.890265\n",
"7166 Biology 60958.213489\n",
"2489 Economics and Finance 59920.480581"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.head()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "768c52a2-4ce0-4c2a-931a-27f129cb7d32",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"major\n",
"Biology 8470.016077\n",
"Economics and Finance 7175.592532\n",
"Environmental Sciences 6460.464096\n",
"Mathematics and Statistics 8384.559216\n",
"Political Science 10273.903367\n",
"Social Sciences 7227.381892\n",
"Name: salary, dtype: float64"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"table = data.groupby(\"major\")[\"salary\"].std()\n",
"table"
]
},
{
"cell_type": "markdown",
"id": "7db4e5be-c2d5-41ed-a4cb-3b5b970bf0c6",
"metadata": {},
"source": [
"Als Faustregel gilt die Annahme gleicher Standardabweichungen als erfüllt, wenn das Verhältnis der größten zur kleinsten Standardabweichung der Stichprobe kleiner als $2$ ist."
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "e033c0c3-3891-478b-bb6a-fc85a10700fa",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1.5902732705830243"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ratio = table.max() / table.min()\n",
"ratio"
]
},
{
"cell_type": "markdown",
"id": "c9318331-86d4-42c2-8964-897e42701fcb",
"metadata": {},
"source": [
"Das Verhältnis zwischen der größten und der kleinsten Standardabweichung der Stichprobe beträgt $1,59$. Das liegt nahe am Schwellenwert von $2$, ist aber für unser Musterbeispiel noch akzeptabel. Daraus können wir schließen, dass die Annahmen erfüllt sind.\n",
"\n",
"Beachten Sie, dass die einseitige ANOVA robust gegenüber moderaten Verstößen gegen die Normalitätsannahme und die Annahme gleicher Standardabweichungen ist ({cite:t}`fahrmeirstatistik` s.486)."
]
},
{
"cell_type": "markdown",
"id": "beff4e78-3e59-4f27-82fa-b2331ec2eb6b",
"metadata": {
"tags": []
},
"source": [
"### Überprüfung der Hypothesen"
]
},
{
"cell_type": "markdown",
"id": "f3f1d15c-2408-4847-8a86-1021b4eca0ad",
"metadata": {},
"source": [
"Um den **einfaktoriellen ANOVA-Hypothesentest** durchzuführen, folgen wir dem schrittweisen Durchführungsverfahren für Hypothesentests."
]
},
{
"cell_type": "markdown",
"id": "ee32c7b9-1e03-4e57-8fcc-c5df0fb21d3c",
"metadata": {},
"source": [
"**Schritt 1 : Geben Sie die Nullhypothese $H_0$ und alternative Hypothese $H_A$ an**"
]
},
{
"cell_type": "markdown",
"id": "ed155539-6de7-4003-94df-4f295bdca8d8",
"metadata": {},
"source": [
"Die Nullhypothese besagt, dass das mittlere Jahresgehalt bei allen Gruppen von Absolventen gleich ist."
]
},
{
"cell_type": "markdown",
"id": "1bed1841-c421-40a8-a792-7e8f58213293",
"metadata": {},
"source": [
"$$H_0: \\quad \\mu_1=\\mu_2=\\mu_3=\\mu_4=\\mu_5=\\mu_6$$"
]
},
{
"cell_type": "markdown",
"id": "16c3c394-458d-400f-ae9d-47c472f266b0",
"metadata": {},
"source": [
"**Alternative Hypothese**"
]
},
{
"cell_type": "markdown",
"id": "6f2eab79-9dc9-4b56-b0e1-93efc214f7d3",
"metadata": {},
"source": [
"$$H_A: \\quad \\text{Nicht alle Mittelwerte sind gleich}$$"
]
},
{
"cell_type": "markdown",
"id": "e753611d-9467-489a-b5ed-aeb33909745c",
"metadata": {},
"source": [
"**Schritt 2: Legen Sie das Signifikanzniveau,$\\alpha$ fest**"
]
},
{
"cell_type": "markdown",
"id": "0788b846-5b36-4a9b-8834-17939a7c6645",
"metadata": {},
"source": [
"$$\\alpha = 0,01$$"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "d9b6b426-3361-4592-963f-664a6a819fe1",
"metadata": {},
"outputs": [],
"source": [
"alpha = 0.01"
]
},
{
"cell_type": "markdown",
"id": "3cfdcb51-daa5-4f30-9839-760250182748",
"metadata": {},
"source": [
"**Schritt 3 und 4: Berechnen Sie den Wert der Teststatistik und den $p$-Wert**"
]
},
{
"cell_type": "markdown",
"id": "25d990c7-c7a2-4ce4-a3b6-c04ed6024e24",
"metadata": {
"tags": []
},
"source": [
"Um die $F$-Test-Statistik zu berechnen, müssen wir zuvor mehrere Größen bestimmen. Zur Veranschaulichung berechnen wir die $F$-Teststatistik manuell in Python. Schritt für Schritt füllen wir die ANOVA-Tabelle aus, bis wir schließlich die $F$-Teststatistik und folglich den $p$-Wert erhalten."
]
},
{
"cell_type": "markdown",
"id": "756f7ab4",
"metadata": {},
"source": [
"|Quelle|$df$|Summe der Quadrate (SS)| Mittlere Quadrate (MS)|$F$-Statistik|$p$-Wert|\n",
"|---|---|---|---|---|---|\n",
"|Gruppe/Klasse|$k-1$|$SSG$|$MSG = \\frac{SSG}{k-1}$|$F=\\frac{MSG}{MSE}$| $p$|\n",
"|Fehler/Residuen|$n-k$|$SSE$|$MSE=\\frac{SSE}{n-k}$||\n",
"|Insgesamt|$n-1$|$SST$|||"
]
},
{
"cell_type": "markdown",
"id": "70a20bef-9d59-4523-a35c-a597bb6e4031",
"metadata": {},
"source": [
"Wir beginnen mit der ersten Spalte und berechnen die Freiheitsgrade."
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "6d82de82-ef8f-41c3-8b98-fc2e95048c68",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"5"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"k = data[\"major\"].nunique()\n",
"n = data.shape[0]\n",
"\n",
"df_G = k - 1\n",
"df_G"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "30362ec4-3b70-4aca-9074-e80257818ede",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"269"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_E = n - k\n",
"df_E"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "2e018888-bbae-4b93-8af4-afcb2ab32d75",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/plain": [
"274"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_T = n - 1\n",
"df_T"
]
},
{
"cell_type": "markdown",
"id": "67ac3872",
"metadata": {},
"source": [
"|Quelle|$df$|Summe der Quadrate (SS)| Mittlere Quadrate (MS)|$F$-Statistik|$p$-Wert|\n",
"|---|---|---|---|---|---|\n",
"|Gruppe/Klasse|$5$|$SSG$|$MSG = \\frac{SSG}{k-1}$|$F=\\frac{MSG}{MSE}$| $p$|\n",
"|Fehler/Residuen|$269$|$SSE$|$MSE=\\frac{SSE}{n-k}$||\n",
"|Insgesamt|$274$|$SST$|||"
]
},
{
"cell_type": "markdown",
"id": "33e3999f-39f6-4291-b4dd-e859f113c11a",
"metadata": {},
"source": [
"Außerdem berechnen wir die drei Summen der Quadrate, $SST$, $SSG$ und $SSE$. Erinnern Sie sich an die Gleichungen von oben."
]
},
{
"cell_type": "markdown",
"id": "68fbfc3a-1ac4-468a-92a7-b6a61d29f9a4",
"metadata": {},
"source": [
"$$SST = \\sum_{i=1}^n(x_i-\\bar x)^2\\text{,}$$"
]
},
{
"cell_type": "markdown",
"id": "97080283-d55f-4ad0-8640-94535b230ea8",
"metadata": {},
"source": [
"wobei $x_i$den Beobachtungen in den Stichproben und $\\bar x$ dem Gesamtmittelwert aller Stichproben entspricht."
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "99d49062-627f-4dcd-89ee-27cc4dbb6dbd",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"33169011167.80223"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Berechne Gesamtmittelwert\n",
"x_bar = data[\"salary\"].mean()\n",
"\n",
"# Beobachtungen\n",
"xi = data[\"salary\"]\n",
"\n",
"# Berechne SST\n",
"SST = np.sum((xi - x_bar) ** 2)\n",
"SST"
]
},
{
"cell_type": "markdown",
"id": "a4671f95-e95d-43ce-b5ff-fa025b9bfec7",
"metadata": {},
"source": [
"$$SSG = \\sum_{i=1}^n n_j(\\bar x_i-\\bar x)^2$$"
]
},
{
"cell_type": "markdown",
"id": "1dc9432e-2089-4c19-8e2a-049582ffaa3a",
"metadata": {},
"source": [
"Dabei steht $n_j$ für den Stichprobenumfang der Gruppe $j, \\bar{x}_i$ für den Mittelwert der Gruppe $j$ und $\\bar x$ für den Gesamtmittelwert aller Stichproben."
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "a00ac31e-7c85-4952-a130-0b0b95610243",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"major\n",
"Biology 50\n",
"Economics and Finance 48\n",
"Environmental Sciences 53\n",
"Mathematics and Statistics 40\n",
"Political Science 50\n",
"Social Sciences 34\n",
"Name: salary, dtype: int64"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"n_j = data.groupby(\"major\")[\"salary\"].count()\n",
"n_j"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "08950881-e69d-4c68-8687-196df3a175a4",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"15425759144.907019"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Berechne Stichprobengrösse für alle Gruppen\n",
"n_j = data.groupby(\"major\")[\"salary\"].count()\n",
"\n",
"# Berechne Mittelwert für alle Gruppen\n",
"xi_bar = data.groupby(\"major\")[\"salary\"].mean()\n",
"\n",
"# Berechne SSG\n",
"SSG = np.sum(n_j * (xi_bar - x_bar) ** 2)\n",
"SSG"
]
},
{
"cell_type": "markdown",
"id": "1e88b45e-7820-4d6b-90c0-230d1aba934b",
"metadata": {
"tags": []
},
"source": [
"$$SSE = \\sum_{i=1}^n (n_j-1)s_j^2\\text{,}$$"
]
},
{
"cell_type": "markdown",
"id": "197a7efe-584d-4ab6-9bc9-6593e64e9e64",
"metadata": {},
"source": [
"wobei $n_j$ den Stichprobenumfang für die Gruppe $j$ und $s^2_j$ die Varianz der Gruppe $j$ bezeichnet."
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "279e0943-7927-49c1-9899-59cd1784ddd0",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"17743252022.895218"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Berechne Standardabweichung für die einzelnen Gruppen\n",
"s2_j = data.groupby(\"major\")[\"salary\"].std()\n",
"\n",
"# Berechne SSE\n",
"SSE = np.sum((n_j - 1.0) * s2_j**2.0)\n",
"SSE"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "211ad60c-ea06-4f56-bb74-a761f006acef",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"17743252022.89521"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# alternativ kann SSE auch so berechnet werden\n",
"SSE2 = SST - SSG\n",
"SSE2"
]
},
{
"cell_type": "markdown",
"id": "92f95249",
"metadata": {},
"source": [
"|Quelle|$df$|Summe der Quadrate (SS)| Mittlere Quadrate (MS)|$F$-Statistik|$p$-Wert|\n",
"|---|---|---|---|---|---|\n",
"|Gruppe/Klasse|$5$|$1,542576 \\cdot 10^{10}$|$MSG = \\frac{SSG}{k-1}$|$F=\\frac{MSG}{MSE}$| $p$|\n",
"|Fehler/Residuen|$269$|$1,774325 \\cdot 10^{10}$|$MSE=\\frac{SSE}{n-k}$||\n",
"|Insgesamt|$274$|$3,316901 \\cdot 10^{10}$|||"
]
},
{
"cell_type": "markdown",
"id": "26322c99-8443-4bec-8164-6c3b1dbd411d",
"metadata": {},
"source": [
"Nun berechnen wir die beiden Maße für die mittlere Variabilität, $MSG$ und $MSE$."
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "05a5e272-c76f-4bab-9b17-e662aa957849",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"3085151828.981404"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Berechne MSG\n",
"MSG = SSG / (k - 1)\n",
"MSG"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "c2f4604e-4267-40d1-905c-354ebaf0719a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"65960044.694777764"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Berechne MSE\n",
"MSE = SSE / (n - k)\n",
"MSE"
]
},
{
"cell_type": "markdown",
"id": "d1df3fa6",
"metadata": {},
"source": [
"|Quelle|$df$|Summe der Quadrate (SS)| Mittlere Quadrate (MS)|$F$-Statistik|$p$-Wert|\n",
"|---|---|---|---|---|---|\n",
"|Gruppe/Klasse|$5$|$1,542576 \\cdot 10^{10}$|$3,085152 \\cdot 10^{9}$|$F=\\frac{MSG}{MSE}$| $p$|\n",
"|Fehler/Residuen|$269$|$1,774325 \\cdot 10^{10}$|$6,596004 \\cdot 10^{7}$||\n",
"|Insgesamt|$274$|$3,316901 \\cdot 10^{10}$|||"
]
},
{
"cell_type": "markdown",
"id": "5a6c290d-fd99-418e-a4a4-9ee1d4a4198e",
"metadata": {},
"source": [
"Schließlich erhalten wir die $F$-Statistiken durch das Verhältnis von $MSG$ und $MSE$."
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "a09a2c4a-bd55-4606-8c7c-a96f3085afde",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"46.77304030428687"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Berechne Teststatistik\n",
"Fstat = MSG / MSE\n",
"Fstat"
]
},
{
"cell_type": "markdown",
"id": "3ee294b9",
"metadata": {},
"source": [
"|Quelle|$df$|Summe der Quadrate (SS)| Mittlere Quadrate (MS)|$F$-Statistik|$p$-Wert|\n",
"|---|---|---|---|---|---|\n",
"|Gruppe/Klasse|$5$|$1,542576 \\cdot 10^{10}$|$3,085152 \\cdot 10^{9}$|$46,77304$| $p$|\n",
"|Fehler/Residuen|$269$|$1,774325 \\cdot 10^{10}$|$6,596004 \\cdot 10^{7}$||\n",
"|Insgesamt|$274$|$3,316901 \\cdot 10^{10}$|||"
]
},
{
"cell_type": "markdown",
"id": "9ded2806-ce16-46d2-a00f-3ecca6534dfd",
"metadata": {},
"source": [
"Im letzten Schritt berechnen wir den $p$-Wert durch Aufruf der Funktion `f.cdf()` in Python. Erinnern Sie sich, wie man die Freiheitsgrade berechnet."
]
},
{
"cell_type": "markdown",
"id": "b0f2a6db-d482-4571-aa4a-f32ae9553b7e",
"metadata": {},
"source": [
"$$df = (k-1, n-k)$$"
]
},
{
"cell_type": "markdown",
"id": "01807a4f-987f-4b5c-aadd-acf132e15d19",
"metadata": {},
"source": [
"Da die Nullhypothese nur dann abgelehnt wird, wenn die Teststatistik $F$ zu groß ist, ist ein einfaktorieller ANOVA-Test immer rechtsschief."
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "5a63d46c-a1d3-4953-a91d-3afe24d3a490",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1.0932120917246151e-34"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df1 = k - 1\n",
"df2 = n - k\n",
"\n",
"p_value = f.sf(Fstat, dfn=df1, dfd=df2)\n",
"p_value"
]
},
{
"cell_type": "markdown",
"id": "295d16cc",
"metadata": {},
"source": [
"|Quelle|$df$|Summe der Quadrate (SS)| Mittlere Quadrate (MS)|$F$-Statistik|$p$-Wert|\n",
"|---|---|---|---|---|---|\n",
"|Gruppe/Klasse|$5$|$1,542576 \\cdot 10^{10}$|$3,085152 \\cdot 10^{9}$|$46,77304$| $1,093212 \\cdot 10^{-34}$|\n",
"|Fehler/Residuen|$269$|$1,774325 \\cdot 10^{10}$|$6,596004 \\cdot 10^{7}$||\n",
"|Insgesamt|$274$|$3,316901 \\cdot 10^{10}$|||"
]
},
{
"cell_type": "markdown",
"id": "6750b98f-0005-488e-b82c-3db98491902f",
"metadata": {},
"source": [
"**Schritt 5: Wenn $p \\le \\alpha , H_0$ ablehnen; ansonsten $H_0$ nicht ablehnen**"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "bbcc6a0e-e9f0-438e-a36e-8b7db2da6dcd",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p_value <= alpha"
]
},
{
"cell_type": "markdown",
"id": "b4a7f429-6279-4203-b9e1-b74081059fe5",
"metadata": {},
"source": [
"Der $p$-Wert ist kleiner als das angegebene Signifikanzniveau von $0,01$; wir verwerfen $H_0$. Die Testergebnisse sind statistisch signifikant auf dem $1 \\%$-Niveau und liefern einen sehr starken Beweis gegen die Nullhypothese."
]
},
{
"cell_type": "markdown",
"id": "868f87e1-c750-4238-8ac0-f4bc6549a027",
"metadata": {},
"source": [
"**Schritt 6: Interpretieren Sie das Ergebnis des Hypothesentests**"
]
},
{
"cell_type": "markdown",
"id": "339a5ad5-afb1-4b45-b406-5a3cc4f685dd",
"metadata": {},
"source": [
"$p=1,093212 \\cdot 10^{-34}$. Bei einem Signifikanzniveau von $1 \\%$ liefern die Daten sehr starke Hinweise darauf, dass sich mindestens ein Paar von Gruppenmittelwerten voneinander unterscheidet."
]
},
{
"cell_type": "markdown",
"id": "113352fa-0e0f-470c-92be-4a081b9cffc4",
"metadata": {},
"source": [
"### Hypothesentests in Python"
]
},
{
"cell_type": "markdown",
"id": "90429755-b662-49f5-83d9-bfa6e503886b",
"metadata": {},
"source": [
"Wir haben gerade einen einfaktoriellen ANOVA-Hypothesentest in Python manuell durchgeführt. Toll, aber jetzt wiederholen wir das Beispiel und nutzen die Möglichkeiten von Python, um das gleiche Ergebnis wie oben mit nur wenigen Zeilen Code zu erhalten!\n",
"\n",
"Um einen einseitigen ANOVA-Hypothesentest in Python durchzuführen, verwenden wir die Funktion `f_oneway()`. Die `f_oneway()`-Funktion erwartet die Eingabe der zu vergleichenden Untergruppen. Hierfür verwenden wir eine `list-comprehension`. Außerdem lesen wir die $F$-Teststatistik `statistics` und $p$-Wert `p_value` aus."
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "670c2d14-9989-43ae-927f-c123c2042404",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Wert der F-Statistik: 46.773040304286866\n",
"p-Wert: 1.0932120917246455e-34\n"
]
}
],
"source": [
"dat = [\n",
" data.loc[data[\"major\"] == major, \"salary\"].values\n",
" for major in data[\"major\"].unique()\n",
"]\n",
"statistics, pvalue = f_oneway(*dat)\n",
"\n",
"print(f\"Wert der F-Statistik: {statistics}\")\n",
"print(f\"p-Wert: {pvalue}\")"
]
},
{
"cell_type": "markdown",
"id": "65987448-de82-4f81-b4ec-9b51e070dd80",
"metadata": {},
"source": [
"Es hat gut funktioniert! Vergleichen Sie die Ausgabe der Funktion `f_oneway()` mit unserem Ergebnis von oben. Auch hier können wir zu dem Schluss kommen, dass die Daten bei einem Signifikanzniveau von $1 \\%$ sehr starke Hinweise darauf liefern, dass sich mindestens ein Paar von Gruppenmitteln voneinander unterscheidet."
]
},
{
"cell_type": "markdown",
"id": "d30d803a-2706-4d8f-b96d-0b545376f733",
"metadata": {
"tags": []
},
"source": [
"## Multiples Testproblem"
]
},
{
"cell_type": "markdown",
"id": "05877db9-f9a7-455c-8102-173d8630ee09",
"metadata": {},
"source": [
"Eine Einschränkung der ANOVA besteht darin, dass wir, wenn wir die Nullhypothese ablehnen, feststellen, dass die Mittelwerte der betrachteten Populationen nicht alle gleich sind. Wir können jedoch weder entscheiden, welche Mittelwerte unterschiedlich sind, noch, in welchem Verhältnis die Mittelwerte zueinander stehen.\n",
"\n",
"Um diese Frage zu klären, wenden wir Methoden an, die als **multiples Testen** oder **Mehrfachvergleiche** bezeichnet werden. Das Problem bei Mehrfachvergleichen ist, dass je mehr Hypothesen für einen bestimmten Datensatz getestet werden, desto wahrscheinlicher ist es, dass die Nullhypothese fälschlicherweise zurückgewiesen wird. Daher erfordern die Methoden des Mehrfachvergleichs eine höhere Signifikanzschwelle ($\\alpha$) für einzelne Vergleiche, um die Anzahl der gezogenen Schlüsse zu kompensieren."
]
},
{
"cell_type": "markdown",
"id": "acf0bc3c-6d7a-4b02-8906-904fcfeb40ac",
"metadata": {},
"source": [
"### Alphafehler-Kumulierung (engl. Family Wise Error Rate - FWER)"
]
},
{
"cell_type": "markdown",
"id": "6b234a1c-1b59-4244-846b-d5a5e6cdf775",
"metadata": {},
"source": [
"Eine **Testfamilie** ist der Fachbegriff für eine Reihe von Tests, die an einem Datensatz durchgeführt werden. Die Alphafehler-Kumulierung (engl. Family Wise Error Rate) ist die Wahrscheinlichkeit, dass bei der Durchführung von Mehrfachhypothesentests ein oder mehrere falsche Zurückweisungen der Null-Hypothese oder Fehler vom Typ I gemacht werden.\n",
"\n",
"Es sei daran erinnert, dass bei einem Signifikanzniveau von $\\alpha=0,05$ die Wahrscheinlichkeit, einen Fehler vom Typ I zu machen, $0,05$ oder $5 \\%$ beträgt. Folglich ist die Wahrscheinlichkeit, keinen Fehler vom Typ I zu machen, $1-\\alpha=1-0,05=0,95$. Außerdem ist die Wahrscheinlichkeit, zwei unabhängige Ereignisse zu beobachten, das Produkt ihrer Wahrscheinlichkeiten. Wenn wir also zwei unabhängige Tests durchführen, ist die Wahrscheinlichkeit, beim ersten und beim zweiten Test keinen Fehler vom Typ I zu machen"
]
},
{
"cell_type": "markdown",
"id": "17383fa0-330c-4ca0-a3ec-bfde8f0125b9",
"metadata": {},
"source": [
"$$(1-\\alpha) \\times (1-\\alpha) = (1-\\alpha)^2$$"
]
},
{
"cell_type": "markdown",
"id": "9eee4182-dd78-4a36-b6b7-55e847b38fe3",
"metadata": {},
"source": [
"Wenn $\\alpha=0,05$ ist, ergibt sich eine Wahrscheinlichkeit, dass beim ersten und zweiten Test kein Fehler vom Typ I auftritt, von"
]
},
{
"cell_type": "markdown",
"id": "f364e082-ca01-426b-a892-28c1279e8e7b",
"metadata": {},
"source": [
"$$(1 - \\alpha)^2 = (1-0,05)^2 = 0,95^2 \\approx 0,902$$"
]
},
{
"cell_type": "markdown",
"id": "a5257da5-0f03-44cc-a7be-e7b08f695d31",
"metadata": {},
"source": [
"Für eine Familie von $C$-Tests ist die Wahrscheinlichkeit, dass kein Fehler vom Typ I für die gesamte Familie auftritt, formal ausgedrückt"
]
},
{
"cell_type": "markdown",
"id": "7ff7a527-ba1a-41b8-ae36-2d502975811f",
"metadata": {},
"source": [
"$$(1-\\alpha)^C\\text{.}$$"
]
},
{
"cell_type": "markdown",
"id": "5d44e298-bba0-41c6-9079-24d1f2ca2c1e",
"metadata": {},
"source": [
"Betrachten wir nun $C=10$ und $\\alpha=0,05$. Wir führen also $10$ Mehrfachvergleiche mit einem Datensatz durch. Die Wahrscheinlichkeit, keinen Fehler vom Typ I in der Familie zu machen, ist dann"
]
},
{
"cell_type": "markdown",
"id": "ce65cab2-0e60-48a9-9c66-dc89b36b14d6",
"metadata": {},
"source": [
"$$(1-\\alpha)^C=(1-0,05)^{10} \\approx 0,599$$"
]
},
{
"cell_type": "markdown",
"id": "be1feef6-7343-49e0-ace2-2037a453e9ec",
"metadata": {},
"source": [
"Folglich ist die Wahrscheinlichkeit, dass **ein oder mehrere Fehler vom Typ I** in der Testfamilie auftreten"
]
},
{
"cell_type": "markdown",
"id": "0c978519-109d-44cd-b8b9-0a238fdf1967",
"metadata": {},
"source": [
"$$1 - (1-\\alpha)^C$$"
]
},
{
"cell_type": "markdown",
"id": "000d8e09-b0e4-4d60-b712-51ca3518c7f6",
"metadata": {},
"source": [
"Für unser Beispiel finden wir"
]
},
{
"cell_type": "markdown",
"id": "23428c8a-dad4-4086-ac4f-c342a8da33ee",
"metadata": {},
"source": [
"$$1 - (1-\\alpha)^C = 1 - (1-0,05)^{10} \\approx 0,401$$"
]
},
{
"cell_type": "markdown",
"id": "720e034d-9797-439f-a20f-bfaeeaa29357",
"metadata": {},
"source": [
"Somit ist bei $\\alpha=0,05$ für jeden der $10$ Mehrfachvergleiche die Wahrscheinlichkeit, dass die Nullhypothese falsch zurückgewiesen wird, $0,401$ oder $40,1 \\%$.\n",
"\n",
"Um diesem Problem Rechnung zu tragen, gibt es mehrere statistische Methoden. In diesem Abschnitt werden die Bonferroni-Korrektur und die Tukey-Test, auch bekannt als **Tukeys HSD-Test (hoenstly significant difference)**, behandelt."
]
},
{
"cell_type": "markdown",
"id": "fbef8cd4-718b-4626-87b4-07786845243f",
"metadata": {},
"source": [
"### Beispiel-Daten"
]
},
{
"cell_type": "markdown",
"id": "4308a978-9fc0-4b7b-bfcd-1a982b462de9",
"metadata": {},
"source": [
"In diesem Abschnitt wiederholen wir das Beispiel aus dem vorherigen Abschnitt. Dort haben wir eine einfaktorielle ANOVA angewandt, um zu **testen, ob sich das mittlere Jahresgehalt der Absolventen zwischen den Absolventen verschiedener Studienfächer unterscheidet**. Dieses Mal werden wir jedoch mehrere Vergleiche durchführen, um die Beziehung zwischen allen Gruppenmittelwerten zu analysieren.\n",
"\n",
"Laden Sie den `students` Datensatz erneut (Sie können die Datei `students.csv` hier herunterladen)."
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "874e4d96-3426-4546-9b2a-b06436c7c301",
"metadata": {},
"outputs": [],
"source": [
"# Lese Datei students.csv als Dataframe ein\n",
"students = pd.read_csv(\"../../data/students.csv\")"
]
},
{
"cell_type": "markdown",
"id": "33f64541-0024-444b-892c-04bc3e4bef98",
"metadata": {},
"source": [
"Der `students` Datensatz besteht aus $8239$ Zeilen, von denen jede einen bestimmten Studenten repräsentiert, und $16$ Spalten, von denen jede einer Variable/einem Merkmal entspricht, das sich auf diesen bestimmten Studenten bezieht. Diese selbsterklärenden Variablen sind: *stud_id, name, gender, age, height, weight, religion, nc_score, semester, major, minor, score1, score2, online_tutorial, graduated, salary.*"
]
},
{
"cell_type": "markdown",
"id": "fb63fe9a-0f3b-49d9-9a21-225615a8d494",
"metadata": {},
"source": [
"Aus dem Datensatz der Studierenden ziehen wir eine Zufallsstichprobe von $275$ Absolventen und reduzieren den Datensatz auf die beiden interessierenden Variablen, die kategoriale Variable `major` und die numerische Variable `salary`. Für eine bessere Lesbarkeit in der folgenden Analyse ersetzen wir die Namen der Studienfächer durch entsprechende Abkürzungen."
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "b24dd642-58b2-4f3a-ad34-8b44260f5dd3",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
major
\n",
"
salary
\n",
"
\n",
" \n",
" \n",
"
\n",
"
3826
\n",
"
MaSt
\n",
"
57849.343490
\n",
"
\n",
"
\n",
"
795
\n",
"
MaSt
\n",
"
56558.160738
\n",
"
\n",
"
\n",
"
2127
\n",
"
PoS
\n",
"
46945.174104
\n",
"
\n",
"
\n",
"
1292
\n",
"
Bio
\n",
"
40093.455971
\n",
"
\n",
"
\n",
"
5913
\n",
"
EnS
\n",
"
35106.961865
\n",
"
\n",
"
\n",
"
1871
\n",
"
EnS
\n",
"
33216.118981
\n",
"
\n",
"
\n",
"
1853
\n",
"
EnS
\n",
"
30606.198317
\n",
"
\n",
"
\n",
"
1484
\n",
"
PoS
\n",
"
37240.113342
\n",
"
\n",
"
\n",
"
5619
\n",
"
MaSt
\n",
"
50913.038493
\n",
"
\n",
"
\n",
"
2299
\n",
"
EcFi
\n",
"
50365.098269
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" major salary\n",
"3826 MaSt 57849.343490\n",
"795 MaSt 56558.160738\n",
"2127 PoS 46945.174104\n",
"1292 Bio 40093.455971\n",
"5913 EnS 35106.961865\n",
"1871 EnS 33216.118981\n",
"1853 EnS 30606.198317\n",
"1484 PoS 37240.113342\n",
"5619 MaSt 50913.038493\n",
"2299 EcFi 50365.098269"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"n = 275\n",
"data = students.loc[students[\"graduated\"] == 1, [\"major\", \"salary\"]].sample(\n",
" n, random_state=300\n",
")\n",
"\n",
"lookup = {\n",
" \"Biology\": \"Bio\",\n",
" \"Political Science\": \"PoS\",\n",
" \"Economics and Finance\": \"EcFi\",\n",
" \"Environmental Sciences\": \"EnS\",\n",
" \"Mathematics and Statistics\": \"MaSt\",\n",
" \"Social Sciences\": \"SoS\",\n",
"}\n",
"data[\"major\"] = data[\"major\"].apply(lambda x: lookup[x])\n",
"\n",
"data.head(10)"
]
},
{
"cell_type": "markdown",
"id": "fad39d75-4b71-4c02-aaaf-4c3f13602b4a",
"metadata": {},
"source": [
"Des Weiteren führen wir einen einfaktoriellen ANOVA-Hypothesentest in Python durch, indem wir die Funktion `f_oneway()` anwenden."
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "763bdf06-78e8-4b98-ba8b-8f808ba197e3",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Wert der F-Statistik: 41.14261241723518\n",
"p-Wert: 2.283897894495435e-31\n"
]
}
],
"source": [
"dat = [\n",
" data.loc[data[\"major\"] == major, \"salary\"].values\n",
" for major in data[\"major\"].unique()\n",
"]\n",
"statistics, pvalue = f_oneway(*dat)\n",
"\n",
"print(f\"Wert der F-Statistik: {statistics}\")\n",
"print(f\"p-Wert: {pvalue}\")"
]
},
{
"cell_type": "markdown",
"id": "f8375608-c4c0-4ef5-b505-cbc3cd2e3331",
"metadata": {},
"source": [
"### Bonferroni-Korrektur"
]
},
{
"cell_type": "markdown",
"id": "1777a6b2-c34f-4331-b04d-66bd994ebd3a",
"metadata": {},
"source": [
"Die Bonferroni-Korrektur kompensiert die erhöhte Wahrscheinlichkeit, dass eine Nullhypothese aufgrund von Mehrfachvergleichen fälschlicherweise abgelehnt wird (Fehler vom Typ I), indem das Signifikanzniveau $\\alpha$ in folgender Form angepasst wird"
]
},
{
"cell_type": "markdown",
"id": "632f9f96-1ff8-4ded-9e49-7727c1b66c41",
"metadata": {},
"source": [
"$$\\alpha = \\frac{\\alpha}{m}\\text{,}$$"
]
},
{
"cell_type": "markdown",
"id": "6a698c86-8b72-4454-9f6e-f868ac7636f0",
"metadata": {},
"source": [
"wobei $m$ der Anzahl der Vergleiche entspricht, die gegeben ist durch"
]
},
{
"cell_type": "markdown",
"id": "6169c6fd-1493-4521-97e8-6de1ae96b753",
"metadata": {},
"source": [
"$$m=\\frac{k(k-1)}{2}\\text{,}$$"
]
},
{
"cell_type": "markdown",
"id": "d57c69a5-f6ce-45a7-bb64-59ac565829ad",
"metadata": {},
"source": [
"wobei $k$ den Ebenen des Faktors entspricht, der die kategoriale Klassifikationsvariable ist."
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "e9466fd6-f534-487a-a10c-b07c92f516dc",
"metadata": {},
"outputs": [],
"source": [
"def bonferroni(alpha, k):\n",
" \"\"\"Computes the boferroni correction\"\"\"\n",
" m = k * (k - 1) / 2\n",
" bonf = alpha / m\n",
" return bonf"
]
},
{
"cell_type": "markdown",
"id": "cd7e6795-11fb-4515-bbeb-7265cd2c92fe",
"metadata": {},
"source": [
"### Der paarweiser $t$-Test in Python: Bonferroni-Korrektur"
]
},
{
"cell_type": "markdown",
"id": "010701b8-cbe8-49af-bb5d-ccf0ada19162",
"metadata": {},
"source": [
"Wie im vorigen Abschnitt erwähnt, ist eine einfaktorielle Varianzanalyse die Verallgemeinerung des $2$-Stichproben $t$-Tests auf mehr als zwei Grundgesamtheiten. Die Python-Funktion zur Durchführung von Mehrfachvergleichen ist `ttest_ind()`. Die Funktion `ttest_ind()` vergleicht die jeweiligen Gehaltsverteilungen (`salary`) nach Studienfächer gruppiert (`major`) miteinander."
]
},
{
"cell_type": "markdown",
"id": "1af46981-44ba-40cd-a91a-3442d58ec13b",
"metadata": {},
"source": [
"Zunächst führen wir einen paarweisen $t$-Test ohne Anpassung durch, wodurch sich die Wahrscheinlichkeit erhöht, dass die Nullhypothese falsch zurückgewiesen wird."
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "b70dc8ed-be28-4128-ba6c-fec41db50f2a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[('MaSt', 'PoS'),\n",
" ('MaSt', 'Bio'),\n",
" ('MaSt', 'EnS'),\n",
" ('MaSt', 'EcFi'),\n",
" ('MaSt', 'SoS'),\n",
" ('PoS', 'Bio'),\n",
" ('PoS', 'EnS'),\n",
" ('PoS', 'EcFi'),\n",
" ('PoS', 'SoS'),\n",
" ('Bio', 'EnS'),\n",
" ('Bio', 'EcFi'),\n",
" ('Bio', 'SoS'),\n",
" ('EnS', 'EcFi'),\n",
" ('EnS', 'SoS'),\n",
" ('EcFi', 'SoS')]"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from itertools import combinations\n",
"\n",
"major = list(combinations(data.major.unique(), 2))\n",
"major"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "532c5b58-8b87-4b29-bf81-6e74938a8219",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"MaSt vs. PoS\n",
"p-value: 5.2857708581268477e-11\n",
"Reject H0 (p-value <= 0.05): True\n",
"\n",
"MaSt vs. Bio\n",
"p-value: 0.23955813674375898\n",
"Reject H0 (p-value <= 0.05): False\n",
"\n",
"MaSt vs. EnS\n",
"p-value: 2.8739133454494936e-10\n",
"Reject H0 (p-value <= 0.05): True\n",
"\n",
"MaSt vs. EcFi\n",
"p-value: 0.6139629263411384\n",
"Reject H0 (p-value <= 0.05): False\n",
"\n",
"MaSt vs. SoS\n",
"p-value: 1.0518783466253219e-10\n",
"Reject H0 (p-value <= 0.05): True\n",
"\n",
"PoS vs. Bio\n",
"p-value: 4.8406849116995696e-15\n",
"Reject H0 (p-value <= 0.05): True\n",
"\n",
"PoS vs. EnS\n",
"p-value: 0.120165093300726\n",
"Reject H0 (p-value <= 0.05): False\n",
"\n",
"PoS vs. EcFi\n",
"p-value: 2.649042688427034e-12\n",
"Reject H0 (p-value <= 0.05): True\n",
"\n",
"PoS vs. SoS\n",
"p-value: 0.23097741142110123\n",
"Reject H0 (p-value <= 0.05): False\n",
"\n",
"Bio vs. EnS\n",
"p-value: 1.790220430001192e-14\n",
"Reject H0 (p-value <= 0.05): True\n",
"\n",
"Bio vs. EcFi\n",
"p-value: 0.5127682352930607\n",
"Reject H0 (p-value <= 0.05): False\n",
"\n",
"Bio vs. SoS\n",
"p-value: 6.474671293237731e-14\n",
"Reject H0 (p-value <= 0.05): True\n",
"\n",
"EnS vs. EcFi\n",
"p-value: 8.151876693739742e-12\n",
"Reject H0 (p-value <= 0.05): True\n",
"\n",
"EnS vs. SoS\n",
"p-value: 0.00557583127097583\n",
"Reject H0 (p-value <= 0.05): True\n",
"\n",
"EcFi vs. SoS\n",
"p-value: 7.1456783247184506e-12\n",
"Reject H0 (p-value <= 0.05): True\n",
"\n"
]
}
],
"source": [
"alpha = 0.05\n",
"\n",
"for major1, major2 in major:\n",
" _, p_value = ttest_ind(\n",
" data.loc[data[\"major\"] == major1, \"salary\"],\n",
" data.loc[data[\"major\"] == major2, \"salary\"],\n",
" )\n",
" print(f\"{major1} vs. {major2}\")\n",
" print(f\"p-value: {p_value}\")\n",
" print(f\"Reject H0 (p-value <= {alpha}): {p_value <= alpha}\\n\")"
]
},
{
"cell_type": "markdown",
"id": "4f5431ad-2f8d-41bb-95cc-fe349d07cc7d",
"metadata": {},
"source": [
"Der paarweise $t$-Test zeigt, dass bei einem Signifikanzniveau von $5 \\%$ die Mittelwerte für $5$ Kombinationen **nicht** statistisch signifikant unterschiedlich sind. Diese Kombinationen sind Bio-EcFi, Bio-MaSt, EcFi-MaSt, EnS-PoS, PoS-SoS mit $p$-Werten von $0,5128$, $0,2396$, $0,61396$ , $0,1202$ , $0,635057$ bzw. $0,230977$. Für die restlichen $10$ Kombinationen verwerfen wir $H_0$; d. h. für $10$ Kombinationen sind die Mittelwerte bei einem Signifikanzniveau von $5 \\%$ unterschiedlich!\n",
"\n",
"Zweitens führen wir einen **paarweisen $t$-Test mit der Bonferroni-Anpassung** durch."
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "abd4801e-5f4c-45d8-96e8-96b2dd89d8e9",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.0033333333333333335"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bonf = bonferroni(alpha=0.05, k=data.major.nunique())\n",
"bonf"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "f98bbd3c-4d43-4c00-8920-3e066de8533d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"MaSt vs. PoS\n",
"p-value: 5.2857708581268477e-11\n",
"Reject H0 (p-value <= 0.00333): True\n",
"\n",
"MaSt vs. Bio\n",
"p-value: 0.23955813674375898\n",
"Reject H0 (p-value <= 0.00333): False\n",
"\n",
"MaSt vs. EnS\n",
"p-value: 2.8739133454494936e-10\n",
"Reject H0 (p-value <= 0.00333): True\n",
"\n",
"MaSt vs. EcFi\n",
"p-value: 0.6139629263411384\n",
"Reject H0 (p-value <= 0.00333): False\n",
"\n",
"MaSt vs. SoS\n",
"p-value: 1.0518783466253219e-10\n",
"Reject H0 (p-value <= 0.00333): True\n",
"\n",
"PoS vs. Bio\n",
"p-value: 4.8406849116995696e-15\n",
"Reject H0 (p-value <= 0.00333): True\n",
"\n",
"PoS vs. EnS\n",
"p-value: 0.120165093300726\n",
"Reject H0 (p-value <= 0.00333): False\n",
"\n",
"PoS vs. EcFi\n",
"p-value: 2.649042688427034e-12\n",
"Reject H0 (p-value <= 0.00333): True\n",
"\n",
"PoS vs. SoS\n",
"p-value: 0.23097741142110123\n",
"Reject H0 (p-value <= 0.00333): False\n",
"\n",
"Bio vs. EnS\n",
"p-value: 1.790220430001192e-14\n",
"Reject H0 (p-value <= 0.00333): True\n",
"\n",
"Bio vs. EcFi\n",
"p-value: 0.5127682352930607\n",
"Reject H0 (p-value <= 0.00333): False\n",
"\n",
"Bio vs. SoS\n",
"p-value: 6.474671293237731e-14\n",
"Reject H0 (p-value <= 0.00333): True\n",
"\n",
"EnS vs. EcFi\n",
"p-value: 8.151876693739742e-12\n",
"Reject H0 (p-value <= 0.00333): True\n",
"\n",
"EnS vs. SoS\n",
"p-value: 0.00557583127097583\n",
"Reject H0 (p-value <= 0.00333): False\n",
"\n",
"EcFi vs. SoS\n",
"p-value: 7.1456783247184506e-12\n",
"Reject H0 (p-value <= 0.00333): True\n",
"\n"
]
}
],
"source": [
"for major1, major2 in major:\n",
" _, p_value = ttest_ind(\n",
" data.loc[data[\"major\"] == major1, \"salary\"],\n",
" data.loc[data[\"major\"] == major2, \"salary\"],\n",
" )\n",
" print(f\"{major1} vs. {major2}\")\n",
" print(f\"p-value: {p_value}\")\n",
" print(f\"Reject H0 (p-value <= {np.round(bonf,5)}): {p_value <= bonf}\\n\")"
]
},
{
"cell_type": "markdown",
"id": "3ea2a00d-fc0e-45c9-bc68-e966f8a73924",
"metadata": {},
"source": [
"Der paarweise $t$-Test mit der Bonferroni-Anpassung zeigt, dass bei einem Signifikanzniveau von $5 \\%$ die Mittelwerte für $6$ Kombinationen nicht statistisch signifikant unterschiedlich sind. Bei diesen Kombinationen handelt es sich um Bio-EcFi, Bio-MaSt, EcFi-MaSt, EnS-PoS, PoS-SoS, EnS-SoS mit $p$-Werten von $0,5128$, $0,2396$, $0,61397$, $0,1202$, $0,230978$ bzw. $0,00558$. (beim Bonferroni-Verfahren wird $\\alpha$ durch die Anzahl der Tests geteilt bzw. der $p$-Wert mit dieser Anzahl multipliziert und auf $1$ gekürzt, wenn das Ergebnis über $1$ liegt und somit keine Wahrscheinlichkeit darstellt). Für die verbleibenden $9$ Kombinationen haben wir $H_0$ abgelehnt, d. h. für $9$ Kombinationen sind die Mittelwerte bei einem Signifikanzniveau von $\\approx 0,0067 \\%$ unterschiedlich!"
]
},
{
"cell_type": "markdown",
"id": "411b92a8-cfd6-45f1-8cb0-dd287c839019",
"metadata": {},
"source": [
"### Tukey-Mehrfach-Vergleichsmethode"
]
},
{
"cell_type": "markdown",
"id": "23559814-3cd2-488c-a812-cdf574da18ec",
"metadata": {},
"source": [
"Der Tukey-Test, auch bekannt als **Tukey's HSD-Test (honest significant difference)**, basiert auf der studentized range-Verteilung, die manchmal auch als $q$-Verteilung bezeichnet wird. Die **$q$-Verteilung** ist eine rechtsschiefe Wahrscheinlichkeitsdichtekurve mit zwei Parametern, $\\kappa$ und $\\nu$, die ihre Form beschreiben. Diese Parameter sind gegeben durch"
]
},
{
"cell_type": "markdown",
"id": "e792fed9-141f-47b3-a7d5-f986a2afde63",
"metadata": {},
"source": [
"$$\\kappa = k$$"
]
},
{
"cell_type": "markdown",
"id": "28d642fc-a5da-4e6f-b9d2-ac8fd002e6b9",
"metadata": {},
"source": [
"und"
]
},
{
"cell_type": "markdown",
"id": "8446e77b-1070-4b2e-8455-14715b06379d",
"metadata": {},
"source": [
"$$\\nu = n-k\\text{,}$$"
]
},
{
"cell_type": "markdown",
"id": "cc039e9f-cbed-41c5-b162-9e8a3722bd8f",
"metadata": {},
"source": [
"wobei $n$ die Gesamtzahl der Beobachtungen ist und $k$ die Anzahl der Gruppen/Klassen.\n",
"\n",
"Der Tukey-Test vergleicht die Mittelwerte jeder Gruppe mit den Mittelwerten jeder anderen Gruppe. Er liefert das Konfidenzintervall für jedes"
]
},
{
"cell_type": "markdown",
"id": "570b5c27-1f44-49dd-930d-12f405cf2c45",
"metadata": {},
"source": [
"$$\\mu_i-\\mu_j\\text{.}$$"
]
},
{
"cell_type": "markdown",
"id": "a48d3b79-73c5-4089-826f-de5a2a2e77ab",
"metadata": {},
"source": [
"Wenn das Konfidenzintervall für einen paarweisen Vergleich $0$ einschließt, wird $H_0$ nicht verworfen, es wird nicht angenommen, dass sie signifikant unterschiedlich sind. Alle anderen Paare, für die das Konfidenzintervall nicht $0$ einschließt, sind signifikant unterschiedlich, $H_0$ wird also verworfen."
]
},
{
"cell_type": "markdown",
"id": "c1e611f6-7493-4396-9233-e1c0343c673f",
"metadata": {},
"source": [
"### Tukey's Test in Python"
]
},
{
"cell_type": "markdown",
"id": "b2f8b5db-de1c-4ad0-8135-6c5150333066",
"metadata": {},
"source": [
"In Python werden Tukey's HSD Tests durch die `pairwise_tukeyhsd()` Funktion berechnet. Die `pairwise_tukeyhsd()`-Funktion erwartet als Eingabe `endog`, die zu vergleichende Größe und `groups` die Aufteilung der Gruppen. Um die Breite der Konfidenzintervalle festzulegen, geben wir der Funktion das Konfidenzniveau mit dem Argument `alpha` an."
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "50a8c5c2-9357-4a97-86d5-f51ba60c74b1",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"
Multiple Comparison of Means - Tukey HSD, FWER=0.05
\n",
"
\n",
"
group1
group2
meandiff
p-adj
lower
upper
reject
\n",
"
\n",
"
\n",
"
Bio
EcFi
-1012.3086
0.983
-5228.585
3203.9678
False
\n",
"
\n",
"
\n",
"
Bio
EnS
-11777.6601
-0.0
-15810.772
-7744.5482
True
\n",
"
\n",
"
\n",
"
Bio
MaSt
-1846.3679
0.8039
-6036.7581
2344.0223
False
\n",
"
\n",
"
\n",
"
Bio
PoS
-13913.133
-0.0
-18078.5879
-9747.6782
True
\n",
"
\n",
"
\n",
"
Bio
SoS
-16091.4853
-0.0
-21100.7005
-11082.2702
True
\n",
"
\n",
"
\n",
"
EcFi
EnS
-10765.3515
0.0
-15067.6403
-6463.0628
True
\n",
"
\n",
"
\n",
"
EcFi
MaSt
-834.0593
0.9946
-5284.1231
3616.0045
False
\n",
"
\n",
"
\n",
"
EcFi
PoS
-12900.8245
-0.0
-17327.4159
-8474.233
True
\n",
"
\n",
"
\n",
"
EcFi
SoS
-15079.1768
-0.0
-20307.5545
-9850.799
True
\n",
"
\n",
"
\n",
"
EnS
MaSt
9931.2922
0.0
5654.369
14208.2155
True
\n",
"
\n",
"
\n",
"
EnS
PoS
-2135.4729
0.7016
-6387.9683
2117.0224
False
\n",
"
\n",
"
\n",
"
EnS
SoS
-4313.8252
0.1475
-9395.6496
767.9991
False
\n",
"
\n",
"
\n",
"
MaSt
PoS
-12066.7651
0.0
-16468.7074
-7664.8229
True
\n",
"
\n",
"
\n",
"
MaSt
SoS
-14245.1174
0.0
-19452.6425
-9037.5924
True
\n",
"
\n",
"
\n",
"
PoS
SoS
-2178.3523
0.834
-7365.8335
3009.1289
False
\n",
"
\n",
"
"
],
"text/plain": [
""
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Tukey's test ausführen\n",
"tukey = pairwise_tukeyhsd(endog=data[\"salary\"], groups=data[\"major\"], alpha=0.05)\n",
"tukey.summary()"
]
},
{
"cell_type": "markdown",
"id": "bbf0cd38-481e-443b-bbb9-cb34cf5beedb",
"metadata": {},
"source": [
"Bitte beachten Sie, dass wir im Fall ohne $p$-Wert-Anpassung die Nullhypothese für $10$ Kombinationen abgelehnt haben. Beim paarweisen $t$-Test mit der Tukey-Anpassung wurde die Nullhypothese für $9$ Kombinationen verworfen."
]
},
{
"cell_type": "markdown",
"id": "008436ff-eaff-4955-8006-d960ec8efb65",
"metadata": {},
"source": [
"Die Tabelle zeigt die Differenz zwischen den einzelnen Paaren, die $95 \\%$-Konfidenzintervalle und den $p$-Wert der paarweisen Vergleiche. Schauen Sie sich die Tabelle genau an, und Sie werden sehen, dass für alle $6$ Vergleiche, bei denen das Konfidenzintervall $0$ einschließt, der $p$-Wert höher ist als das Signifikanzniveau $\\alpha$. Wenn $p \\gt \\alpha$ ist, verwerfen wir $H_0$ nicht, d. h. es gibt keinen statistisch signifikanten Unterschied zwischen den Mittelwerten dieser beiden Gruppen. Für alle Paare, bei denen $p \\le \\alpha$ ist, verwerfen wir dagegen $H_0$ und stellen fest, dass ein statistisch signifikanter Unterschied zwischen den Mittelwerten dieser Paare besteht. Die `tukey.plot_simultaneous()`-Funktion bietet eine nette Plot-Funktion, die die Konfidenzintervalle für jedes Paar visualisiert."
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "531880e9-25b2-42a5-9d11-949ccdd06b1e",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"_ = tukey.plot_simultaneous()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.2"
},
"vscode": {
"interpreter": {
"hash": "31f2aee4e71d21fbe5cf8b01ff0e069b9275f58929596ceb00d14d90e3e16cd6"
}
}
},
"nbformat": 4,
"nbformat_minor": 5
}