\(\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:

\[ (X_1, Y_1), (X_2, Y_2), \dots, (X_n, Y_n)\]

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#

  1. Signifikanzniveau \(\alpha \in (0,1)\) wählen.

  2. Hypothesen

    • \(H_0\): \(X\) und \(Y\) sind unabhängig

    • \(H_1\): \(X\) und \(Y\) sind nicht unabhängig

  3. 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.

  4. Kritischer Bereich

    \[ K = \left( \chi^2_{(l-1)(m-1), 1 - \alpha}, \infty \right) \]
  5. 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:

  1. Signifikanzniveau: \(\alpha = 0.01\)

  2. Hypothesen:

    \[ H_0: \text{X und Y sind unabhängig} \quad\text{vs.}\quad H_1: \text{X und Y sind nicht unabhängig} \]
  3. 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 \]
  4. Kritischer Bereich:

    \[ K = \left(\chi^2_{(2-1)(3-1), 1 - 0.01}, \infty\right) = (9.21, \infty) \]

    In R:

    qchisq(0.99,2)
    
  5. Entscheidung:

    \[ t \in K \Rightarrow \text{Die Nullhypothese } H_0 \text{ wird abgelehnt.} \]
  6. 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)
A data.frame: 6 × 13
Person.IDGenderAgeOccupationSleep.DurationQuality.of.SleepPhysical.Activity.LevelStress.LevelBMI.CategoryBlood.PressureHeart.RateDaily.StepsSleep.Disorder
<int><chr><int><chr><dbl><int><int><int><chr><chr><int><int><chr>
11Male27Software Engineer 6.16426Overweight126/8377 4200None
22Male28Doctor 6.26608Normal 125/807510000None
33Male28Doctor 6.26608Normal 125/807510000None
44Male28Sales Representative5.94308Obese 140/9085 3000Sleep Apnea
55Male28Sales Representative5.94308Obese 140/9085 3000Sleep Apnea
66Male28Software Engineer 5.94308Obese 140/9085 3000Insomnia
        
         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

  1. Signifikanzniveau: \(\alpha = 0.05\)

  2. Hypothesen:

    \[ H_0: \text{X und Y sind unabhängig} \quad\text{vs.}\quad H_1: \text{X und Y sind nicht unabhängig} \]
  3. 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 \]
  4. Kritischer Bereich:

    \[ K = (\chi^2_{1, 0.95}, \infty) = (3.84, \infty) \]

    In R:

    qchisq(0.95,1)
    
  5. Testentscheidung:

    \[ t \notin K \Rightarrow \text{Gegen } H_0 \text{ ist nichts einzuwenden.} \]
  6. 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