Zusammenhang zwischen kategorialen Variablen
Darstellung von Zusammenhängen
Zur Erinnerung: Je nach Skalenniveau der beiden Variablen lassen sich zwei Merkmale in unterschiedlicher Weise gemeinsam darstellen. Für zwei nominale oder ordinale Variablen bieten sich Kreuztabellen an.
Hier finden Sie Informationen zu den im Artikel verwendeten Beispieldaten.
Cramérs V
Wenn wir den Zusammenhang zwischen zwei nominalskalierten Variablen beschreiben wollen, können wir Cramérs \(V\) verwenden.
Eigenschaften
- Cramérs \(V\) kann Werte zwischen \(0\) und \(1\) annehmen.
- Ein Wert von \(0\) bedeutet, dass kein Zusammenhang vorliegt.
- Je größer der Wert ist, desto größer ist der untersuchte Zusammenhang.
Grundidee
Wir vergleichen die beobachteten Häufigkeiten in den einzelnen Zellen der Kreuztabelle mit den Häufigkeiten, die ohne einen Zusammenhang der beiden Variablen zu Stande kommen würden. Der Wert von Cramérs \(V\) drückt den Unterschied zwischen diesen beiden Tabellen aus.
Im Gegensatz zum Korrelationskoeffizienten \(r\) untersuchen wir mit Cramérs \(V\) keinen linearen Zusammenhang. Aussagen wie "Je mehr Lernzeit SchülerInnen investieren, desto höher ist im Durchschnitt die Punktezahl" können also nicht getroffen werden — "mehr" und "höher" sind ja auch keine sinnvollen Begriffe für nominale Variablen. Dennoch kann uns interessieren, ob bestimmte Werte der einen nominalen Variable häufiger gemeinsam mit bestimmten Werten der anderen nominalen Variable auftreten.
Als Zusammenhangsmaß für nominale Variablen kann uns auch der Kontingenzkoeffizient C begegnen. Er wird ähnlich wie Cramérs V berechnen, ist jedoch unstandardisiert. Das bedeutet, dass für C kein einheitlicher Wertebereich (z.B. von 0 bis 1) existiert. Dadurch lässt sich C schlechter interpretieren als Cramérs V.
Für den Sonderfall von zwei dichotomen Variablen kann auch das Maß der Prozentsatzdifferenz verwendet werden.
Herleitung von Cramérs V
Zusammenfassung
Praktische Umsetzung mit Statistiksoftware
Beispieldaten herunterladen: dat.csv
Datenbeispiel
Unser Beispieldatensatz (hypothetisches Datenbeispiel) liegt als CSV-Datei vor. Die Daten können mit der read.csv-Funktion eingelesen werden (der korrekte Pfad zum Speicherort muss angegeben werden):
dat <- read.csv("C:/... Pfad .../dat.csv")
Die Funktion erzeugt ein Objekt vom Typ data.frame, dem wir links vom Zuweisungspfeil (<-) den Namen "dat" geben.
Der Datensatz enthält u.a. die Variablen punkte (erzielte Punktzahl in einem Test), schlafdauer (Schlafdauer in der Nacht vor dem Test in Std.), lernzeit (insgesamt für den Test aufgewendete Lernzeit in Std.) und lsport (Lieblingssportart). Einzelne Variablen können als Datensatzname$Variablenname angesprochen werden, z.B.:
dat$punkte
[1] 93.0 76.5 79.5 85.0 66.5 71.0 56.5 77.0 59.0 63.5 72.0 70.0 96.0 72.0 62.5 76.5 86.0 57.5
[19] 60.0 73.5 64.5 54.0 85.0 64.0 57.5 54.0 76.5 41.0 58.5 87.5 62.5 62.5 100.5 86.0 66.5 79.5
[37] 77.0 67.5 58.5 92.5 94.5 77.0 76.0 67.0 44.5 86.5 70.0 81.5 90.5 78.0 80.5 74.0 56.5 60.0
[55] 83.0 70.0 49.0 57.0 48.0 70.5 96.5 106.0 65.5 86.5 87.5 89.5 64.0 86.0 62.0 94.5 52.0 73.5
[73] 77.0 83.5 62.5 52.5 51.5 86.5 70.5 57.5 68.0 103.0 79.0 75.0 113.5 78.0 104.5 84.5 63.5 46.0
[91] 102.5 77.0 73.5 71.0 106.0 79.0 77.5 87.0 92.5 11.5 83.5 86.5 78.5 67.5 71.0 61.5 31.0 50.5
[109] 87.5 66.5 67.0 60.5 61.5 83.5 66.0 97.0 79.5 83.5 82.0 63.0
Die Ausgabe zeigt die 120 beobachteten Werte der Variable punkte.
Kreuztabellen und Cramérs V
In diesem Beispiel interessieren wir uns dafür, ob zwischen der Variable nachhilfe und der Mathenote zeugnis_mathe_note ein Zusammenhang besteht.
Um dies zu überprüfen, erstellen wir aus den beiden Variablen eine Kreuztabelle mit der Funktion table(). Wir speichern die Tabelle in einem Objekt mit dem Namen tab_mathe_nh.
Insgesamt haben die Schüler*innen vier verschiedene Mathenoten auf ihren Zeugnissen erreicht. Für jede Schüler*in kann angegeben werden, ob sie*er regelmäßig Nachhilfe in Anspruch genommen ("1") hat oder nicht ("0"):
tab_mathe_nh <- table(dat$zeugnis_mathe_note, dat$nachhilfe)
tab_mathe_nh
0 1
ausreichend 0 2
befriedigend 27 15
gut 37 30
sehr gut 5 4
Die absoluten Häufigkeiten der acht möglichen Ausprägungen können zusammen mit den Zeilen- und Spaltenhäufigkeiten und der Gesamtsumme mit addmargins() dargestellt werden:
addmargins(tab_mathe_nh)
0 1 Sum
ausreichend 0 2 2
befriedigend 27 15 42
gut 37 30 67
sehr gut 5 4 9
Sum 69 51 120
Es ist ebenfalls möglich mit rowSums() nur die Zeilensumme und mit colSums() nur die Spaltensumme zu betrachten:
rowSums(tab_mathe_nh)
ausreichend befriedigend gut sehr gut
2 42 67 9
colSums(tab_mathe_nh)
0 1
69 51
Relative Häufigkeiten
Mit prop.table() wird die relative Häufigkeit der Ausprägungen im Verhältnis zur Gesamthäufigkeit dargestellt. Wenn hier wieder addmargins() verwendet wird, liefert R zusätzlich auch die Zeilen- und Spaltenhäufigkeit, sowie die Häufigkeit der Gesamtsumme (diese muss 1 betragen):
prop.table(tab_mathe_nh)
0 1
ausreichend 0.00000000 0.01666667
befriedigend 0.22500000 0.12500000
gut 0.30833333 0.25000000
sehr gut 0.04166667 0.03333333
addmargins(prop.table(tab_mathe_nh))
0 1 Sum
ausreichend 0.00000000 0.01666667 0.01666667
befriedigend 0.22500000 0.12500000 0.35000000
gut 0.30833333 0.25000000 0.55833333
sehr gut 0.04166667 0.03333333 0.07500000
Sum 0.57500000 0.42500000 1.00000000
Diesselbe Tabelle kann mit prozentualen Häufigkeiten ausgegeben werden, indem die relativen Häufigkeiten mit 100 multipliziert werden. Um eine angemessene Darstellunf zu erhalten, kann das Ergebnis mit digits = 2 auf zwei Nachkommastellen gerundet werden:
addmargins(prop.table(tab_mathe_nh))*100
0 1 Sum
ausreichend 0.000000 1.666667 1.666667
befriedigend 22.500000 12.500000 35.000000
gut 30.833333 25.000000 55.833333
sehr gut 4.166667 3.333333 7.500000
Sum 57.500000 42.500000 100.000000
round(addmargins(prop.table(tab_mathe_nh))*100, digits = 2)
0 1 Sum
ausreichend 0.00 1.67 1.67
befriedigend 22.50 12.50 35.00
gut 30.83 25.00 55.83
sehr gut 4.17 3.33 7.50
Sum 57.50 42.50 100.00
Zeilen- und Spaltenprozente
Zeilenprozente können in der Funktion prop.table() mit dem Argument margin=1 angefordert werden. Für Spaltenprozente wird *margin=2 angegeben:
prop.table(tab_mathe_nh, margin=1)
0 1
ausreichend 0.0000000 1.0000000
befriedigend 0.6428571 0.3571429
gut 0.5522388 0.4477612
sehr gut 0.5555556 0.4444444
prop.table(tab_mathe_nh, margin=2)
0 1
ausreichend 0.00000000 0.03921569
befriedigend 0.39130435 0.29411765
gut 0.53623188 0.58823529
sehr gut 0.07246377 0.07843137
Cramérs V
Cramérs V kann am einfachsten mit der Funktion cramersV() aus dem Paket lsr berechnet werden. Dafür muss das Paket nur vorher installiert (install.packages()) und geladen (library()) werden:
install.packages("lsr")
library(lsr)
cramersV(tab_mathe_nh)
[1] 0.1744807
Mit einem Cramérs V von ca. 0.174 besteht nur ein schwacher Zusammenhang zwischen der Zeugnisnote im Fach Mathematik und der regelmäßigen Teilnahme an einem Nachhilfeunterrricht.
Beispieldaten herunterladen: daten_stata.dta
Daten einlesen
Der Datensatz wird mit dem Befehl use geöffnet (der Pfad zum Speicherort muss entsprechend angepasst werden):
use "C:\... Pfad ...\daten_stata.dta"
Kreuztabellen
In diesem Beispiel interessieren wir uns dafür, ob zwischen der Variable nachhilfe und der Mathenote zeugnis_mathe_note ein Zusammenhang besteht.
Eine Kreuztabelle der beiden Variablen kann mit der Funktion tabulate berechnet werden. Randsummen, also die univariaten Verteilungen der beiden Variablen werden mit ausgegeben:
tabulate zeugnis_mathe_note nachhilfe
>zeugnis_math | nachhilfe
e_note | 0 1 | Total
-------------+----------------------+----------
sehr gut | 0 2 | 2
gut | 27 15 | 42
befriedigend | 37 30 | 67
ausreichend | 5 4 | 9
-------------+----------------------+----------
Total | 69 51 | 120
In dieser Kreuztabelle sind die absoluten Häufigkeiten der acht möglichen Ausprägungen dargestellt. Für jede erreichte Zeugnisnote im Fach Mathematik wird in dieser Tabelle angegeben, wie viele Schüler*\innen regelmäßig Nachhilfe in Anspruch genommen ("1") haben und wie viele nicht ("0"). Zusätzlich werden unter "Total" jeweils die Zeilenhäufigkeiten (2, 42, 67, 9), die Spaltenhäufigkeiten (69, 51) und die Anzahl aller Beobachtungen (120) ausgegeben.
Mit der Option cell können relative Häufigkeiten in Bezug zur Gesamtsumme ausgegeben werden:
. tabulate zeugnis_mathe_note nachhilfe, cell
+-----------------+
| Key |
|-----------------|
| frequency |
| cell percentage |
+-----------------+
Zeugnisnote | Nachhilfe in
Mathematik: | Mathematik
Schulnoten | 0 1 | Total
-------------+----------------------+----------
ausreichend | 0 2 | 2
| 0.00 1.67 | 1.67
-------------+----------------------+----------
befriedigend | 27 15 | 42
| 22.50 12.50 | 35.00
-------------+----------------------+----------
gut | 37 30 | 67
| 30.83 25.00 | 55.83
-------------+----------------------+----------
sehr gut | 5 4 | 9
| 4.17 3.33 | 7.50
-------------+----------------------+----------
Total | 69 51 | 120
| 57.50 42.50 | 100.00
Zeilen- und Spaltenprozente
Zeilen und Spaltenprozente werden entsprechend mit den Optionen row und col angefordert:
. tabulate zeugnis_mathe_note nachhilfe, row
+----------------+
| Key |
|----------------|
| frequency |
| row percentage |
+----------------+
Zeugnisnote | Nachhilfe in
Mathematik: | Mathematik
Schulnoten | 0 1 | Total
-------------+----------------------+----------
ausreichend | 0 2 | 2
| 0.00 100.00 | 100.00
-------------+----------------------+----------
befriedigend | 27 15 | 42
| 64.29 35.71 | 100.00
-------------+----------------------+----------
gut | 37 30 | 67
| 55.22 44.78 | 100.00
-------------+----------------------+----------
sehr gut | 5 4 | 9
| 55.56 44.44 | 100.00
-------------+----------------------+----------
Total | 69 51 | 120
| 57.50 42.50 | 100.00
. tabulate zeugnis_mathe_note nachhilfe, col
+-------------------+
| Key |
|-------------------|
| frequency |
| column percentage |
+-------------------+
Zeugnisnote | Nachhilfe in
Mathematik: | Mathematik
Schulnoten | 0 1 | Total
-------------+----------------------+----------
ausreichend | 0 2 | 2
| 0.00 3.92 | 1.67
-------------+----------------------+----------
befriedigend | 27 15 | 42
| 39.13 29.41 | 35.00
-------------+----------------------+----------
gut | 37 30 | 67
| 53.62 58.82 | 55.83
-------------+----------------------+----------
sehr gut | 5 4 | 9
| 7.25 7.84 | 7.50
-------------+----------------------+----------
Total | 69 51 | 120
| 100.00 100.00 | 100.00
Die Optionen dürfen kombiniert werden:
. tabulate zeugnis_mathe_note nachhilfe, cell row col
+-------------------+
| Key |
|-------------------|
| frequency |
| row percentage |
| column percentage |
| cell percentage |
+-------------------+
Zeugnisnote | Nachhilfe in
Mathematik: | Mathematik
Schulnoten | 0 1 | Total
-------------+----------------------+----------
ausreichend | 0 2 | 2
| 0.00 100.00 | 100.00
| 0.00 3.92 | 1.67
| 0.00 1.67 | 1.67
-------------+----------------------+----------
befriedigend | 27 15 | 42
| 64.29 35.71 | 100.00
| 39.13 29.41 | 35.00
| 22.50 12.50 | 35.00
-------------+----------------------+----------
gut | 37 30 | 67
| 55.22 44.78 | 100.00
| 53.62 58.82 | 55.83
| 30.83 25.00 | 55.83
-------------+----------------------+----------
sehr gut | 5 4 | 9
| 55.56 44.44 | 100.00
| 7.25 7.84 | 7.50
| 4.17 3.33 | 7.50
-------------+----------------------+----------
Total | 69 51 | 120
| 57.50 42.50 | 100.00
| 100.00 100.00 | 100.00
| 57.50 42.50 | 100.00
Cramérs V
Das Zusammenhangsmaß Cramérs V kann ebenfalls als Option bei der Berechnung einer Kreuztabelle mit tabulate angefordert werden.
. tabulate zeugnis_mathe_note nachhilfe, row V
+----------------+ | Key |
---|---|
frequency | |
row percentage |
+----------------+
Zeugnisnote | Nachhilfe in
Mathematik: | Mathematik
Schulnoten | 0 1 | Total
-------------+----------------------+----------
ausreichend | 0 2 | 2
| 0.00 100.00 | 100.00
-------------+----------------------+----------
befriedigend | 27 15 | 42
| 64.29 35.71 | 100.00
-------------+----------------------+----------
gut | 37 30 | 67
| 55.22 44.78 | 100.00
-------------+----------------------+----------
sehr gut | 5 4 | 9
| 55.56 44.44 | 100.00
-------------+----------------------+----------
Total | 69 51 | 120
| 57.50 42.50 | 100.00
Cramér's V = 0.1745
Die Ausgabe der Tabelle kann mit der Option nofreq unterdrückt werden. Da die "Art" des Zusammenhangs allerdings nur aus der Betrachtung der Tabelle erkennbar wird ist es in der Regel sinnvoller, diese mit ausgeben zu lassen.
tabulate zeugnis_mathe_note nachhilfe, V nofreq
>Cramér's V = 0.1745
Cramérs V ist 0.1745, und zeigt damit einen nur schwachem Zusammenhang zwischen der Zeugnisnote im Fach Mathematik und der regelmäßigen Teilnahme an einem Nachhilfeunterricht aus.
Beispieldaten herunterladen: dat.sav
Datenbeispiel
Kreuztabellen und Cramérs V
Statt durch Klicken durch das Menü können wir uns die Ergebnisse auch über die Syntax ausgeben lassen. Dazu verwenden wir den folgenden Code:
CROSSTABS
/TABLES=nachhilfe BY zeugnis_mathe_note
/FORMAT=AVALUE TABLES
/STATISTICS=PHI
/CELLS=COUNT COLUMN
/COUNT ROUND CELL.
Wir verwenden den Befehl CROSSTABS, um eine Kreuztabelle zu erhalten. Mit TABLES= geben wir die beiden Variablen getrennt mit einem BY an. In diesem Fall ist nachhilfe die Zeilenvariable (und steht vor dem BY) und zeugnis_mathe_note die Spaltenvariable (und steht nach dem BY). Um zusätzlich zu den Tabellen auch Zusammenhangsmaße angezeigt zu bekommen, verwenden wir den Unterbefehl STATISTICS. PHI führt neben dem Phi-Koeffizienten zu einer Ausgabe von Cramérs V. Mit CELLS=COUNT definieren wird, dass absolute Häufigkeiten in der Tabelle ausgegeben werden. CELLS= COLUMN führt zu der zusätzlichen Ausgabe von Spaltenprozenten. ROW würde entsprechend zu Zeilenprozenten führen.