Statistik mit R & RStudio

21 Deskriptive Statistik mit R

Deskriptive Statistik

Einführung

In diesem Teil des Skripts wollen wir einfache deskriptive Analysen mit R durchführen, also Kennwerte berechnen, die uns ein besseres Verständnis der Daten ermöglichen. Wir nutzen dazu die Ergebnisse einer Erstsemesterbefragung. Diese finden Sie im Downloadbereich im Datensatz WPStudis.RData.

Laden Sie den Datensatz WPStudis.RData.

load("WPStudis.Rdata")

Zunächst nutzen wir die names Funktion, um uns die Variablennamen im Datensatz anzeigen zu lassen:

names(WPStudis)
##  [1] "F1_Nummer"                         
##  [2] "F2_Alter"                          
##  [3] "F3_Geschlecht"                     
##  [4] "F4_Koerpergroesse"                 
##  [5] "F5_Schuhgroesse"                   
##  [6] "F6_Sternzeichen"                   
##  [7] "F7_Brille"                         
##  [8] "F13_WhatsApp"                      
##  [9] "F17_Freunde_Facebook"              
## [10] "F19_Partnerschaft"                 
## [11] "F20_Einkommen_Glueck"              
## [12] "F21_01_Zufriedenheit_Leben"        
## [13] "F21_02_Zufriedenheit_Studium"      
## [14] "F21_03_Zufriedenheit_Partnerschaft"

Maße der zentralen Tendenz

Mittelwert

Das arithmetische Mittel, auch als “Durchschnitt” oder einfach “Mittelwert” bezeichnet, ist ein Maß für die zentrale Tendenz, das durch Summierung einer Reihe von Zahlen und anschließende Division durch die Gesamtzahl der Werte in der Reihe berechnet wird. In R können Sie das arithmetische Mittel mit der Funktion mean() berechnen. Wenn Sie zum Beispiel eine Variable x haben, können Sie den Mittelwert berechnen, indem Sie mean(x) eingeben.

mean(WPStudis$F4_Koerpergroesse)
## [1] 169.9462

Median

Der Median ist ein weiteres Maß für die zentrale Tendenz. Dies ist der mittlere Wert eines Datensatzes, wenn dieser nach Werten aufsteigend geordnet ist. In R können Sie den Median mit der Funktion median() berechnen. Wenn Sie zum Beispiel eine Variable x haben, können Sie den Median berechnen, indem Sie median(x) eingeben.

median(WPStudis$F4_Koerpergroesse)
## [1] 169

Modus

Der Modus ist ein Maß für die zentrale Tendenz, das den/die am häufigsten auftretenden Wert(e) in einem Datensatz darstellt. Mit anderen Worten, ist der Modus der Wert, der in einem Datensatz am häufigsten vorkommt. Der Vorteil des Modus ist, dass dieser auch für nominale Variablen, wie zum Beispiel “Sternzeichen” in unserem Datensatz, nutzbar ist.

Die Berechnung des Modus geht in R mit einem kleinen Trick. Wir nutzen dazu die table Funktion, die uns die Häufigkeit der einzelnen Werte ausgibt (Mehr zur table Funktion gibt es im nächsten Kapitel). Dann lassen wir R den größten Wert ausgeben, dazu nutzen wir die which.max Funktion.

which.max(table(WPStudis$F6_Sternzeichen)) 
## Zwilling 
##       12

Streuungsmaße

Spannweite

Die Spannweite, auch Bereich genannt, ist ein Maß für die Streuung eines Datensatzes. Diese wird als Differenz zwischen dem maximalen und dem minimalen Wert in einem Datensatz berechnet. Um den Bereich in R zu ermitteln, können Sie die integrierte Funktion range() verwenden. Wenn Sie zum Beispiel eine Variable mit dem Namen x haben, können Sie den Bereich durch den Aufruf von range(x) ermitteln. Diese Funktion gibt einen Output mit zwei Elementen zurück: den Mindest- und den Höchstwert der Variable.

range(WPStudis$F4_Koerpergroesse)
## [1] 155 187

Standardabweichung

In der Statistik ist die Standardabweichung ein Maß für die Streuung eines Datensatzes, definiert als die Quadratwurzel aus seiner Varianz. Die Standardabweichung ist eine Möglichkeit, den Grad der Variation oder Streuung einer Variablen zu beschreiben (oft auch als die durchschnittliche Streuung bezeichnet). In R kann die Standardabweichung mit der Funktion sd() berechnet werden.

Wenn Sie beispielsweise eine Variable namens x haben, können Sie die Standardabweichung durch den Aufruf von sd(x) ermitteln. Dies gibt eine einzelne Zahl zurück, die die Standardabweichung des Datensatzes darstellt.

sd(WPStudis$F4_Koerpergroesse)
## [1] 7.756296

Varianz

In der Statistik ist die Varianz ein Maß für die Streuung eines Datensatzes, definiert als der Durchschnitt der quadrierten Abweichungen der Datenpunkte vom Mittelwert. Sie ist eine Möglichkeit, den Umfang der Variation oder Streuung eines Satzes von Datenwerten zu quantifizieren. In R kann die Varianz mit der Funktion var() berechnet werden.

Wenn Sie beispielsweise eine Variable namens x haben, können Sie die Varianz durch den Aufruf von var(x) ermitteln. Dies gibt eine einzelne Zahl zurück, die die Varianz des Datensatzes darstellt.

var(WPStudis$F4_Koerpergroesse)
## [1] 60.16012

Quantile

Quantile sind Werte, die einen Datensatz in gleiche Teile unterteilen. Sie werden verwendet, um die Verteilung eines Datensatzes zusammenzufassen, indem eine Reihe von Grenzwerten festgelegt wird, die die Daten in gleich große Gruppen unterteilen.

In R können Quantile mit der Funktion quantile() berechnet werden. Im Standard gibt die Funktion Quartile aus (Der Datensatz wird in vier Teile geteilt). Das Ergebnis zeigt das 25 %, 50 % und 75 % Quantil.

quantile(WPStudis$F4_Koerpergroesse)
##   0%  25%  50%  75% 100% 
##  155  164  169  175  187

Zusammenfassung von Kennwerten

In R ist die Funktion summary() eine Funktion, die je nach Art der Variable eine Zusammenfassung verschiedener Kennwerte erstellt.

Bei Anwendung auf einen numerischen Vektor gibt die Funktion summary() die folgenden Statistiken zurück:

  • Minimum
    1. Quantil
  • Median (Entspricht 2. Quantil)
  • Mittelwert
    1. Quantil
  • Maximum
  • Standardabweichung

Wenn Sie z. B. einen Datensatz namens data haben, können Sie die Zusammenfassung des Datensatzes durch den Aufruf von summary(data) erstellen.

summary(WPStudis$F4_Koerpergroesse)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   155.0   164.0   169.0   169.9   175.0   187.0

Wenn Sie das gleiche für die Variable “Sternzeichen” (eine Faktor-Variable) versuchen, dann erhalten Sie eine Häufigkeitstabelle.

summary(WPStudis$F6_Sternzeichen)
##     Fische   Jungfrau      Krebs      Loewe   Schuetze   Skorpion 
##          8         10          5          8          5          8 
##  Steinbock      Stier      Waage Wassermann     Widder   Zwilling 
##          1          9         10          8         10         11

Eine Alternative für die summary() Funktion ist die describe() Funktion aus dem Paket psych. Dies ist eine nützliche Funktion, um einen schnellen Überblick über eine Vielzahl von Kennwerten zu bekommen. Denken Sie daran, dass wenn Sie die Funktion describe() verwenden möchten, müssen Sie das Paket psych laden, indem Sie library(psych) ausführen, und dann können Sie es wie describe(data) verwenden.

library(psych)
describe(WPStudis)
##                                    vars  n    mean      sd median
## F1_Nummer                             1 93   47.70   27.36     48
## F2_Alter                              2 92   21.67    4.28     20
## F3_Geschlecht*                        3 93    1.83    0.38      2
## F4_Koerpergroesse                     4 93  169.95    7.76    169
## F5_Schuhgroesse                       5 93   39.53    2.90     39
## F6_Sternzeichen*                      6 93    6.87    3.72      8
## F7_Brille*                            7 92    1.42    0.50      1
## F13_WhatsApp                          8 90  526.22 1176.28    250
## F17_Freunde_Facebook                  9 83  327.64  173.12    300
## F19_Partnerschaft*                   10 91    1.57    0.50      2
## F20_Einkommen_Glueck                 11 76 1978.29 1031.45   2000
## F21_01_Zufriedenheit_Leben           12 90    3.92    0.77      4
## F21_02_Zufriedenheit_Studium         13 89    3.74    0.79      4
## F21_03_Zufriedenheit_Partnerschaft   14 90    3.80    0.97      4
##                                    trimmed     mad min  max range
## F1_Nummer                            47.75   35.58   1   94    93
## F2_Alter                             20.93    1.48  17   45    28
## F3_Geschlecht*                        1.91    0.00   1    2     1
## F4_Koerpergroesse                   169.55    8.90 155  187    32
## F5_Schuhgroesse                      39.12    2.97  36   50    14
## F6_Sternzeichen*                      6.95    4.45   1   12    11
## F7_Brille*                            1.41    0.00   1    2     1
## F13_WhatsApp                        326.89  222.39  20 9999  9979
## F17_Freunde_Facebook                315.03  148.26   0  900   900
## F19_Partnerschaft*                    1.59    0.00   1    2     1
## F20_Einkommen_Glueck               1966.94 1260.21 200 5000  4800
## F21_01_Zufriedenheit_Leben            3.99    0.00   1    5     4
## F21_02_Zufriedenheit_Studium          3.74    1.48   1    5     4
## F21_03_Zufriedenheit_Partnerschaft    3.88    1.48   1    5     4
##                                     skew kurtosis     se
## F1_Nummer                          -0.02    -1.24   2.84
## F2_Alter                            2.41     8.30   0.45
## F3_Geschlecht*                     -1.71     0.93   0.04
## F4_Koerpergroesse                   0.39    -0.65   0.80
## F5_Schuhgroesse                     1.29     1.42   0.30
## F6_Sternzeichen*                   -0.16    -1.41   0.39
## F7_Brille*                          0.30    -1.93   0.05
## F13_WhatsApp                        6.43    46.11 123.99
## F17_Freunde_Facebook                0.73     0.60  19.00
## F19_Partnerschaft*                 -0.28    -1.94   0.05
## F20_Einkommen_Glueck                0.35     0.22 118.32
## F21_01_Zufriedenheit_Leben         -1.34     3.46   0.08
## F21_02_Zufriedenheit_Studium       -0.34     0.42   0.08
## F21_03_Zufriedenheit_Partnerschaft -0.39    -0.56   0.10

In diesem Video zeige ich, wie das in R funktioniert:

Übung

  • Lassen Sie sich die Variablenzusammenfassung für das Alter mit der Index-Notation ausgeben
  • Was ist die gößte Schuhgröße in WPStudis Datensatz?

Die Lösung zu dieser Übungsaufgabe gibt es im neuen Buch Statistik mit R & RStudio.

Deskriptiver Vergleich von Kennwerten

Die Funktion tapply() in R wird verwendet, um eine Funktion auf Teilmengen einer Variable anzuwenden, die durch einen Faktor definiert sind. Beispielsweise wollen Sie die durchschnittliche Körpergröße (Variable) nur für Frauen oder Männer (Faktor) berechnen. Die Funktion benötigt drei Argumente: die Variable, auf die die Funktion angewendet werden soll, den/die Faktor(en), die die Teilmengen definieren, und die anzuwendende Funktion (z. B. den Mittelwert).

Wenn Sie zum Beispiel einen numerischen Vektor namens Daten und einen Faktorvektor namens Gruppe haben, können Sie tapply(Daten, Gruppe, Mittelwert) verwenden, um den Mittelwert der Daten für jede Ebene der Gruppe zu berechnen.

Die Ausgabe ist eine Liste, die die Ergebnisse für jede Stufe des Faktors enthält. Die Namen der Listenelemente entsprechen den Stufen des Faktors.

Um nun zum Beispiel die durchschnittliche Koerpergroesse von Männern und Frauen zu ermitteln, sieht das wie folgt aus.

tapply(WPStudis$F4_Koerpergroesse, WPStudis$F3_Geschlecht, mean)
## Maennlich  Weiblich 
##  181.0625  167.6364

Dies können wir auch auf die Funktion “summary” anwenden.

tapply(WPStudis$F4_Koerpergroesse, WPStudis$F3_Geschlecht, summary)
## $Maennlich
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   170.0   179.5   182.5   181.1   183.5   187.0 
## 
## $Weiblich
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   155.0   163.0   168.0   167.6   171.0   186.0

Noch ausführlicher geht es mit der describeBy Funktion aus dem Psych Paket. Für jede Stufe der Faktorvariable berechnet sie den Mittelwert, die Standardabweichung, den Median, das Minimum, das Maximum und mehrere andere deskriptive Statistiken für den Datensatz.

Wenn Sie beispielsweise einen Datensatz mit dem Namen data haben, der eine Variable mit dem Namen value und eine Faktorvariable mit dem Namen group enthält, können Sie describeBy(data\(value, data\)group) verwenden, um die deskriptiven Statistiken für die Variable value für jede Ebene der Faktorvariable group zu erhalten.

Hier das gleiche Beispiel mit der describeBy Funktion aus dem Psych Paket.

library(psych)
describeBy(WPStudis$F4_Koerpergroesse, WPStudis$F3_Geschlecht, mat=TRUE)
##     item    group1 vars  n     mean       sd median  trimmed    mad
## X11    1 Maennlich    1 16 181.0625 4.711245  182.5 181.4286 3.7065
## X12    2  Weiblich    1 77 167.6364 6.084729  168.0 167.4286 5.9304
##     min max range       skew   kurtosis        se
## X11 170 187    17 -0.8400052 -0.1343342 1.1778114
## X12 155 186    31  0.3363957 -0.1289078 0.6934192

In diesem Video zeige ich, wie das in R funktioniert:

Übung

Nutzen Sie den WPStudisDatensatz und berechnen Sie:
– Median und Standardabweichung der Schuhgrösse der Studierenden
– Vergleichen Sie den Mittwelwert der Schuhgrösse von männlichen und weiblichen Studierenden
– Legen Sie im WPStudis Datensatz eine neue Variable an, die die Körpergröße in Metern angibt

Die Lösung zu dieser Übungsaufgabe gibt es im neuen Buch Statistik mit R & RStudio.

Häufigkeitstabellen

Absolute Häufigkeiten

Die Funktion table() in R wird verwendet, um eine Häufigkeitstabelle der Stufen einer kategorialen Variable oder eines Faktors zu erstellen. Sie zählt die Anzahl jeder Stufe der Variablen und gibt eine Tabelle zurück, die die Häufigkeit jeder Stufe anzeigt.

Wenn Sie zum Beispiel eine kategoriale Variable namens group haben, können Sie table(group) verwenden, um eine Häufigkeitstabelle zu erstellen, die die Anzahl der Vorkommen jeder Stufe anzeigt. Die Ausgabe ist eine Tabelle, die die Anzahl der Beobachtungen für jede Stufe der Variablen anzeigt.

Hier am Beispiel der Variable Sternzeichen aus dem WPStudis Datensatz.

table(WPStudis$F6_Sternzeichen)
## 
##     Fische   Jungfrau      Krebs      Loewe   Schuetze   Skorpion 
##          8         10          5          8          5          8 
##  Steinbock      Stier      Waage Wassermann     Widder   Zwilling 
##          1          9         10          8         10         11

Relative Häufigkeiten

Die Funktion prop.table() in R wird verwendet, um eine mit der Funktion table() erstellte Häufigkeitstabelle in eine Tabelle mit relativen Häufigkeiten umzuwandeln. Die Funktion muss immer auf ein table() Objekt angewendet werden.

Wenn Sie beispielsweise eine kategoriale Variable namens Gruppe mit drei Stufen (A, B und C) haben, können Sie mit table(group) eine Häufigkeitstabelle erstellen, die die Anzahl der Vorkommen jeder Stufe anzeigt, und dann prop.table(table(group)) verwenden, um diese Häufigkeitstabelle in eine Tabelle mit relativen Häufigkeiten umzuwandeln. Die Ausgabe ist dann eine Tabelle, die den relativen Anteil der Beobachtungen für jede Stufe der Variablen anzeigt.

prop.table(table(WPStudis$F6_Sternzeichen))
## 
##     Fische   Jungfrau      Krebs      Loewe   Schuetze   Skorpion 
## 0.08602151 0.10752688 0.05376344 0.08602151 0.05376344 0.08602151 
##  Steinbock      Stier      Waage Wassermann     Widder   Zwilling 
## 0.01075269 0.09677419 0.10752688 0.08602151 0.10752688 0.11827957

Wenn Sie die Ausgabe als Prozentwerte wollen, dann können Sie diese einfach mit 100 multiplizieren lassen. Falls Sie die vielen Nachkommastellen stören, dann können Sie diese mit dem Befehl round() noch runden lassen. Die Funktion round() in R wird verwendet, um einen numerischen Wert oder einen Vektor von numerischen Werten auf eine bestimmte Anzahl von Dezimalstellen zu runden. Sie braucht zwei Argumente: die zu rundende Zahl oder den Zahlenvektor und die Anzahl der Dezimalstellen, auf die gerundet werden soll.

Wenn Sie beispielsweise eine Zahl namens x haben, die gleich 3,14159 ist, können Sie round(x, 2) verwenden, um sie auf 2 Dezimalstellen zu runden, was 3,14 ergibt.

Hier nun alles zusammen angewendet auf unser Beispiel, ergibt die prozentualen Häufigkeiten je Sternzeichen mit je zwei Nachkommastellen.

round(100*prop.table(table(WPStudis$F6_Sternzeichen)),2)
## 
##     Fische   Jungfrau      Krebs      Loewe   Schuetze   Skorpion 
##       8.60      10.75       5.38       8.60       5.38       8.60 
##  Steinbock      Stier      Waage Wassermann     Widder   Zwilling 
##       1.08       9.68      10.75       8.60      10.75      11.83

In diesem Video zeige ich, wie das in R funktioniert:

Kreuztabellen

In R können Sie mit der Funktion table() eine Kreuztabelle erstellen, die auch als Kontingenztabelle bezeichnet wird. Eine Kontingenztabelle wird verwendet, um die Beziehung zwischen zwei oder mehr kategorialen Variablen zusammenzufassen, wobei die Häufigkeit jeder Kombination von Stufen angezeigt wird.

Wenn Sie zum Beispiel zwei kategoriale Variablen mit den Namen group1 und group2 haben, können Sie eine Kreuztabelle erstellen, indem Sie table(group1, group2) aufrufen. Die Ausgabe ist eine Matrix, die die Häufigkeit der einzelnen Kombinationen der Stufen von Gruppe1 und Gruppe2 anzeigt.

Hier ein Beispiel aus dem WPStudis Datensatz:

table(WPStudis$F7_Brille, WPStudis$F3_Geschlecht)
##       
##        Maennlich Weiblich
##   Nein        14       39
##   JA           2       37

Nun wollen wir wieder die relativen Prozente berechnen und nutzen dazu wieder die prop.table Funktion. Bei einer Kontingenztabelle gibt es nun aber drei Möglichkeiten relative Häufigkeiten zu berechnen.

Variante 1: Alle Werte als Bezugsgröße

round(100*prop.table(table(WPStudis$F7_Brille, WPStudis$F3_Geschlecht)))
##       
##        Maennlich Weiblich
##   Nein        15       42
##   JA           2       40

Dies gibt uns die Prozentwerte der jeweiligen 4 Gruppen (bezogen auf alle Studierenden). Zum Beispiel wissen wir nun, dass 15 % der Studierenden männlich sind und keine Brille tragen.

Mit der Erweiterung ,1 beziehungsweise ,2 können nun die relativen Zeilenprozente bzw. Spaltenprozente berechnet werden.

Variante 2: Zeilensummen als Bezugsgröße

round(100*prop.table(table(WPStudis$F7_Brille, WPStudis$F3_Geschlecht),1))
##       
##        Maennlich Weiblich
##   Nein        26       74
##   JA           5       95

Hier wird pro Zeile gerechnet, d. h. jede Zeile ergibt 100 %. Wir können nun also zum Beispiel sagen, dass von allen Brillenträgern (Zeile “JA”) nur rund 5 % männlich sind.

Variante 3: Spaltensummen als Bezugsgröße

round(100*prop.table(table(WPStudis$F7_Brille, WPStudis$F3_Geschlecht),2))
##       
##        Maennlich Weiblich
##   Nein        88       51
##   JA          12       49

Dies sagt uns nun, dass von den männlichen Studierenden nur 12 % eine Brille tragen.

Welche der drei Varianten die richtige ist, lässt sich dabei nicht pauschal sagen und hängt von der Fragestellung ab.

In diesem Video zeige ich, wie das in R funktioniert:

Korrelation

Grundsätzlich gibt es in R mehrere Möglichkeiten (wie immer) Korrelationen zu berechnen. Die cor() sowie cor.test() Funktionen sind ein Grundbestandteil von R. Weitere Korrelationsfunktionen sind in vielen Packages enthalten, z. B. rcorr() im Hmisc package.

Pearson Korrelation

Die Funktion cor() in R wird zur Berechnung des Korrelationskoeffizienten zwischen zwei oder mehreren numerischen Variablen verwendet. Die Korrelation misst die Stärke und Richtung der linearen Beziehung zwischen zwei Variablen.

Wenn Sie zum Beispiel zwei numerische Vektoren mit den Namen x und y haben, können Sie cor(x, y) verwenden, um den Pearson-Korrelationskoeffizienten zwischen den beiden Variablen zu berechnen. Die Ausgabe ist eine einzelne Zahl zwischen -1 und 1, wobei -1 für eine perfekte negative Korrelation, 0 für keine Korrelation und 1 für eine perfekte positive Korrelation steht.

Sie können cor() auch auf einen ganzen Datensatz anwenden, in diesem Fall wird die Korrelationsmatrix für alle Variablenpaare berechnet.

cor(WPStudis$F4_Koerpergroesse, WPStudis$F5_Schuhgroesse, method="pearson")
## [1] 0.7253853

Rangkorrelation

Sind die Variablen nicht metrisch skaliert, sondern ordinal (z. B. Rangfolgen), sollten Sie eine Rangkorrelation, wie Kendall’s Tau oder Spearmans Rho verwenden.

In R können Sie den Korrelationskoeffizienten Kendall’s tau mit der Funktion cor() und dem Argument method = “kendall” berechnen. Wenn Sie beispielsweise zwei numerische Vektoren mit den Namen x und y haben, können Sie cor(x, y, method = “kendall”) verwenden, um den Korrelationskoeffizienten Kendall’s tau zwischen den beiden Variablen zu berechnen. Auch hier ist die Ausgabe eine einzelne Zahl zwischen -1 und 1, wobei -1 für eine perfekte negative Korrelation, 0 für keine Korrelation und 1 für eine perfekte positive Korrelation steht.

Zur weiteren Interpretaion des Korrelationskoeffizienten sind die Konventionen von Cohen hilfreich. Nach Cohen sollten die folgenden Konventionen zur Interpretation der Größe des Korrelationskoeffizienten verwendet werden:

r = 0,1: eine geringe Korrelation
r = 0,3: eine mäßige Korrelation
r = 0,5: eine große Korrelation

Es ist wichtig zu bedenken, dass diese Konventionen auf Cohens subjektiver Interpretation dessen beruhen, was eine kleine, mittlere oder große Korrelation ausmacht. Diese Konventionen sind nicht allgemein anerkannt, und die tatsächliche Größe des Korrelationskoeffizienten hängt von dem jeweiligen Kontext und der Art der Daten ab.

Im folgenden Beispiel berechnen wir die Korrelation der Variablen “Zufriedenheit mit dem Studium” und “Zufriedenheit mit dem Leben”. Beides sind Ergebnisse eines Fragebogen-Items, das eine 5-stufige Likert-Skala nutzt von 1 = sehr unzufrieden bis 5 = sehr zufrieden. Üblicherweise werden solche Skalen als metrisch angenommen und eine Pearson Korrelation gerechnet. Man könnte hier jedoch durchaus auch argumentieren, dass tendenziell eher eine ordinale Skalierung vorliegt und daher rechnen wir nun eine Rangkorrelation.

Wichtiger Hinweis:

Wir müssen R sagen, was mit den fehlenden Werten passieren soll. Das Argument use=“complete.obs” sorgt dafür, dass nur Datensätze, die “complete” also ohne fehlende Werte sind, verwendet werden. Auch für die Nutzung von Kendall’s Tau müssen beide Variablen als numeric formatiert sein (auch wenn ordinale Variablen häufig als Faktoren formatiert sind).

cor(WPStudis$F21_02_Zufriedenheit_Studium ,WPStudis$F21_01_Zufriedenheit_Leben,use="complete.obs",  method="kendall")
## [1] 0.3073518

**Signifikanztest für Korrelationskoeffizienten*

Im Folgenden wollen wir feststellen, ob die Korrelation zwischen zwei Variablen statistisch signifikant ist. Dies ist immer dann von Bedeutung, wenn wir die Korrelation nur auf Basis einer Stichprobe berechnet haben und nun Rückschlüsse auf eine größere Population ziehen wollen.

In R wird die Funktion cor.test() verwendet, um einen Korrelationstest durchzuführen. Dabei handelt es sich um einen statistischen Test, mit dem festgestellt werden kann, ob eine signifikante Korrelation zwischen zwei Variablen besteht. Die Funktion cor.test() benötigt zwei Argumente: die beiden zu testenden Variablen, die zu verwendende Korrelationsmethode (Pearson, Kendall oder Spearman).

Hier angewendet auf unser Beispiel.

cor.test(WPStudis$F21_02_Zufriedenheit_Studium ,WPStudis$F21_01_Zufriedenheit_Leben, method ="kendall")
## 
##  Kendall's rank correlation tau
## 
## data:  WPStudis$F21_02_Zufriedenheit_Studium and WPStudis$F21_01_Zufriedenheit_Leben
## z = 3.2087, p-value = 0.001333
## alternative hypothesis: true tau is not equal to 0
## sample estimates:
##       tau 
## 0.3073518

Die Funktion gibt, neben anderen Informationen, die Teststatistik, den p-Wert und den Stichprobenumfang aus. Am einfachsten ist die Intepretation des p-Wertes. Dieser gibt die Wahrscheinlichkeit an, eine solche Korrelation (von 0.3) in der Stichprobe zu finden unter der Annahme, dass es in Wirklichkeit (also in der Population) gar keine Korrelation zwischen den Variablen gibt. Diese ist hier sehr gering (kleiner als 0,01 oder 1 %), daher können wir die These (die sog. Nullhypothese) verwerfen und sagen, dass wir uns sehr sicher sind, dass es eine Korrelation in der Population gibt.

Wissenschaftlich ausgedrückt würden wir sagen, dass eine positive mittlere Korrelation von .3 vorliegt, die auf dem 1 %-Niveau signifikant ist.

Sie ermöglicht es Ihnen zu testen, ob der Korrelationskoeffizient von Null verschieden ist, was darauf hinweisen würde, dass eine Beziehung zwischen den beiden Variablen besteht. Außerdem können Sie damit verschiedene Korrelationskoeffizienten vergleichen, was beim Testen mehrerer Variablen oder beim Vergleich der Korrelation zwischen verschiedenen Datengruppen nützlich sein kann.

Es ist wichtig zu beachten, dass die Funktion cor.test() davon ausgeht, dass die Variablen normalverteilt sind. Wenn die Variablen nicht normalverteilt sind, sollten Sie nichtparametrische Korrelationstests, wie den Korrelationskoeffizienten nach Kendall oder Spearman, verwenden.

In diesem Video zeige ich, wie das in R funktioniert:

Übung

Nutzen Sie den Datensatz WPStudis:

  • Gibt es einen Zusammenhang zwischen Anzahl gesendeter WhatsApp und der Anzahl der Facebook Freunde?
  • Gibt es einen Zusammenhang zwischen dem Alter und dem benötigten Einkommen zum Glücklichsein (F20)?

Die Lösung zu dieser Übungsaufgabe gibt es im neuen Buch Statistik mit R & RStudio.


 

Lizenz

Statistik Grundlagen Copyright © Patrick Planing. Alle Rechte vorbehalten.