Weiter zum Inhalt

Kontingenzanalyse mit R

In diesem Tutorial lernst du anhand eines Beispiels, wie die „Kontingenzanalyse“ bzw. der „Chi-Quadrat-Unabhängigkeitstest“ funktioniert – und wie wir ihn effizient in R durchführen.
Aktualisiert 18. Sept. 2026  · 6 Min. lesen

Mit KI erkunden

ChatGPTClaudePerplexity

Die Kontingenzanalyse ist ein Hypothesentest, mit dem geprüft wird, ob zwei kategoriale Variablen unabhängig sind oder nicht. Vereinfacht gefragt: „Können wir den Wert der einen Variablen vorhersagen, wenn wir den Wert der anderen kennen?“ Ist die Antwort ja, sind die betrachteten Variablen nicht unabhängig. Ist die Antwort nein, sind sie unabhängig. Der Test arbeitet mit Kontingenztafeln, daher die Bezeichnung „Kontingenzanalyse“. Da die Teststatistik einer Chi-Quadrat-Verteilung folgt und der Test die Unabhängigkeit zweier kategorialer Variablen prüft, spricht man auch vom „Chi-Quadrat-Unabhängigkeitstest“.

Die Nullhypothese besagt, dass die beiden Variablen unabhängig sind. Die Alternativhypothese lautet, dass sie nicht unabhängig sind.

Lass uns die „Kontingenzanalyse“ bzw. den „Chi-Quadrat-Unabhängigkeitstest“ an einem Beispiel verstehen.

Angenommen, wir möchten wissen, ob die Sportwahl unabhängig vom Geschlecht ist. Wir befragen hundert Männer und hundert Frauen, welchen Sport sie bevorzugen – Bogenschießen, Boxen oder Radfahren – und fassen die Ergebnisse in der folgenden Zwei-Weg-Tabelle zusammen.

Contingency Analysis using R

Die obige Tabelle heißt Beobachtungstabelle, da sie die beobachteten Häufigkeiten enthält.

Der Chi-Quadrat-Unabhängigkeitstest vergleicht die beobachteten Häufigkeiten mit den erwarteten Häufigkeiten. Als Nächstes leiten wir daher aus der Beobachtungstabelle die Erwartungstabelle mit den erwarteten Häufigkeiten ab. Die Erwartungstabelle zeigt, wie die Zwei-Weg-Tabelle aussehen würde, wenn die beiden kategorialen Variablen unabhängig wären. Aus der Wahrscheinlichkeitstheorie wissen wir: Zwei Ereignisse sind unabhängig, wenn ihre gemeinsame Wahrscheinlichkeit dem Produkt ihrer Randwahrscheinlichkeiten entspricht. Dieses Konzept verwenden wir, um die erwarteten Häufigkeiten für jede der sechs Zellen zu berechnen. Berechnen wir die erwartete Häufigkeit für die erste Zelle: Zuerst bestimmen wir die gemeinsame Wahrscheinlichkeit, indem wir die Wahrscheinlichkeit „weiblich“ (100/200) mit der Wahrscheinlichkeit „Präferenz Bogenschießen“ (45/200) multiplizieren. Multiplizieren wir diese gemeinsame Wahrscheinlichkeit (100/200 * 45/200) anschließend mit dem Stichprobenumfang (200), erhalten wir die erwartete Häufigkeit für die erste Zelle, nämlich 22,5. Analog berechnen wir die erwarteten Häufigkeiten für die übrigen fünf Zellen. Die folgende Tabelle ist die, die wir erwarten würden, wenn Geschlecht und Sportpräferenz unabhängig sind.

Contingency Analysis using R

Da wir nun erwartete und beobachtete Häufigkeiten haben, prüfen wir als Nächstes, wie stark sie voneinander abweichen. Dazu berechnen wir eine Teststatistik, die Chi-Quadrat-Statistik, da sie der Chi-Quadrat-Verteilung folgt. Die folgende Formel zeigt, wie der Wert der Chi-Quadrat-Statistik berechnet wird.

Contingency Analysis using R

Aus der Formel ist ersichtlich: Die Chi-Quadrat-Statistik kann den Wert 0 annehmen (wenn beobachtete und erwartete Häufigkeiten exakt übereinstimmen), ist aber nie negativ. Daher ist der Chi-Quadrat-Unabhängigkeitstest ein einseitiger Test.

Mithilfe der obigen Formel berechnen wir nun den Wert der Chi-Quadrat-Statistik für unser Beispiel. Das ist der beobachtete Wert der Teststatistik.

Contingency Analysis using R

Jetzt entscheiden wir, ob wir die Nullhypothese verwerfen. Das tun wir entweder, indem wir den beobachteten Wert der Teststatistik mit dem kritischen Wert vergleichen, oder über den p-Wert. Übersteigt der beobachtete Wert den kritischen Wert oder ist der p-Wert kleiner oder gleich dem Signifikanzniveau, verwerfen wir die Nullhypothese und schließen auf einen statistisch signifikanten Zusammenhang zwischen den beiden kategorialen Variablen – sie sind also nicht unabhängig. Kennen wir das Signifikanzniveau (in der Regel 0,05) und die Freiheitsgrade, können wir den kritischen Wert aus der Chi-Quadrat-Tabelle ablesen. Das Signifikanzniveau ist die Wahrscheinlichkeit, eine wahre Nullhypothese abzulehnen. Für eine Tabelle mit r Zeilen und c Spalten berechnen sich die Freiheitsgrade wie folgt:

Contingency Analysis using R

Für unser Beispiel ergeben sich also 2 Freiheitsgrade.

Contingency Analysis using R

Aus der folgenden Tabelle sehen wir, dass der kritische Wert der Teststatistik bei einem Signifikanzniveau von 0,05 und 2 Freiheitsgraden 5,99 beträgt.

Contingency Analysis using R

Da der beobachtete Wert der Teststatistik größer ist als der kritische Wert (19,798 > 5,99), verwerfen wir die Nullhypothese und schließen: Die Sportwahl ist nicht unabhängig vom Geschlecht.

So führst du den Chi-Quadrat-Unabhängigkeitstest in R durch

Mit der eingebauten Funktion chisq.test() ist der Chi-Quadrat-Unabhängigkeitstest in R sehr einfach durchzuführen.

Hier ist die Beobachtungstabelle.

observed_table <- matrix(c(35, 15, 50, 10, 30, 60), nrow = 2, ncol = 3, byrow = T)
rownames(observed_table) <- c('Female', 'Male')
colnames(observed_table) <- c('Archery', 'Boxing', 'Cycling')
observed_table
##        Archery Boxing Cycling
## Female      35     15      50
## Male        10     30      60

Um den Test auszuführen, wenden wir die Funktion chisq.test() auf die Beobachtungstabelle an.

X <- chisq.test(observed_table)
X
##
##  Pearson's Chi-squared test
##
## data:  observed_table
## X-squared = 19.798, df = 2, p-value = 5.023e-05

Aus dem Ergebnis sehen wir, dass der p-Wert kleiner ist als das Signifikanzniveau (0,05). Daher verwerfen wir die Nullhypothese und schließen, dass die beiden Variablen (Geschlecht & Sportpräferenz) nicht unabhängig sind.

Wenn wir die Erwartungstabelle sehen möchten, geht das ebenfalls.

X$expected
##        Archery Boxing Cycling
## Female    22.5   22.5      55
## Male      22.5   22.5      55

Ich hoffe, dir hat dieser Artikel gefallen. Wenn du mehr in R lernen möchtest, schau dir den DataCamp-Kurs Statistical Modeling in R (Part 1) an.

Themen
R
Datenwissenschaft
Datenanalyse

R-Kurse

Kurs

Einführung in R

4 Std.
3.1M
Beherrsche die Grundlagen der Datenanalyse in R, einschließlich Vektoren, Listen und Datenrahmen, und übe R mit echten Datensätzen.
Details anzeigenRight Arrow
Kurs Starten
Mehr anzeigenRight Arrow
Verwandt

Tutorial

Zahlen in Python quadrieren: Grundlagen und fortgeschrittene Methoden

Quadrieren in Python ist einfach: Nutze den eingebauten Operator ** oder setze für vielseitigere Lösungen NumPy, pow(), math.pow(), Bitoperatoren und weitere Funktionen ein.
Allan Ouko's photo

Allan Ouko

11 Min.

Tutorial

Python-Tutorial zum Verknüpfen von Zeichenfolgen

Lerne verschiedene Methoden zum Verknüpfen von Zeichenfolgen in Python kennen, mit Beispielen, die jede Technik zeigen.
DataCamp Team's photo

DataCamp Team

5 Min.

Tutorial

Python range()-Funktion Tutorial

Lerne anhand von Beispielen die Python-Funktion range() und ihre Möglichkeiten kennen.
Aditya Sharma's photo

Aditya Sharma

7 Min.

Tutorial

Fibonacci-Folge in Python: Lerne und entdecke Programmiertechniken

Finde raus, wie die Fibonacci-Folge funktioniert. Schau dir die mathematischen Eigenschaften und die Anwendungen in der echten Welt an.
Laiba Siddiqui's photo

Laiba Siddiqui

6 Min.

Tutorial

Python-Anweisungen IF, ELIF und ELSE

In diesem Tutorial lernst du ausschließlich Python if else-Anweisungen kennen.
Sejal Jaiswal's photo

Sejal Jaiswal

9 Min.

Tutorial

Python Switch Case Statement: Ein Leitfaden für Anfänger

Erforsche Pythons match-case: eine Anleitung zu seiner Syntax, Anwendungen in Data Science und ML sowie eine vergleichende Analyse mit dem traditionellen switch-case.
Matt Crabtree's photo

Matt Crabtree

5 Min.

Mehr AnzeigenMehr Anzeigen