\(\chi^2\)-Test

Der \(\chi^2\)-Test ist eine Möglichkeit, um Zusammenhänge zwischen zwei kategorialen Variablen zu untersuchen. Bei zwei binären Variablen lassen sich Richtung und Stärke des Zusammenhangs beispielsweise durch eine Proportionsdifferenz, ein Odds Ratio oder ein Risk Ratio beschreiben. Der \(\chi^2\)-Test prüft dagegen die Unabhängigkeit der Variablen und liefert keine solche Effektgrösse. Er eignet sich auch für Tabellen mit mehr als zwei Kategorien pro Variable; ein einzelnes Odds Ratio oder Risk Ratio beschreibt den Zusammenhang dann im Allgemeinen nicht vollständig.

Wir erstellen die Daten direkt in R. Kopiere den Code unten und lass ihn laufen, um die Daten zu generieren.

einkaufen <- c(rep("Coop", 32), rep("Denner", 19), rep("Migros", 19))
ernaehrung <- c(rep("Allesfresser", 17), rep("Veganer", 6), rep("Vegetarier", 9),
                rep("Allesfresser", 8), rep("Veganer", 7), rep("Vegetarier", 4),
                rep("Allesfresser", 4), rep("Veganer", 7), rep("Vegetarier", 8))

df.einkaufen <- data.frame(einkaufen, ernaehrung)

Aufgaben

  1. Erstelle die \(k \times m\)-Tabelle (ernaehrung repräsentiert die Zeilen). Lass dir die beobachteten Häufigkeiten anzeigen.

  2. Lass dir die unter der Nullhypothese erwarteten Häufigkeiten anzeigen (du brauchst dafür die Funktion chisq.test()).

  3. Sind die Voraussetzungen für einen \(\chi^2\)-Test erfüllt? (Welche sind das?)

  4. Untersuche mit dem \(\chi^2\)-Test, ob die Daten gegen die Unabhängigkeit der beiden Variablen sprechen. Wie lautet \(H_0\)?

  5. Interpretiere das Resultat des Tests.

  6. Welche Zellen weisen die grössten standardisierten Abweichungen der beobachteten von den erwarteten Häufigkeiten auf? Lass dir die standardisierten Residuen (stdres) anzeigen, um diese Frage zu beantworten.

  7. Schau dir die standardisierten Residuen an ($stdres). Was fällt auf?


Lösungen

Zuerst wird die Häufigkeitstabelle erstellt:

my_km_table <- table(df.einkaufen$ernaehrung, df.einkaufen$einkaufen)
my_km_table
##               
##                Coop Denner Migros
##   Allesfresser   17      8      4
##   Veganer         6      7      7
##   Vegetarier      9      4      8

Die unter \(H_0\) erwarteten Häufigkeiten erhalten wir über die Komponente $expected:

chisq.test(my_km_table)$expected
##               
##                   Coop Denner Migros
##   Allesfresser 13.2571 7.8714 7.8714
##   Veganer       9.1429 5.4286 5.4286
##   Vegetarier    9.6000 5.7000 5.7000

Alle erwarteten Zellhäufigkeiten sind mindestens 5. Damit ist die übliche Faustregel für die Chi-Quadrat-Approximation erfüllt. Zusätzlich setzt der Test unabhängige Beobachtungen voraus: Jede Person darf nur zu einer Zelle beitragen. Ob die Beobachtungen unabhängig sind, muss anhand des Studiendesigns beurteilt werden.

\(H_0\): Die Variable einkaufen und die Variable ernaehrung sind voneinander unabhängig. Diese Hypothese können wir mit dem \(\chi^2\)-Test prüfen:

chisq.test(my_km_table)
## 
##  Pearson's Chi-squared test
## 
## data:  my_km_table
## X-squared = 6.43, df = 4, p-value = 0.17

Der P-Wert beträgt 16.95 %. Unter \(H_0\) ist dies die Wahrscheinlichkeit, eine mindestens so grosse Chi-Quadrat-Teststatistik wie die beobachtete zu erhalten. Auf dem 5%-Niveau wird \(H_0\) nicht verworfen. Die Daten liefern keine ausreichende Evidenz gegen die Unabhängigkeit; sie belegen damit jedoch nicht, dass die Variablen unabhängig sind.


chisq.test(my_km_table)$stdres
##               
##                     Coop    Denner    Migros
##   Allesfresser  1.823025  0.070152 -2.112348
##   Veganer      -1.669187  0.934932  0.934932
##   Vegetarier   -0.314140 -0.997072  1.348979

Das extremste Residuum findet sich in der Zelle “Allesfresser”/“Migros”. Dieses ist negativ, was bedeutet, dass die beobachtete Häufigkeit für diese Kombination tiefer ist, als unter \(H_0\) erwartet. Ein einzelner standardisierter Residualwert von −2.11 zeigt, dass in dieser einen Zelle (Allesfresser × Migros) weniger Beobachtungen aufgetreten sind, als unter Unabhängigkeit erwartet. Aber: Der Gesamttest berücksichtigt alle Zellen gemeinsam. Ein einzelner auffälliger Residualwert reicht nicht aus, um die Nullhypothese zu verwerfen. Die Beiträge zur Chi-Quadrat-Teststatistik sind nichtnegativ und können sich daher nicht gegenseitig aufheben. Der Gesamttest bewertet ihre Summe unter Berücksichtigung der Freiheitsgrade. Bei einer inferenziellen Interpretation einzelner Residuen ist zudem das multiple Testen zu berücksichtigen.


Sind die erwarteten Zellhäufigkeiten für die Chi-Quadrat-Approximation zu klein, kann alternativ der exakte Test nach Fisher verwendet werden, auch für diese \(3 \times 3\)-Tabelle. Unabhängige Beobachtungen werden auch dabei vorausgesetzt:

fisher.test(my_km_table)
## 
##  Fisher's Exact Test for Count Data
## 
## data:  my_km_table
## p-value = 0.16
## alternative hypothesis: two.sided

Der P-Wert ist ähnlich wie jener des \(\chi^2\)-Tests.