Bestimmen von Unterschieden in der Varianz mit Kreuztabellen und dem Chi-Quadrat Test

Author

Michael Linke

1 Kreuztabellen und Chi-Quadrat Test

1.1 Kreuztabellen

Zunächst schauen wir uns eine einfache Methode an, die Beziehung zwischen zwei (nominalen oder ordinalen) Variablen zu veranschaulichen: Die Kreuztabelle, oder auch Kontingenztabelle. Sie zeigt an, welche Kombinationen der beiden Variablen auftreten und wie häufig. Zur Veranschaulichung ein kleines R-Beispiel aus den Allbus-Ratensatz dazu:

Wir prüfen, ob es einen Unterschied in der Internetnutzung zwischen den neuen und den alten Bundesländern gibt.

Dazu laden wir zunächst die benötigten Pakete:

if(!require("pacman")) {
  install.packages("pacman")
  library(pacman)
}
Loading required package: pacman
p_load(haven, tidyverse, dplyr, ggplot2)

Dann laden wir den Allbus-Datensatz:

allbus_data = read_dta("Datensatz/Allbus_2021.dta") 
#View(allbus_data)

Wir greifen nur zwei Spalten heraus: - eastwest sagt uns, ob die befragte Person in den alten oder neuen Bundesländern wohnt - xr19: eine Ja-/Nein-Frage, ob die Person das Internet nutzt.

internetnutzung = allbus_data %>% select(eastwest, xr19) %>%
                                  filter(xr19 >= 0) %>% 
                                  filter(eastwest >= 0) %>% 
                                  na.omit()

Den neuen Dataframe können wir uns mit dem View-Befehl ansehen:

# Zum Ansehen den folgenden Befehl ent-kommentieren:

#View(internetnutzung)

Um uns die Kreuztabelle anzeigen zu lassen, können wir den table-Befehl verwenden:

kreuztabelle = table(internetnutzung$eastwest, internetnutzung$xr19)
print(kreuztabelle)
   
       1    2
  1 2076  223
  2 1059  174

Das können wir uns ein wenig klarer ausgeben lassen, indem wir die Spalten- und Zeilennamen anpassen:

eastwest_names = c("West", "Ost") 
internet_names = c("Ja", "Nein")
#kreuztabelle2 = kreuztabelle 
dimnames(kreuztabelle) = list(eastwest_names, internet_names)
print(kreuztabelle)
       Ja Nein
West 2076  223
Ost  1059  174

Wir können die Tabelle zusätzlich über die addmargins-Funktion um die Zeilen- und Spaltensummen, also die sogenannten Randsummen erweitern:

kreuztabelle_mit_randsummen = addmargins(kreuztabelle)
print(kreuztabelle_mit_randsummen)
       Ja Nein  Sum
West 2076  223 2299
Ost  1059  174 1233
Sum  3135  397 3532

Da beide Variablen nur zwei Antwortmöglichkeiten haben, gibt es genau vier Kombinationen, die auftreten können. Z.B. haben 2076 Personen angegeben, im Westen zu wohnen und das Internet zu nutzen.

Auf den ersten Blick sagt uns die Tabelle zu diesem Beispiel noch nicht viel. Bezieht man ein, dass wir 2299 Personen aus dem Westen und nur 1233 Personen aus dem Osten in unserem Sample haben, scheinen die Verhältnisse ähnlich zu sein.

Um uns hier mehr Klarheit zu verschaffen, können wir einen statistischen Test anwenden, der uns sagt, wie wahrscheinlich es ist, dass die Werte in unserer Kreuztabelle so verteilt sind, wie wir es beobachten: Den Chi-Quadrat-Test.

In R wird der Chi-Quadrat-Test aus der Kreuztabelle folgendermaßen berechnet:

options(scipen=999) # Deaktiviert Scientific Notation

chi_quadrat_test <- chisq.test(kreuztabelle)
print(chi_quadrat_test)

    Pearson's Chi-squared test with Yates' continuity correction

data:  kreuztabelle
X-squared = 15.22, df = 1, p-value = 0.00009567

Die Ausgabe gibt uns neben der Information, welchen Test wir gerade ausgeführt haben und welchen Input wir verwendet haben, drei weitere Werte aus: Den Chi-Quadrat-Wert, den das Programm berechnet hat, die Anzahl an Freiheitsgraden, die aus der Kreuztabelle hervorgehen sowie die Wahrscheinlichkeit, dafür, dass unsere Kreuztabelle unauffällig ist: den p-Wert. Die ersten beiden Werte werden benötigt, um die Chi-Quadrat-Verteilung zu berechnen, deshalb werden sie uns angezeigt und müssen bei der Veröffentlichung unserer Ergebnisse auch angegeben werden. Da R die Berechnung für uns übernimmt, müssen wir nicht näher ins Detail gehen, wie das genau abläuft.
Was wir aber sehen, ist eine sehr geringe Wahrscheinlichkeit dafür, dass unsere Kreuztabelle unauffällig ist. Ein häufiger Richtwert für das Signifikanzniveau ist 0.05. Unser p-Wert liegt deutlich darunter. Offenbar gibt es also einen signifikanten Unterschied zwischen der Internetnutzung in den neuen und den alten Bundesländern.