\(\chi^2\)-Unabhängigkeitstest#
… ein parameterfreier Test zum Prüfen ob zwei Merkmale als unabhängig angesehen werden können.
Bei der Durchführung des Tests halten wir uns and die bekannte Vorgehenweise. Im Folgenden werden die zugehörigen konkreten Hypothesen, Testgrößen, kritischen Bereiche und p-Werte besprochen.
Aufgabenstellung#
Zu überprüfen ist, ob zwei diskrete Merkmale \(X\) und \(Y\) stochastisch unabhängig sind. Dafür liegt eine zweidimensionale Stichprobe vor:
Kontingenztafel#
\(X\) habe die Ausprägungen \(1, 2, \dots, l\)
\(Y\) habe die Ausprägungen \(1, 2, \dots, m\)
Wir stellen die Häufigkeiten in einer Kontingenztafel dar:
\(X \setminus Y\) |
\(1\) |
\(2\) |
\(\dots\) |
\(m\) |
\(\sum\) |
---|---|---|---|---|---|
\(1\) |
\(H_{11}\) |
\(H_{12}\) |
\(\dots\) |
\(H_{1m}\) |
\(H_{1\cdot}\) |
\(2\) |
\(H_{21}\) |
\(H_{22}\) |
\(\dots\) |
\(H_{2m}\) |
\(H_{2\cdot}\) |
\(\vdots\) |
\(\vdots\) |
\(\vdots\) |
\(\vdots\) |
\(\vdots\) |
|
\(l\) |
\(H_{l1}\) |
\(H_{l2}\) |
\(\dots\) |
\(H_{lm}\) |
\(H_{l\cdot}\) |
\(\sum\) |
\(H_{\cdot1}\) |
\(H_{\cdot2}\) |
\(\dots\) |
\(H_{\cdot m}\) |
\(n\) |
\(H_{jk}\): Häufigkeit des gleichzeitigen Auftretens von \(X = j\) und \(Y = k\)
\(H_{j\cdot} = \sum_{k=1}^m H_{jk}\): Randhäufigkeit (Zeilensumme)
\(H_{\cdot k} = \sum_{j=1}^l H_{jk}\): Randhäufigkeit (Spaltensumme)
Vorgehen#
Signifikanzniveau \(\alpha \in (0,1)\) wählen.
Hypothesen
\(H_0\): \(X\) und \(Y\) sind unabhängig
\(H_1\): \(X\) und \(Y\) sind nicht unabhängig
Testgröße
Die Teststatistik lautet:
\[ T = \sum_{j=1}^l \sum_{k=1}^m \frac{\left(H_{jk} - \frac{H_{j\cdot} H_{\cdot k}}{n} \right)^2}{\frac{H_{j\cdot} H_{\cdot k}}{n}} \stackrel{a}{\sim} \chi^2((l-1)(m-1)) \]Das bedeutet: Wenn \(H_0\) gilt und \(n\) groß ist, folgt \(T\) näherungsweise einer \(\chi^2\)-Verteilung mit \((l-1)(m-1)\) Freiheitsgraden.
konkreter Testwert \(t\): ergibt sich wenn die konkreten (gemessenen) Häufigkeiten in die Formel eingesetzt werden.
Kritischer Bereich
\[ K = \left( \chi^2_{(l-1)(m-1), 1 - \alpha}, \infty \right) \]Testentscheidung
\(t \in K \quad \Rightarrow \quad H_0\) ablehnen
\(t \notin K \quad \Rightarrow \quad H_0\) nicht ablehnen
Bemerkungen#
Die Testgröße kennen wir schon aus der deskriptiven Statistik als Maßzahl beim Vergleich zweier nominaler Merkmale, siehe hier.
Falls die Merkmale stetig sind, so lässt sich ein \(\chi^2\)-Unabhängigkeitstest rechnen, wenn man die Daten zuvor in Klassen einteilt.
Faustregel für die Anwendbarkeit:
\[ \frac{H_{j\cdot}H_{\cdot k}}{n} \geq 5 \quad \text{für alle } j, k \]Die Teststatistik
\[ T = \sum_{j=1}^l \sum_{k=1}^m \left(H_{jk} - \frac{H_{j\cdot} H_{\cdot k}}{n}\right)^2 \cdot \frac{n}{H_{j\cdot} H_{\cdot k}} \]wird groß, wenn die beobachteten Häufigkeiten \(H_{jk}\) stark von den erwarteten Häufigkeiten
\[ \frac{1}{n} H_{j\cdot} H_{\cdot k} \]abweichen. Diese Größe beschreibt die erwartete Häufigkeit unter der Annahme von Unabhängigkeit bei gegebenen Randhäufigkeiten \(H_{j\cdot}\) und \(H_{\cdot k}\).
Spezialfall \(l = m = 2\):
Die Kontingenztafel wird zur Vier-Felder-Tafel:\(X \setminus Y\)
\(1\)
\(2\)
\(\sum\)
\(1\)
\(H_{11}\)
\(H_{12}\)
\(H_{1\cdot}\)
\(2\)
\(H_{21}\)
\(H_{22}\)
\(H_{2\cdot}\)
\(\sum\)
\(H_{\cdot 1}\)
\(H_{\cdot 2}\)
\(n\)
In diesem Fall gilt:
\[ T = n \cdot \frac{(H_{11} H_{22} - H_{12} H_{21})^2}{H_{1\cdot} H_{2\cdot} H_{\cdot 1} H_{\cdot 2}} \stackrel{a}{\sim} \chi^2(1) \]
Beispiel 1#
550 Personen der Altersgruppe zwischen 30 und 40 Jahren wurden über ihre Rauchgewohnheiten und ihre sportliche Betätigung befragt.
Von den 381 Nichtrauchern treiben 56 regelmäßig Sport, 143 gelegentlich und 182 treiben selten oder nie Sport.
Unter den Rauchern betragen entsprechende Häufigkeiten 15, 46 und 108.
Lässt sich mit einem Test zum Signifikanzniveau von 0.01 eine Abhängigkeit zwischen Rauchverhalten und sportlicher Betätigung nachweisen?
Lösung: \(\chi^2\)-Unabhängigkeitstest
\(X\) … Rauchgewohnheit:
\(X=1\) … Nichtraucher, \(X=2\) … Raucher\(Y\) … Sportliche Betätigung:
\(Y=1\) … regelmäßig, \(Y=2\) … gelegentlich, \(Y=3\) … selten oder nie
Kontingenztafel:
\(X \setminus Y\) |
1 (regelmäßig) |
2 (gelegentlich) |
3 (selten/nie) |
\(\sum\) |
---|---|---|---|---|
1 (Nichtraucher) |
56 |
143 |
182 |
381 |
2 (Raucher) |
15 |
46 |
108 |
169 |
\(\sum\) |
71 |
189 |
290 |
550 |
Testschritte:
Signifikanzniveau: \(\alpha = 0.01\)
Hypothesen:
\[ H_0: \text{X und Y sind unabhängig} \quad\text{vs.}\quad H_1: \text{X und Y sind nicht unabhängig} \]Testgröße:
\[ T = \sum_{j=1}^{2} \sum_{k=1}^{3} \left(H_{jk} - \frac{H_{j\cdot} H_{\cdot k}}{n}\right)^2 \cdot \frac{n}{H_{j\cdot} H_{\cdot k}} \stackrel{a}{\sim} \chi^2(2) \]Erwartete Häufigkeiten:
\(X \setminus Y\)
1
2
3
\(\sum\)
1 (Nichtraucher)
49.2
130.9
200.9
381
2 (Raucher)
21.8
58.1
89.1
169
\(\sum\)
71
189
290
550
Berechnung des Testwerts:
\[ t = \frac{(56 - 49.2)^2}{49.2} + \frac{(143 - 130.9)^2}{130.9} + \dots + \frac{(108 - 89.1)^2}{89.1} = 12.48 \]Kritischer Bereich:
\[ K = \left(\chi^2_{(2-1)(3-1), 1 - 0.01}, \infty\right) = (9.21, \infty) \]In R:
qchisq(0.99,2)
Entscheidung:
\[ t \in K \Rightarrow \text{Die Nullhypothese } H_0 \text{ wird abgelehnt.} \]Interpretation:
Auf Grundlage der Stichprobe gehen wir zu einem Signifikanzniveau von 0.01 davon aus, dass Rauchgewohnheit und sportliche Betätigung nicht unabhängig sind.
Umsetzung in R#
# Beobachtete Häufigkeiten in einer Kontingenztafel (Matrix)
# Reihen: Rauchverhalten (1=Nichtraucher, 2=Raucher)
# Spalten: Sportliche Betätigung (1=regelmäßig, 2=gelegentlich, 3=selten oder nie)
daten <- matrix(c(56, 143, 182,
15, 46, 108),
nrow = 2, byrow = TRUE)
# Chi-Quadrat-Unabhängigkeitstest
test <- chisq.test(daten)
# Testergebnis ausgeben
print(test)
# Einzelne Ergebnisse:
# test$statistic -> Teststatistik T
# test$p.value -> p-Wert
# test$expected -> Erwartete Häufigkeiten
Pearson's Chi-squared test
data: daten
X-squared = 12.48, df = 2, p-value = 0.00195
Beispiel 2: Unabhänigkeit von Merkmalen aus einem data.frame#
Die Funktion chisq.test
kann als Argument auch 2 Spalten eines data.frame
haben. Dann wir für diese Merkmale ein Chi-Quadrat-Unabhängigkeitstest gerechnet. Wir zeigen dies in einem kurzen R-Code:
# Laedt einen Datensatz
data <- read.table("https://iversion.informatik.htw-dresden.de/schwarzenberger/statbook/-/raw/main/daten/sleep_health_lifestyle.txt?ref_type=heads&inline=false",header=TRUE,sep=";",dec=",")
# erster Überblick
head(data)
# Gender vs Sleep.Disorder in Kontingenztafel
table(data$Gender,data$Sleep.Disorder)
# Chi-Quadrat-Unabhängigkeitstest, alpha=0.05
chisq.test(data$Gender,data$Sleep.Disorder)
Person.ID | Gender | Age | Occupation | Sleep.Duration | Quality.of.Sleep | Physical.Activity.Level | Stress.Level | BMI.Category | Blood.Pressure | Heart.Rate | Daily.Steps | Sleep.Disorder | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
<int> | <chr> | <int> | <chr> | <dbl> | <int> | <int> | <int> | <chr> | <chr> | <int> | <int> | <chr> | |
1 | 1 | Male | 27 | Software Engineer | 6.1 | 6 | 42 | 6 | Overweight | 126/83 | 77 | 4200 | None |
2 | 2 | Male | 28 | Doctor | 6.2 | 6 | 60 | 8 | Normal | 125/80 | 75 | 10000 | None |
3 | 3 | Male | 28 | Doctor | 6.2 | 6 | 60 | 8 | Normal | 125/80 | 75 | 10000 | None |
4 | 4 | Male | 28 | Sales Representative | 5.9 | 4 | 30 | 8 | Obese | 140/90 | 85 | 3000 | Sleep Apnea |
5 | 5 | Male | 28 | Sales Representative | 5.9 | 4 | 30 | 8 | Obese | 140/90 | 85 | 3000 | Sleep Apnea |
6 | 6 | Male | 28 | Software Engineer | 5.9 | 4 | 30 | 8 | Obese | 140/90 | 85 | 3000 | Insomnia |
Insomnia None Sleep Apnea
Female 36 82 67
Male 41 137 11
Pearson's Chi-squared test
data: data$Gender and data$Sleep.Disorder
X-squared = 54.306, df = 2, p-value = 1.613e-12
Entscheidung: p-Wert < \(\alpha\), daher wird \(H_0\) verworfen
Interpretation: Auf Grundlage der Stichprobe verwerfen wir nach einem Test zum Siginifikanzniveau 0.05 die Hypothese, dass das Geschlecht und das Auftreten von Schlafstörungen voneinander unabhängig sind.
Beispiel 3: Schade, dass die Statistikvorlesung vorbei ist#
Von 90 Studierenden (47 weiblich, 43 männlich) geben 34 an, dass sie traurig sind, dass die Statistikvorlesung vorbei ist.
Von diesen 34 Personen sind 20 weiblich.
Es ist zum Signifikanzniveau von 0.05 zu testen, ob das Empfinden von Trauer im Zusammenhang mit dem Ende der Statistikvorlesung vom Geschlecht abhängig ist.
Lösung: \(\chi^2\)-Unabhängigkeitstest
\(X\) … Trauer über das Vorlesungsende
\(X=1\) … traurig, \(X=2\) … nicht traurig\(Y\) … Geschlecht
\(Y=1\) … männlich, \(Y=2\) … weiblich
Signifikanzniveau: \(\alpha = 0.05\)
Hypothesen:
\[ H_0: \text{X und Y sind unabhängig} \quad\text{vs.}\quad H_1: \text{X und Y sind nicht unabhängig} \]Testgröße:
\[ T = n \cdot \frac{(H_{11}H_{22} - H_{12}H_{21})^2}{H_{1\cdot} H_{2\cdot} H_{\cdot 1} H_{\cdot 2}} \stackrel{a}{\sim} \chi^2_1 \]Zunächst die Kontingenztafel:
\(X \setminus Y\)
1 (männlich)
2 (weiblich)
\(\sum\)
1 (traurig)
14
20
34
2 (nicht traurig)
29
27
56
\(\sum\)
43
47
90
konkrete Testgröße \(t\):
\[ t = 90 \cdot \frac{(14 \cdot 27 - 20 \cdot 29)^2}{34 \cdot 56 \cdot 43 \cdot 47} = 0.945 \]Kritischer Bereich:
\[ K = (\chi^2_{1, 0.95}, \infty) = (3.84, \infty) \]In R:
qchisq(0.95,1)
Testentscheidung:
\[ t \notin K \Rightarrow \text{Gegen } H_0 \text{ ist nichts einzuwenden.} \]Interpretation:
Auf Grundlage dieser Stichprobe lässt sich die Unabhängigkeit von Geschlecht und dem Empfinden von Trauer über das Vorlesungsende zum Signifkanzniveau \(0.05\) nicht ablehnen.
Umsetzung in R#
# Beobachtete Häufigkeiten in einer Kontingenztafel (Matrix)
# Reihen: Trauer (1=traurig, 2=nicht traurig)
# Spalten: Geschlecht (1=männlich, 2=weiblich)
daten2 <- matrix(c(14, 20,
29, 27),
nrow = 2, byrow = TRUE)
# Chi-Quadrat-Unabhängigkeitstest
test2 <- chisq.test(daten2)
# Testergebnis ausgeben
print(test2)
# Einzelne Ergebnisse:
# test2$statistic -> Teststatistik T
# test2$p.value -> p-Wert
# test2$expected -> Erwartete Häufigkeiten
Pearson's Chi-squared test with Yates' continuity correction
data: daten2
X-squared = 0.57651, df = 1, p-value = 0.4477