Willkommen bei Stats by Randolph. Hier geht es zur Hauptseite mit weiteren Informationen und Inhalten.
Autor:innen dieser Seite: An den Inhalten dieser Seite haben mitgearbeitet: Markus Janczyk, Eva Röttger und Valentin Koob. Der Inhalt dieser Seite wird in der Lehre in den Studiengängen Psychologie von der AG Forschungsmethoden und Kognitive Psychologie an der Universität Bremen verwendet, steht aber allen Interessierten zur Verfügung. Rückmeldungen/Fehler/Vorschläge können gesendet werden an randolph@uni-bremen.
Versionshistory:
Ein großer Bereich psychologischer Forschung beschäftigt sich mit Zusammenhängen (oder Beziehungen) zwischen Variablen. Grob ist damit gemeint, dass bestimmte Ausprägungen auf einer Variablen (tendenziell) eher mit bestimmten Ausprägungen auf einer anderen Variablen einhergehen.
Messen wir bspw. die Körper- und die Schuhgröße einer Reihe von Menschen, dann wird es zwischen diesen beiden Variablen vermutlich einen Zusammenhang geben: große Menschen werden tendenziell auch große Schuhe benötigen und kleine Menschen eher kleinere Schuhe. Ein derartiger Zusammenhang besteht dann für die gesamte Gruppe, auch wenn im Einzelfall es aber natürlich durchaus vorkommen kann, dass auch ein großer Mensch kleine Schuhe benötigt und umgekehrt. Liegt ein Zusammenhang vor, wird oft auch gesagt, zwei Variablen seien abhängig voneinander. Liegt kein Zusammenhang vor, sind sie entsprechend unabhängig voneinander.
Wir werden im ersten Abschnitt dieses Kapitels den Begriff der Abhängigkeit und Unabhängigkeit etwas genauer festlegen. Danach werden wir uns detailliert mit Zusammenhangsmaßen für nominalskalierte und intervallskalierte Variablen befassen, bevor wir am Ende noch einige Fallstricke bzgl. der Interpretation und kurz weitere Maße für Zusammenhänge kennenlernen werden.
Wir betrachten die beiden Begriffe zunächst an nominalskalierten Daten. Wir hatten in Teil 3 bereits erwähnt, dass Zusammenhänge bzw. Abhängigkeiten die gemeinsame Betrachtung zweier Variablen voraussetzen und hatten dies am Beispiel zweidimensionale Häufigkeitsverteilungen getan. Die folgenden Kontigenztafeln bestehen links aus absoluten und rechts aus relativen Häufigkeiten, mit den Randverteilungen in den letzten Zeilen bzw. Spalten:
In diesen Beispielen besteht intuitiv eine “gewisse Abhängigkeit” beider Variablen: Wissen wir, welche Ausprägung eine Person auf der Variablen \(B\) hat, würden wir – abhängig davon welche es ist – unterschiedliche “beste Schätzungen” abgeben, welche Ausprägung diese Person auf der Variablen \(A\) hat. Dies wird auch deutlich, wenn wir uns die relativen Häufigkeiten von \(A\) bedingt nach \(B\) anschauen:
Wissen wir, dass auf \(B\) die Ausprägung \(b_1\) vorliegt, können wir sicher sagen, dass die Person auf \(A\) die Ausprägung \(a_3\) hat. Liegt \(b_2\) vor, wäre die beste Schätzung ebenfalls \(a_3\) (aber dies ist nicht mehr sicher); bei \(b_3\) hingegen, wäre die beste Schätzung \(a_2\). Das heißt, wir geben unterschiedliche Schätzungen (bzw. unterschiedlich sichere Schätzungen) über die Ausprägung auf der Variablen \(A\) ab, wenn wir Kenntnis von der Ausprägung auf Variable \(B\) haben.
Derartige Argumentationen werden anhand der folgenden zwei Kontingenztafeln noch klarer. Im linken Beispiel haben wir es mit dem zu tun, was wir intuitiv vielleicht “vollständig abhängig” nennen würden: Auf Basis der Kenntnis der Ausprägung von \(B\) können wir sicher sagen, welche Ausprägung auf \(A\) vorliegt (und umgekehrt hier auch). Im rechten Beispiel ist der Sachverhalt anders: Die Kenntnis der Ausprägung auf der Variablen \(B\) hilft nicht bei (unterschiedlicher) Vorhersage der Ausprägung von \(A\). Vielmehr würden wir immer \(a_3\) als beste Schätzung abgeben:
Auch diese beiden Fälle zeigen sich deutlich, wenn wir bedingte Häufigkeitsverteilungen betrachten. Bei vollständiger Abhängigkeit ist genau eine Häufigkeit pro Zeile ungleich 0. Wichtiger ist nun, was bei vollständiger Unabhängigkeit passiert: In diesem Fall sind alle bedingten Verteilungen von \(A\) identisch und auch identisch zur Randverteilung von \(A\) (das gilt dann, wenn wir nach \(A\) bedingen für die bedingten Verteilungen und die Randverteilung von \(B\)):
Den Fall der vollständigen Abhängigkeit haben wir hier nur im Spezialfall gleich-vieler Zeilen und Spalten betrachtet. Das muss aber natürlich nicht immer der Fall sein, und wir können entsprechend eine Erweiterung vornehmen. Die folgende Kontingenztafel ist ein Beispiel mit 4 Zeilen und 3 Spalten:
Auch hier können wir natürlich wieder die Stufen von \(A\) bedingt nach \(B\) (links) oder die Stufen von \(B\) bedingt nach \(A\) (rechts) betrachten. Hier ist es nun aber so, dass die Kenntnis der Ausprägung von \(B\) eine sichere Vorhersage der Ausprägung von \(A\) erlaubt; umgekehrt ist dies aber nicht der Fall:
Zwei Variablen gelten daher als vollständig abhängig voneinander, wenn in der zugehörigen Kontingenztafel entweder in allen Zeilen oder in allen Spalten höchstens eine von Null verschiedene Häufigkeit vorliegt.
“Reale” Kontingenztafeln werden i.d.R. weder vollständige Abhängigkeit noch vollständige Unabhängigkeit darstellen, sondern immer irgendwo dazwischen liegen. Im Folgenden entwickeln wir daher Maße, die das Ausmaß der Abhängigkeit quantifizieren können:
Der Ausgangspunkt für alle folgenden Bemühungen ist die Überlegung: Gegeben seien bestimmte Randverteilungen einer Kontingenztafel. Wie sollten dann die Häufigkeiten in der Kontingenztafel aussehen, wenn vollständige Unabhängigkeit vorliegen würde, also kein Zusammenhang besteht? Wir werden nun zunächst diese Frage klären und dann quantifizieren, “wie stark” die empirischen Ergebnisse davon abweichen.
Eine Anmerkung: Die Idee, als Ausgangspunkt zu fragen, wie sieht etwas aus, wenn es keinen Zusammenhang oder keinen Unterschied gibt und wie stark weichen die empirischen Ergebnisse von dieser Situation ab, kommt nicht selten in der Statistik vor. Wir werden an geeigneter Stelle wieder darauf verweisen.
Wir betrachten als nächstes eine ganz allgemeine Kontingenztafel, bei der die Variable \(A\) \(I\)-viele Ausprägungen hat und die Variable \(B\) \(J\)-viele Ausprägungen. Wir verwenden dabei folgende Bezeichnungen:
Der allgemeine Fall einer Kontingenztafel sieht dann wie folgt aus:
Wir hatten oben festgehalten, dass vollständige Unabhängigkeit dadurch gekennzeichnet ist, dass alle bedingten Verteilungen identisch sind und diese auch identisch zur (bedingten) Randverteilung sind. Nun erinnern wir uns daran, wie bedingte Häufigkeiten berechnet werden: Statt die absoluten Häufigkeiten durch die Gesamtanzahl an Personen zu dividieren, erfolgt die Division durch den Wert der entsprechenden Randverteilung, also durch die Anzahl der Personen mit einer bestimmten Ausprägung auf der Variablen, nach der wir bedingen.
Bedingen wir z.B. nach Variable \(B\) und wollen die bedingte Häufigkeit für die Stufe \(A_i\) unter der Bedingung, eine Person habe auf \(B\) die Ausprägung \(B_j\), so ist die gesuchte bedingte Häufigkeit: \[ \frac{n(A_i \cap B_j)}{n(B_j)} \] Ähnlich wird die Spalte in der Randverteilung (der letzten Zeile) berechnet als \[ \frac{n(A_i)}{n} \] Der wichtige Punkt ist nun, dass diese beiden bedingten Häufigkeiten im Fall vollständiger Unabhängigkeit gleich sein sollen. Wir setzen sie daher gleich und führen eine Umformung durch, indem wir beide Seiten mit \(n(B_j)\) multiplizieren: \[\begin{aligned} & \frac{n(A_i \cap B_j)}{n(B_j)} = \frac{n(A_i)}{n}\\ \iff & n(A_i \cap B_j) = \frac{n(A_i)\cdot n(B_j)}{n} \end{aligned}\] Wir können natürlich auch umgekehrt vorgehen und nach \(A\) bedingen und erhalten ebenfalls durch die gleiche Logik: \[\begin{aligned} & \frac{n(A_i \cap B_j)}{n(A_i)} = \frac{n(B_j)}{n}\\ \iff & n(A_i \cap B_j) = \frac{n(A_i)\cdot n(B_j)}{n} \end{aligned}\]Da diese Beziehung natürlich für alle Ausprägungen von \(A\) und \(B\) gilt, können wir festhalten:
\[ n(A_i\cap B_j) = \frac{n(A_i)\cdot n(B_j)}{n}\hspace{1cm}\forall i\in\{1,\ldots, I\},\forall j\in\{1,\ldots, J\} \] Da auf der rechten Seite bekannte Größen stehen, können wir mit dieser Formel berechnen, wie die Zellenhäufigkeiten aussehen müssten, wenn völlige Unabhängigkeit bestehen würde. Das war das Ziel, welches wir zu Beginn dieses Abschnitts formuliert haben. Zur Erinnerung weisen wir noch einmal darauf hin, dass wir hier mit der Annahme starten, es gäbe keinen Zusammenhang!
Die folgende Tabelle stellt links eine empirische Kontingenztafel dar (d.h., wie sie das Ergebnis einer Studie sein könnte) und rechts die erwartete Kontingenztafel, für den Fall vollständiger Unabhängigkeit. Die Werte in dieser Kontingenztafel sind gemäß der gerade aufgestellten Formel berechnet worden, also z.B. \(4=\frac{14\cdot 12}{42}\):
Nun gehen wir den nächsten Schritt und fragen: Wie “stark” weichen die beobachteten Daten der empirischen Kontingenztafel von der erwarteten Kontingenztafel ab?
Als 1. Versuch betrachten wir einfach die naheliegende Differenz der empirischen und erwarteten Werte für jede Zelle der Kontingenztafel, also z.B. \(8-4=4\) oder \(1-6=-5\). Dies führt uns zu folgender Kontingenztafel:
Hier laufen wir allerdings in ein Problem, wenn wir diese einfachen Abweichungen nun aufsummieren: Wir erhalten (immer) als Ergebnis Null. Einer ganz ähnlichen Situation sind wir bereits begegnet: Die Summe der Abweichungen von Daten von ihrem Mittelwert war ebenfalls immer Null. Im Zuge der Varianz sind wir dem begegnet, indem wir nicht mehr die Abweichungen, sondern die quadrierten Abweichungen betrachtet haben – und genau dies tun wir nun hier auch.
Als 2. Versuch betrachten wir also die quadrierte Differenz empirischer und erwarteter Werte:
Summieren wir alle diese Werte auf, erhalten wir als Summe 126, also ein deutlich besseres Maß als die einfache Differenz. Allerdings gehen alle Abweichungen mit ihren absoluten Werten, d.h., “ungewichtet”, in die Summe ein. Es ist allerdings klar, dass die gleiche absolute Abweichung bei großen (erwarteten) Häufigkeiten einer Zelle weniger Bedeutung besitzt als die gleiche absolute Abweichung bei generell eher kleineren (erwarteten) Häufigkeiten. Dies ändern wir noch, indem wir als 3. Versuch die quadrierten Differenzen empirischer und erwarteter Häufigkeiten noch an den erwarteten Häufigkeiten gewichten, das heißt, die quadrierten Differenzen durch die erwartete Häufigkeit dividieren:
Summieren wir diese Werte nun auf, erhalten wir als Ergebnis \(21.02778\). Dieser Wert spiegelt das wieder, was als \(\chi^2\)-Koeffizient bezeichnet wird.
Wir bezeichnen nun die absolute Häufigkeit beobachteter Werte \(n(A_i\cap B_j)\) kurz mit \(n_{ij}\) und die absolute Häufigkeit der bei vollständiger Unabhängigkeit erwarteten Werte mit \(e_{ij}\). Dann definieren wir \[ \chi^2 := \sum_{i=1}^I \sum_{j=1}^J\frac{(n_{ij}-e_{ij})^2}{e_{ij}} \] als den \(\chi^2\)-Koeffizienten. Es wird also für jede Zelle der Kontingenztafel die Differenz \(n_{ij}-e_{ij}\) berechnet, diese quadriert und anschließend durch \(e_{ij}\) dividiert. Schließlich werden diese Werte über alle Zeilen und Spalten aufsummiert. Der \(\chi^2\)-Koeffizient ist ein Maß für den Zusammenhang zweier nominalskalierter Variablen.
R verfügt mit der Funktion chisq.test()
über eine
Funktion zur Berechnung von \(\chi^2\).
Der Funktion kann z.B. eine Matrix übergeben werden, die eine empirische
Kontingenztafel repräsentiert. Eine andere Möglichkeit ist es, eine aus
Rohdaten mit der Funktion table()
erzeugte Kontingenztafel
zu übergeben. Wir erzeugen hier die oben benutzte empirische
Kontingenztafel als Matrix:
empirisch <- rbind(c(8, 1, 3), # alternativ mit matrix()
c(5, 4, 3),
c(1, 16, 1))
empirisch # ausgeben zur Probe
## [,1] [,2] [,3]
## [1,] 8 1 3
## [2,] 5 4 3
## [3,] 1 16 1
ergebnis <- chisq.test(empirisch) # übergeben an chisq.test() und speichern
Nun können wir das Ergebnis als solches ausgeben und erhalten mit
X-squared = 21.028
den gleichen Wert, den wir gerade per
Hand berechnet haben:
ergebnis # Ausgabe des Ergebnisses
##
## Pearson's Chi-squared test
##
## data: empirisch
## X-squared = 21.028, df = 4, p-value = 0.0003127
Auf den Teil df = 4, p-value = 0.0003127
werden wir noch
zurückkommen (vgl. Teil
15). Kurz gesagt sind dies Werte aus der Inferenzstatistik, die wir
aber bis hierhin noch nicht eingeführt haben.
Das Objekt ergebnis
enthält auch weitere Informationen,
z.B. die Kontingenztafel der bei Unabhängigkeit erwarteten Werte:
ergebnis$expected # erwartete Werte bei Unabhängigkeit
## [,1] [,2] [,3]
## [1,] 4 6 2
## [2,] 4 6 2
## [3,] 6 9 3
Auf der einen Seite ist klar, dass \(\chi^2\) umso größere Werte annimmt, je mehr die empirischen Werte von den bei Unabhängigkeit erwarteten Werten abweichen. Auf der anderen Seite ist aber unklar, was eine “große Abweichung” und damit dann auch ein “starker Zusammenhang” eigentlich ist. Zur besseren Einordnung fragen wir uns daher: Welche Werte kann \(\chi^2\) denn überhaupt annehmen?
Relativ einfach ist der Wert bei vollständiger Unabhängigkeit zu bestimmen. In diesem Fall sind alle Differenzen Null und als Konsequenz ist dann natürlich auch \(\chi^2=0\). Dies ist gleichzeitig das Minimum, welches \(\chi^2\) annehmen kann.
Ein wenig schwerer ist der Wert bei vollständiger Abhängigkeit zu bestimmen, der sich ergibt als \(\chi^2=n\cdot [\text{min}(I,J)-1]\). Mit \(\text{min}(I,J)\) ist das Minimum der Zeilen- bzw. Spaltenanzahl der Kontingenztafel gemeint. Dies ist gleichzeitig das Maximum, welches \(\chi^2\) annehmen kann. Würden wir bspw. eine \(5\times 3\) Kontingenztafel betrachten, wäre \(\text{min}(5,3)=3\) der gesuchte Wert.
Insgesamt ergibt sich als Wertebereich von \(\chi^2\) also: \[0\leq \chi^2 \leq n\cdot [\text{min}(I,J)-1 ]\] Das Maximum von \(\chi^2\) hat aber einen entscheidenen Nachteil: Es hängt sowohl von der Anzahl der Spalten-/Zeilen als auch vom Stichprobenumfang \(n\) ab. Dies ist ein Nachteil, wenn wir \(\chi^2\)-Werte verschiedener Studien vergleichen wollen, die z.B. auf Stichproben verschiedenen Umfangs beruhen oder – bei gleicher inhaltlicher Thematik – unterschiedlich viele Ausprägungen der Variablen verwendet haben. Abhilfe schaffen hier aus \(\chi^2\) abgeleitete Maße, die wir im folgenden Abschnitt einführen werden.
Aus \(\chi^2\) können wir als erstes den Kontingenzkoeffizienten berechnen: \[K=\sqrt{\frac{\chi^2}{n+\chi^2}}\] Als Wertebereich für \(K\) ergibt sich \[ 0\leq K \leq \sqrt{\frac{\text{min}(I,J)-1}{\text{min}(I,J)}} \] Das heißt, der Wert des Kontingenzkoeffizienten \(K\) ist schon einmal unabhängig von der Stichprobengröße \(n\), allerdings immer noch von der Größe der Kontingenztafel. In einem weiteren Schritt dividieren wir daher \(K\) durch sein Maximum und erhalten den korrigierten Kontingenzkoeffizienten: \[K^*=\frac{K}{\sqrt{\frac{\text{min}(I,J)-1}{\text{min}(I,J)}}}\] Der Wertebereich von \(K^*\) ist nun eingegrenzt als \[0\leq K^* \leq 1\] Damit haben wir mit \(K^*\) ein Maß, welches unabhängig von Stichprobenumfang und Größe der Kontingenztafel vergleichbar zwischen verschiedenen Studien ist. Größere Werte sprechen dabei für stärkere Zusammenhänge und bei vollständiger Abhängigkeit wird als Maximum der Wert \(K^*=1\) angenommen.
Die Funktion assocstats()
aus dem paket vcd
ist eine weitere Möglichkeit, \(\chi^2\) zu berechnen und sie berechnet
auch bspw. den Kontingenzkoeffizienten:
assocstats(empirisch)
## X^2 df P(> X^2)
## Likelihood Ratio 23.991 4 8.0206e-05
## Pearson 21.028 4 3.1268e-04
##
## Phi-Coefficient : NA
## Contingency Coeff.: 0.578
## Cramer's V : 0.5
Weitere Erläuterungen: Die oben eingeführte Berechnung von \(\chi^2\) ist die Variante von Pearson. Der Likelihood-Ratio \(\chi^2\)-Wert ist eine alternative Berechnung von \(\chi^2\) und wird oft auch als \(G\) bezeichnet: \[G=2\cdot\sum_{i=1}^I \sum_{j=1}^J n_{ij}\cdot \ln\left( \frac{n_{ij}}{e_{ij}}\right)\] Bei großen Stichproben unterscheiden sich die Ergebnisse nur minimal. Allerdings ist die Approximation ( “Annäherung”) an die sog. “theoretische \(\chi^2\)-Verteilung” bei \(G\) besser als bei \(\chi^2\) (vgl. Teil 15).
Für den Spezialfall einer \(2\times 2\)-Kontingenztafel der Form
mit \(n=a+b+c+d\) berechnet sich
\(\chi^2\) als: \[\chi^2=\frac{n\cdot(a\cdot d - b\cdot
c)^2}{(a+c)\cdot(b+d)\cdot(a+b)\cdot(c+d)}\] Am Beispiel der
Kontingenztafel
ergibt sich demnach: \[\chi^2=\frac{20\cdot(3\cdot 4-5\cdot
8)^2}{11\cdot 9 \cdot 8\cdot 12}=1.649832\] Auch hier können wir
natürlich R zur Berechnung benutzen. Allerdings müssen wir dann, um zum
gleichen Ergebnis zu gelangen, die sog. Yates-Korrektur
unterdrücken, indem der Parameter correct = FALSE
gesetzt
wird. Andernfalls unterscheiden sich die Ergebnisse leicht:
empirisch <- rbind(c(3, 5),
c(8, 4))
chisq.test(empirisch,
correct = FALSE) # ohne Yates-Korrektur```
##
## Pearson's Chi-squared test
##
## data: empirisch
## X-squared = 1.6498, df = 1, p-value = 0.199
Es sei außerdem noch erwähnt, woher die Formel zum Kontingenzkoeffizient \(K\) kommt. Denn eigentlich ist diese Formel eher unintuitiv; man könnte ja auch \(\chi^2\) einfach durch sein Maximum von \(n\cdot [\text{min}(I,J)-1 ]\) teilen um die Statistik auf Werte zwischen 0 und 1 zu normieren. Tatsächlich hat der Kontingenzkoeffizient aber andere (historische) Gründe. Pearson (1904) leitete \(K\) nämlich als Spezialfall der sog. Pearson Korrelation her, auf die wir unten in Teil 5.3.2 eingehen werden. Genauere Ergänzungen finden sie hier.
Im Fall metrischer, intervallskalierter Variablen sind wir mit der Datensituation konfrontiert, dass von \(n\)-vielen Versuchspersonen Werte auf den Variablen \(X\) und \(Y\) vorliegen:
Das heißt, von jeder Person liegen zwei Werte vor, bspw. die Körpergröße und Schuhgröße. Die erhobenen Werte können in ein Koordinatensystem eingezeichnet werden, wobei die beiden Achsen die Variablen widerspiegeln und ein Wertepaar einer Person als Punkt gezeichnet wird (eine Punktwolke bzw. ein sog. Scatterplot). Die folgende Abbildung visualisiert wie derartige Punktwolken aussehen könnten, wobei hier ein linearer, ein quadratischer und ein kubischer Zusammenhang zugrunde liegen: Auch wenn wir uns in diesem Kapitel auf lineare Zusammenhänge beschränken, ist allen Varianten gemein: Kennen wir bei einer Person die Ausprägung auf der Variablen \(X\), können wir etwas über vermutliche Werte auf der Variablen \(Y\) vorhersagen (und natürlich umgekehrt). Eine Möglichkeit wäre, den Mittelwert aller \(Y\)-Werte anzunehmen, die es für einen bestimmten Wert von \(X\) gibt.
Im folgenden Beispiel gestaltet sich die Situation anders. Zwar gibt es für verschiedene Werte auf der Variablen \(X\) verschiedene Wertebereiche, die die Variable \(Y\) annimmt, würden wir hier aber analog zu gerade jeweils den Mittelwert als beste Vermutung des Wertes auf \(Y\) bei einem gegebenen Wert von \(X\) vorhersagen, wäre die Vorhersae für verschiedene Werte von \(X\) immer sehr ähnlich. Tatsächlich ist diese Punktwolke ein Beispiel dafür, dass es keinen Zusammenhang zwischen \(X\) und \(Y\) gibt: Die folgenden beiden Fällen wiederum unterscheiden sich in der Richtung des Zusammenhanges. Im linken Beispiel gehen höhere Werte auf \(X\) auch tendenziell mit höheren Werten auf \(Y\) einher; wir nennen dies einen positiven (linearen) Zusammenhang. Im rechten Beispiel gehen höhere Werte auf \(X\) tendenziell mit niedrigeren Werten auf \(Y\) einher; wir nennen dies einen negativen (linearen) Zusammenhang:
Schließlich betrachten wir noch zwei weitere Fälle, die allerdings beide einen positiven (linearen) Zusammenhang darstellen. Hier unterscheiden sich beide Beispiele in der Stärke des Zusammenhanges. Im linken Beispiel ist der Zusammenhang weniger stark als im rechten Beispiel. Im Fall eines perfekten linearen Zusammenhangs (bei vollständiger Abhängigkeit) würden alle Punkte auf einer Geraden liegen. In diesem Fall wäre \(Y\) dann eine Linearkombination von \(X\), der Form \(Y=b\cdot X+a\):
Wir wollen nun die Stärke und die Richtung solcher linearer Zusammenhänge in einer einzigen Zahl ausdrücken, ganz ähnlich wie \(\chi^2\) und der (korrigierte) Kontingenzkoeffizient es für nominalskalierte Variablen tun. Diese Zahl werden wir Kovarianz nennen und wir wählen hier einen grafischen Zugang zu ihrer Herleitung.
Der linke Teil der folgenden Abbildung visualisiert eine Punktwolke von 100 Versuchspersonen und wir einigen uns darauf, dass es sich um einen positiven, linearen Zusammenhang handelt. Der rote Punkt, als Zentroid bezeichnet, ist der Punkt, der als Koordinaten die Mittelwerte aller Versuchspersonen auf den Variablen \(X\) und \(Y\) hat.
Nun zentrieren wir jeden Datenpunkt, das heißt, von jeder \(y\)-Koordinate subtrahieren wir den Mittelwert von \(Y\) (berechnen also \(y_i-M_Y\)), und von jeder \(x\)-Koordinate subtrahieren wir den Mittelwert von \(X\) (berechnen also \(x_i-M_X\)). Dadurch wird der Zentroid der transformierten Variablen in den Nullpunkt verschoben und jeder Datenpunkt an sich spiegelt nun die Abweichung vom Mittelwert auf \(Y\) bzw. \(X\) wider. Das neue Koordinatensystem teilen wir zur weiteren Betrachtung in vier Quadranten, die mit Q1-Q4 bezeichnet sind.
Wir betrachten nun die Abweichungen der \(x\)- und \(y\)-Koordinaten von \(M_X\) bzw. \(M_Y\), bzw genauer deren Produkte: \[ (x_i-M_X)\cdot (y_i-M_Y) \] In Quadrant 1 sind beide Abweichungen positiv und daher ist auch das Produkt der Abweichungen positiv. In Quadrant 3 sind beide Abweichungen negativ, aber daher ist das Produkt der Abweichungen wiederum positiv:
Insgesamt haben in den Quadranten 1 und 3 beide Abweichungen also jeweils das gleiche Vorzeichen und das Produkt ist daher positiv: \[(x_i-M_X)\cdot (y_i-M_Y) > 0 \hspace{1cm}\forall i\in\{1,\ldots,n\}\] In Quadrant 2 ist die Abweichung \(y_i-M_Y\) positiv und die Abweichung \(x_i-M_X\) ist negativ. Das Produkt der beiden Abweichungen ist daher negativ. In Quadrant 4 ist hingegen die Abweichung \(y_i-M_Y\) negativ und die Abweichung \(x_i-M_X\) ist positiv, aber das Produkt der beiden Abweichungen ist ebenfalls negativ.
Insgesamt haben in den Quadranten 2 und 4 beide Abweichungen also jeweils verschiedene Vorzeichen und das Produkt ist daher negativ: \[(x_i-M_X)\cdot (y_i-M_Y) < 0 \hspace{1cm}\forall i\in\{1,\ldots,n\}\]
Als nächsten Schritt betrachten wir die Gesamtsumme \(G\) aller dieser Abweichungsprodukte über alle \(n\) Personen hinweg und fragen, welche Werte \(G\) bei welchen Formen von Zusammenhängen annimmt: \[G=\sum_{i=1}^n (x_i-M_X)\cdot (y_i-M_Y)\] Wir unterscheiden hier die drei Fälle, die in der vorhergehenden Abbildung dargestellt sind:
\(G\) erfüllt also bereits zwei wichtige Eigenschaften:
Zur besseren Vergleichbarkeit mit Stichproben von anderem Umfang, wird \(G\) schließlich noch durch \(n\) dividiert und diese Zahl heißt (unkorrigierte) Kovarianz von \(X\) und \(Y\): \[\text{Kov}(X,Y)=\frac{1}{n}\cdot \sum_{i=1}^n (x_i-M_X)\cdot (y_i-M_Y)\] Die Kovarianz ist ein in der Statistik enorm wichtiges Maß und sie hat wichtige Eigenschaften, die wir im Verlaufe immer wieder benötigen werden (weitere Erläuterungen, Beweise und Datenbeispiele finden Sie hier):
Zunächst bestimmen wir mit R die Kovarianz durch Umsetzung der Definition:
X <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) # Variable X
Y <- c(3, 5, 4, 6, 9, 7, 9, 10, 11, 9) # Variable Y
MX <- mean(X) # Mittelwert von X
MY <- mean(Y) # Mittelwert von Y
n <- length(X) # Anzahl der Werte, also n
Kov.XY <- (1/n) * sum( (X-MX) * (Y-MY) ) # Berechnung per Definition
Kov.XY
## [1] 6.65
Alternativ können wir die Kovarianz auch mit der oben erwähnten alternativen Berechnungsweise bestimmen:
mean(X*Y) - MX*MY # einfachere Rechnung
## [1] 6.65
Schließlich gibt es mit cov()
natürlich auch eine
Funktion zur Bestimmung der Kovarianz mit R. Hierbei ist zu beachten,
dass – ähnlich wie im Fall der Varianz var()
– die Funktion
zu einem etwas anderen Ergebnis kommt. R berechnet nämlich auch hier
eine korrigierte Form der Kovarianz: \[\widehat{Kov(X,Y)} = \frac{1}{n-1}\cdot
\sum_{i=1}^n (x_i-M_X)\cdot (y_i-M_Y)\] Allerdings führt wieder
die Multiplikation mit \(\frac{n-1}{n}\) zum Ergebnis der oberen
unkorrigierten Definition:
cov(X,Y) # andere (korrigierte Kovarianz mit cov()
## [1] 7.388889
((n-1)/n) * cov(X,Y) # mit Umformung wie bei var(): gleiches Ergebnis
## [1] 6.65
Die Kovarianz hat leider noch eine unschöne Eigenschaft: Sie ist nicht invariant gegenüber Skalentransformation. Das heißt, wenn die Skala der gemessenen Variablen verändert wird (z.B. durch eine lineare Transformation), dann verändert sich die Kovarianz auch – obwohl natürlich der Zusammenhang beider Variablen dadurch nicht verändert wird.
Als Beispiel betrachten wir zwei Studien, die zwei Längen in Metern gemessen haben und berechnen danach die Kovarianz, wenn die Längen in Zentimetern umgerechnet wurden (d.h. mit 100 multipliziert wurden)
X.m <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) # in Metern
Y.m <- c(3, 5, 4, 6, 9, 7, 9, 10 ,11, 9) # in Metern
MX.m <- mean(X.m) # Mittelwert X
MY.m <- mean(Y.m) # Mittelwert Y
n <- length(X.m) # Anzahl Datenpunkte
(1/n) * sum( (X.m-MX.m) * (Y.m-MY.m) ) # Kovarianz
## [1] 6.65
# jetzt transformieren in Zentimetern, d.h. Multiplikation mit 100
X.cm <- X.m * 100
Y.cm <- Y.m * 100
MX.cm <- mean(X.cm) # Mittelwert X
MY.cm <- mean(Y.cm) # Mittelwert Y
(1/n) * sum( (X.cm-MX.cm) * (Y.cm-MY.cm) ) # Kovarianz
## [1] 66500
Dies geht übrigens auch leicht aus der Rechenregel für die Kovarianz linear-transformierter Variablen hervor. Die Transformation von Metern in Zentimetern ist ja eine lineare Transformation, bei der die Ausgangsvariablen mit \(100\) multipliziert werden: \[ X_{cm} = 100\cdot X_m \quad\quad Y_{cm} = 100\cdot Y_m \] Dann ergibt sich als Kovarianz \[ \text{Kov}(X_{cm},Y_{cm})=\text{Kov}(100\cdot X_m,100\cdot Y_m) =100\cdot 100\cdot\text{Kov}(X_m,Y_m) \] Aufgrund dieser Eigenschaft fragen wir uns als nächstes: Was ist das Minimum und das Maximum der Kovarianz? Die Antwort darauf ist, dass man zeigen kann, dass die Kovarianz zweier Variablen \(X\) und \(Y\) minimal \(-S_X\cdot S_Y\) und maximal \(+S_X\cdot S_Y\) ist. Daraus folgt, dass der Wertebereich der Kovarianz wie folgt ist: \[ -S_X\cdot S_Y\leq \text{Kov}(X,Y) \leq +S_X\cdot S_Y \] Den korrigierten Kontigenzkoeffizienten haben wir weiter oben dadurch berechnet, dass wir den Kontingenzkoeffizienten durch sein Maximum dividiert haben. Dadurch nimmt er bei vollständiger Abhängigkeit den Wert \(K^*=1\) an. Ganz ähnlich gehen wie hier nun vor und standardisieren die Kovarianz, das heißt, wir dividieren die Ungleichung durch \(S_X\cdot S_Y\): \[ -1\leq \frac{\text{Kov}(X,Y)}{S_X\cdot S_Y} \leq +1 \] Der neue Term in der Mitte hat also einen klar definierten Wertebereich und unter der (Pearson Produkt-Moment) Korrelation \(r_{XY}\) zweier Variablen \(X\) und \(Y\) versteht man die Zahl \[ r_{XY}:=\frac{\text{Kov}(X,Y)}{S_X\cdot S_Y}\hspace{1cm}\left(=\text{Kov}(Z_X,Z_Y) \right) \]
Der Korrelationskoeffizient nimmt nur Werte zwischen \(-1\) und \(+1\) an, das heißt, sein Wertebereich ist: \[ -1\leq r_{XY} \leq +1 \] Bei einer Korrelation von \(-1\) oder \(+1\) besteht ein vollständiger negativer bzw. positiver linearer Zusammenhang (d.h., eine Variable ist eine lineare Transformation der anderen Variablen): \[ |r_{XY}|=1\Rightarrow Y=a\cdot X + b \] Eine ShinyApp zum Verstehen, wie Scatterplots ihre Form in Abhängig von der Varianz und der Korrelation der beiden Variablen verändern finden Sie hier.
Weiter ist es noch interessant zu klären, wie sich \(r_{XY}\) bei Skalentransformationen verhält. In diesem Fall ist es so, dass sich für die linearen Transformationen \(a\cdot X+b\) und \(c\cdot Y + d\) der Variablen \(X\) und \(Y\) ergibt: \[ r_{a\cdot X+b,c\cdot Y+d} = \begin{cases} +r_{XY} & \text{wenn } a\cdot c > 0\\ -r_{XY} & \text{wenn } a\cdot c < 0 \end{cases} \] Das heißt, der Betrag der Korrelation bleibt dann identisch, das Vorzeichen kann aber wechseln, in Abhängigkeit vom Produkt der multiplikativen Konstanten \(a\) und \(c\).
Mit R können wir die Korrelation sehr leicht mit der Funktion
cor()
bestimmen. Den Parameter
method = "pearson"
müssen wir nicht explizit angeben, da er
als Default voreingestellt ist. Im zweiten Teil werden die Variablen
\(X\) und \(Y\) wieder transformiert und es zeigt sich,
dass tatsächlich der Betrag der Korrelation gleich bleibt. Da aber \(100\cdot(-100)<0\) ist, wechselt die
Korrelation ihr Vorzeichen:
X <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
Y <- c(3, 5, 4, 6, 9, 7, 9, 10, 11, 9)
cor(X, Y,
method = "pearson") # mit R-Funktion cor(), "pearson" ist auch voreingestellt
## [1] 0.9005212
cor(100*X, (-100)*Y,
method = "pearson") # betragsmäßige Invarianz
## [1] -0.9005212
Schließlich ist noch interessant zu erwähnen, dass die Korrelation sowohl mit Hilfe der unkorrigierten Stichprobenvarianzen bzw. -standardabweichungen, als auch mit Hilfe der korrigierten Varianzen bzw. Standardabweichungen berechnet werden kann. Grund hierfür ist, dass die jeweiligen Vorkoeffizienten der Varianz bzw. Standardabweichungen sich stets rauskürzen:
\[\begin{align*} r_{XY} &= \frac{\text{Kov}(X,Y)}{S_X\cdot S_Y} \\\\ &= \frac{\frac{1}{n}\sum_{i=1}^n(x_i-M_X)(y_i-M_Y)}{\sqrt{\frac{1}{n}\sum_{i=1}^n(x_i-M_X)^2}\cdot \sqrt{\frac{1}{n}\sum_{i=1}^n(y_i-M_Y)^2}}\\\\ &= \frac{\frac{1}{n}\sum_{i=1}^n(x_i-M_X)(y_i-M_Y)}{\sqrt{\frac{1}{n}} \cdot \sqrt{\frac{1}{n}} \cdot \sqrt{\sum_{i=1}^n(x_i-M_X)^2}\cdot \sqrt{\sum_{i=1}^n(y_i-M_Y)^2}}\\\\ &= \frac{\sum_{i=1}^n(x_i-M_X)(y_i-M_Y)}{\sqrt{\sum_{i=1}^n(x_i-M_X)^2}\cdot \sqrt{\sum_{i=1}^n(y_i-M_Y)^2}} \end{align*}\]
bzw.
\[\begin{align*} r_{XY} &= \frac{\widehat{\text{Kov}(X,Y)}}{\hat S_X\cdot \hat S_Y} \\\\ &= \frac{\frac{1}{n-1}\sum_{i=1}^n(x_i-M_X)(y_i-M_Y)}{\sqrt{\frac{1}{n-1}\sum_{i=1}^n(x_i-M_X)^2}\cdot \sqrt{\frac{1}{n-1}\sum_{i=1}^n(y_i-M_Y)^2}}\\\\ &= \frac{\frac{1}{n-1}\sum_{i=1}^n(x_i-M_X)(y_i-M_Y)}{\sqrt{\frac{1}{n-1}} \cdot \sqrt{\frac{1}{n-1}} \cdot \sqrt{\sum_{i=1}^n(x_i-M_X)^2}\cdot \sqrt{\sum_{i=1}^n(y_i-M_Y)^2}}\\\\ &= \frac{\sum_{i=1}^n(x_i-M_X)(y_i-M_Y)}{\sqrt{\sum_{i=1}^n(x_i-M_X)^2}\cdot \sqrt{\sum_{i=1}^n(y_i-M_Y)^2}} \end{align*}\]
Natürlich lassen sich diese Rechenregeln verallgemeinern auf den Fall der Summe von \(J\)-vielen Variablen \(X_1,\ldots,X_j,\ldots,X_J\). Der Mittelwert der Summe der \(J\)-vielen Variablen ergibt sich dann als Summe der einzelnen Mittelwerte: \[M_{(X_1 + \ldots + M_J)} = M_{\sum_{j=1}^J X_j}=\sum_{j=1}^JM_{X_j}\] Zur Erläuterung hier ein Beispiel mit drei Variablen:
X1 <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) # Variable X1
X2 <- c(3, 5, 4, 6, 9, 7, 9, 10, 11, 9) # Variable X2
X3 <- c(4, 3, 5, 6, 7, 4, 3, 4, 5, 7) # Variable X3
mean(X1)+mean(X2)+mean(X3) # Summe der drei Mittelwerte
## [1] 17.6
mean(X1+X2+X3) # Mittelwert der Summe der drei Variablen
## [1] 17.6
Für die Varianz der Summe der \(J\)-vielen Variablen gilt hingegen: \[S^2_{\sum_{j=1}^J X_j}=\sum_{j=1}^J \sum_{k=1}^J
\text{Kov}(X_j,X_k)\] Dieser Ausdruck erscheint auf den ersten
Blick etwas komplizierter. Er bedeutet aber nichts anderes, als dass
hier alle möglichen Kovarianzen aufsummiert werden, inklusive der
Kovarianzen der Variablen mit sich selber (was deren Varianz ist). Zudem
gehen alle Kovarianzen zweier Variablen doppelt in die Summe ein, da
z.B. \(\text{Kov}(X_1,X_2)=\text{Kov}(X_2,X_1)\)
ist. Um dies zu veranschalichen, schauen wir uns eine
Kovarianzmatrix an, das heißt, eine Matrix in deren Zeilen und
Spalten die Variablen stehen und deren Einträge dann die Kovarianzen der
jeweiligen zwei Variablen sind. In R erzeugen wir uns dazu aus den drei
Variablen einen DataFrame und übergeben diesen an die Funktion
cov()
:
kovmatrix <- cov(data.frame(X1, X2, X3)) # Kovarianzmatrix der drei Variablen
kovmatrix
## X1 X2 X3
## X1 9.166667 7.3888889 1.3333333
## X2 7.388889 7.3444444 0.9555556
## X3 1.333333 0.9555556 2.1777778
Wenn wir dann alle neun Werte der Kovarianzmatrix aufsummieren, dann entspricht dies genau der Varianz der Summe der drei Variablen:
sum(kovmatrix) # Aufsummierung aller 9 Kovarianzen...
## [1] 38.04444
var(X1+X2+X3) # ...entspricht der Varianz der Summe der drei Variablen
## [1] 38.04444
Im allgemeinen Fall sieht eine Kovarianzmatrix mit \(J\) Variablen dann wie folgt aus: \[ \begin{pmatrix} \text{Kov}(X_1,X_1) & \cdots & \text{Kov}(X_1,X_j) & \cdots & \text{Kov}(X_1,X_J)\\ \vdots & \vdots & \vdots & \vdots & \vdots \\ \text{Kov}(X_j,X_1) & \cdots & \text{Kov}(X_j,X_j) & \cdots & \text{Kov}(X_j,X_J)\\ \vdots & \vdots & \vdots & \vdots & \vdots \\ \text{Kov}(X_J,X_1) & \cdots & \text{Kov}(X_J,X_j) & \cdots & \text{Kov}(X_J,X_J)\\ \end{pmatrix} \] Eine Kovarianzmatrix ist immer quadratisch, das heißt, sie hat gleich viele Zeilen und Spalten, und sie ist symmetrisch, da ja z.B. \(\text{Kov}(X_1,X_J)=\text{Kov}(X_J,X_1)\) ist. In der Diagonalen einer Kovarianzmatrix stehen die Kovarianzen der Variablen mit sich selber, also deren Varianzen (z.B. \(\text{Kov}(X_1,X_1)=S^2_{X_1}\)).
Berechnet man die Kovarianzmatrix der \(z\)-standardisierten Variablen \(Z_{X_1},\ldots, Z_{X_J}\), dann ergibt die sog. Korrelationsmatrix: \[ \begin{pmatrix} 1 & \cdots & r_{X_1 X_j} & \cdots & r_{X_1 X_J}\\ \vdots & \vdots & \vdots & \vdots & \vdots \\ r_{X_j X_1} & \cdots & 1 & \cdots & r_{X_j X_J}\\ \vdots & \vdots & \vdots & \vdots & \vdots \\ r_{X_J X_1} & \cdots & r_{X_J X_j} & \cdots & 1\\ \end{pmatrix} \] Auch diese ist quadratisch und symmetrisch und in der Diagonalen steht überall die \(1\), was der Korrelation einer Variablen mit sich selber entspricht.
Wie erwähnt, kann eine Kovarianzmatrix mit cov()
berechnet werden. Um die jeweiligen (unkorrigierten) Kovarianzen gemäß
der Definition zu erhalten, muss das Ergebnis dann noch mit \(\frac{n-1}{n}\) multipliziert werden. Die
Korrelationsmatrix wird entsprechend mit cor()
berechnet.
In der Regel wird beiden Funktion ein DataFrame übergeben, aber auch
eine Matrix deren Spalten die verschiedenen Variablen beinhalten, können
übergeben werden:
cov(data.frame(X1, X2, X3)) # korrigierte Kovarianzmatrix
## X1 X2 X3
## X1 9.166667 7.3888889 1.3333333
## X2 7.388889 7.3444444 0.9555556
## X3 1.333333 0.9555556 2.1777778
n <- length(X1)
cov(data.frame(X1, X2, X3)) * (n-1)/n # unkorrigierte Kovarianzmatrix
## X1 X2 X3
## X1 8.25 6.65 1.20
## X2 6.65 6.61 0.86
## X3 1.20 0.86 1.96
cor(data.frame(X1, X2, X3)) # Korrelationsmatrix
## X1 X2 X3
## X1 1.0000000 0.9005212 0.2984188
## X2 0.9005212 1.0000000 0.2389295
## X3 0.2984188 0.2389295 1.0000000
Ein wichtiger Punkt im Kontext von Zusammenhängen zweier Variablen ist, dass ein Zusammenhang nur eine Beschreibung formaler Eigenschaften ist. Ein Zusammenhang sagt nichts darüber aus, ob eine Variable \(X\) eine (kausale) Wirkung auf eine Variable \(Y\) hat. Betrachtet man nur zwei Variablen \(X\) und \(Y\), so gibt es alleine drei Möglichkeiten wechselseitiger Beeinflussung: Allerdings können Zusammenhänge zweier Variablen auch “künstlich” durch die Wirkung einer dritten Variablen \(Z\) entstehen.
Ein oft zitiertes Beispiel hierfür ist der positive Zusammenhang zwischen der Anzahl Neugeborener und der Anzahl an Störchen. Hier ist es weder so, dass Neugeborene Störche anlocken noch, dass Störche tatsächlich mehr Neugeborene bringen. Vielmehr wird der Zusammenhang dadurch vermittelt, dass es auf dem Land mehr Störche und Familien mit Neugeborenen gibt als in der Stadt. Die dritte Variable “Gebiet” hängt also ihrerseits mit der Anzahl an Neugeborenen und an Störchen zusammen, wodurch auch zwischen diesen beiden Variablen ein Zusammenhang entsteht. Andere Beispiele für Scheinkorrelationen finden Sie hier.
Wir haben mit der Kovarianz und der Korrelation nur lineare Zusammenhänge betrachtet. Die folgende Abbildung stellt einen Perfekten Zusammenhang dar, der allerdings nicht linear ist, sondern beschrieben werden kann durch \[Y=-X^2+400\] Die Kovarianz und die Korrelation als Maße linearer Zusammenhänge können einen derartigen nicht-linearen Zusammenhang nicht erfassen. Im Beispiel ist ist die Korrelation sogar \(r_{XY}=0\):
X <- c(-20:20)
Y <- -X^2+400
cor(X,Y)
## [1] 0
Es ist daher immer wichtig, die Rohdaten anzuschauen, um zu erfahren, ob ein Maß für lineare Zusammenhänge überhaupt geeignet ist, einen möglichen Zusammenhang zu erfassen. Ein weiteres Beispiel für die Wichtigkeit der Datenvisualisierung ist der Einfluss von extremen Werten (“Ausreißern”) auf die Korrelation. Dies visualisiert die folgende Abbildung: Die sechs schwarz-eingezeichneten Punkten stellen einen negativen, vollständigen, linearen Zusammenhang dar. Dazu wird immer der rot-eingzeichnete Punkt mitbetrachtet. Nur wenn er relativ nahe an den anderen Punkten liegt (rechts), ist die Korrelation auch negativ. Je mehr er abweicht (Mitte und links), desto stärker ist sein Einfluss auf die Korrelation, die im linken Beispiel sogar stark positiv wird:
Mit dem \(\chi^2\)-Koeffizienten und den daraus abgeleiteten Größen können wir Zusammenhänge zweier nominalskalierter Variablen ausdrücken und mit der Pearson Produkt-Moment Korrelation \(r_{XY}\) können wir lineare Zusammenhänge intervallskalierter Variablen erfassen. Natürlich gibt es noch eine ganze Reihe anderer Maße für spezielle Zwecke oder für Variablen anderen Skalenniveaus. Wir betrachten hier als Beispiele noch Zusammenhangsmaße für zwei ordinalskalierte Variablen und für eine nominal- und eine intervallskalierte Variable.
Spearmans’s \(\rho\) (“rho”) und Kendall’s \(\tau\) (“tau”) sind Maße für Zusammenhänge ordinalskalierter Variablen. Statt mit den Rohwerten arbeiten diese Verfahren mit Ranginformationen. Dadurch erfassen sie nicht die Linearität eines Zusammenhangs, sondern die Monotonie.
Die wesentliche Idee von Spearman’s \(\rho\) ist, dass Daten zunächst in Rangreihen umgewandelt werden und mit diesen Rängen wird dann eine Pearson-Korrelation berechnet.
Die folgende Tabelle ist ein Beispiel für zwei Variablen \(X\) und \(Y\) und die jeweiligen Ränge der einzelnen
Werte. Einfach gesagt erhält der kleinste Wert den Rang 1, der
zweitkleinste Wert den Rang 2 usw.:
Mit R können Ränge mit der Funktion rank()
berechnet
werden:
X <- c(34 , 37 , 40 , 38 , 42 , 33) # Variable X
Y <- c(150, 156, 158, 157, 170, 110) # Variable Y
rank(X) # berechnet Ränge von X
## [1] 2 3 5 4 6 1
rank(Y) # berechnet Ränge von Y
## [1] 2 3 5 4 6 1
Liegen Werte mehrfach vor, spricht man von sog. Ties. In
diesem Fall können keine eindeutigen Ränge vergeben werden. Im folgenden
Beispiel trifft dies auf den Wert \(35\) auf der Variablen \(X\) zu. Eigentlich würden hier die Ränge
\(2\) und \(3\) vergeben werden, allerdings ist unklar,
welcher Rang welcher Versuchsperson dann zugeordnet wird. Eine
Standardmethode des Umgangs ist es dann, den Mittelwert zu benutzen, das
heißt hier, beiden Personen den Rang \(2.5\) zu zuweisen:
Die Funktion rank()
führt dies standardmäßig durch,
aber statt ties.method = "average"
können auch andere
Varianten des Umgangs mit Ties eingestellt werden:
X <- c(35 , 35 , 40 , 38 , 42 , 33)
Y <- c(150, 156, 158, 157, 170, 110)
rank(X,
ties.method = "average") # "average" ist auch voreingestellt
## [1] 2.5 2.5 5.0 4.0 6.0 1.0
rank(Y)
## [1] 2 3 5 4 6 1
Berechnet werden kann Spearman’s \(\rho\) mit der Funktion cor()
,
indem das Argument method = "spearman"
gesetzt wird:
X <- c(34 , 37 , 40 , 38 , 42 , 33)
Y <- c(150, 156, 158, 157, 170, 110)
cor(X,Y,
method = "pearson") # standardmäßig Person's r
## [1] 0.8140376
cor(X,Y,
method = "spearman") # jetzt Spearman's rho
## [1] 1
cor(rank(X), rank(Y), # gleiches Ergebnis, wenn die Person Korrelation...
method = "pearson") # ...mit den Rängen von X und Y berechnet wird
## [1] 1
Ein weiteres Maß für insbesondere zwei ordinalskalierte Variablen ist
Kendall’s \(\tau\),
welches ein sog. Konkordanzmaß ist. Die Berechnung mit R erfolgt
ebenfalls mit der Funktion cor()
X <- c(34 , 37 , 40 , 38 , 42 , 33)
Y <- c(150, 156, 158, 157, 170, 110)
cor(X,Y,
method = "kendall") # Kendall's tau
## [1] 1
Die punktbiseriale Korrelation wird verwendet, wenn ein Merkmal dichotom und ein Merkmal intervallskaliert ist. Im folgenden Beispiel gehen wir davon aus, dass die Variable \(X\) nur die Werte 1 und 0 annehmen kann:
Die Berechnung der punkt-biserialen Korrelation erfolgt dann mit: \[ r_{pb}=\frac{ (M_{Y|X=1} - M_{Y|X=0})\cdot\sqrt{p\cdot (1-p)}}{S_Y} \] wobei \(p\) der Anteil der Einsen auf der Variablen \(X\) ist, also hier \(p=0.6\). \(M_{Y|X=x}\) meint den Mittelwert auf der Variablen \(Y\) für die Teilgruppe, die auf der Variablen \(X\) den Wert \(x\) hat (also 1 oder 0).
Die Umsetzung in R erfolgt z.B. durch Umsetzung der Formel:
X <- c(1, 0, 1, 1, 0, 0, 1, 1, 1, 0)
Y <- c(7, 8, 5, 6, 7, 5, 6, 7, 8, 5)
M1 <- mean(Y[which(X==1)]) # Mittelwert Gruppe 1
M0 <- mean(Y[which(X==0)]) # Mittelwert Gruppe 0
p <- sum(X)/length(X) # relativer Anteil der Einsen
n <- length(X) # Anzahl der Elemente/Personen
varianz <- (1/n) * sum( (Y-mean(Y))^2) # Varianz von Y und daraus...
SD <- sqrt(varianz) # die Standardabweichung
# punktbiseriale Korrelation berechnen
pbs.cor <- ( (M1-M0)*sqrt(p*(1-p)) ) / SD # Berechnung von Hand
pbs.cor
## [1] 0.1099853
Wenn die dichotome Variable mit \(0\) und \(1\) kodiert ist, dann kommt
cor()
zum gleichen Ergebnis:
##
cor(X,Y) # oder mit cor()
## [1] 0.1099853