\(\chi^2\) Test

Der \(\chi^2\) Test ist eine Möglichkeit, um Zusammenhänge zwischen zwei kategorialen Variablen zu untersuchen. Bei binären Daten sind Odds Ratios und Risk Ratios zu bevorzugen, da sie als Effektgrössen dienen. Sie geben uns einen Hinweis zur Grösse eines Effekts. Analysiert man hingegen kategoriale Variablen mit mehr als zwei Ausprägungsgeraden, dann ist eine Berechnung von Odds Ratios oder Risk Ratios nicht mehr direkt möglich. In dieser Situation ist ein \(\chi^2\) Test hilfreich.

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

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))

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

Aufgaben

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

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

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

  4. Untersuche mit dem \(\chi^2\) Test, ob sich die erwarteten Häufigkeiten von den beobachteten Häufigkeiten unterscheiden. Wie lautet \(H_0\)?

  5. Interpretiere das Resultat des Tests.

  6. Bei welchen beobachteten Häufigkeiten gab es die grösste Abweichung von den der erwarteten Häufigkeit? Lass dir die Residuen anzeigen, um diese Frage zu beantworten.


Lösungen

Als erstes wir die Häufigkeitstabelle erstellt:

my_km_table <- table(d.einkaufen$ernaehrung, d.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 mit dem Zusatz $expected

chisq.test(my_km_table)$expected
##               
##                     Coop   Denner   Migros
##   Allesfresser 13.257143 7.871429 7.871429
##   Veganer       9.142857 5.428571 5.428571
##   Vegetarier    9.600000 5.700000 5.700000

N ist grösser als 40 und es haben weniger als 20% der Zellen eine erwartete Häufigkeit von <5. Somit sind die Voraussetzungen für einen \(\chi^2\) Test erfüllt.

\(H_0\): erwartete Häufigkeiten = beobachtete Häufigkeiten. Diese Hypothese können wir mit den \(\chi^2\)Test testen:

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

Der p-Wert ist 16.95%. Die Wahrscheinlichkeit für die Differenz (oder eine extremere) zwischen den erwarteten und beobachteten Häufigkeiten, wenn \(H_{0}\) wahr ist, beträgt 16.95%. Somit gibt es keine Evidenz gegen \(H_{0}\).


chisq.test(my_km_table)$residuals
##               
##                       Coop      Denner      Migros
##   Allesfresser  1.02796489  0.04582661 -1.37989001
##   Veganer      -1.03940230  0.67445327  0.67445327
##   Vegetarier   -0.19364917 -0.71205164  0.96336399

Das grösste 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 erwartet. Diese Differenz ist jedoch statistisch nicht signifikant.