Deskriptive Statistik 1

Statistik: Übungen

Author

Prof. Dr. Armin Eichinger

Published

14.09.2023

Aufgabe 1

Wir verwenden wieder den Datensatz “Erstis”, den Luhmann (2020)1 für eine Kohorte Studierender im ersten Semester erhoben hat (vgl. letzte Übung). Laden Sie den Datensatz.

Falls Sie es brauchen, finden Sie hier das Codebook für den Datensatz.

  1. Die Variable “gruppe” beschreibt, in welcher Kursgruppe die Studierenden sind. In welcher Gruppe sind die meisten Personen?

    Problem: In R gibt es keine dezidierte modus()-Funktion. Wir verwenden stattdessen die Funktion table(), die uns die Häufigkeiten bestimmter Werte ausgibt. Als Parameter erwartet sie den Namen der Variablen. In unserem Fall ist das die Spalte “gruppe” unserer Datensatz-Variablen erstis. Diese Spalte spricht man – nicht nur hier – so an: erstis$gruppe – also den Namen der Datensatzvariablen und der Spalte, getrennt durch ein Dollarzeichen.

  2. Wie alt sind die Studierenden im Durchschnitt?

    Kommt Ihnen das Ergebnis realistisch vor? Werfen Sie einen Blick auf die Daten des Datensatzes.

  3. Erstellen Sie einen Boxplot für das Alter. Das können Sie leicht mit der Funktion boxplot tun, der Sie datensatz$spalte als Parameter übergeben.

    Hier müssen wir etwas tiefer einsteigen. Wir entdecken (zumindest) einen Datenpunkt mit dem Wert “-9”, den wir auch in der tabellarischen Darstellung des Datensatzes mehrfach gesehen haben. Dieser Wert ist inhaltlich unrealistisch. Er wurde daher gewählt, um fehlende Werte anzuzeigen. Dummerweise geht er in die Berechnung mit ein und verzerrt das Ergebnis. Wir möchten ihn eigentlich lieber ignorieren.

    In R werden fehlende Werte standardmäßig mit NA codiert, nicht mit “-9” oder anderen Werten. Wir ersetzen in unserer Variablen (nicht in der csv-Datei) in der Spalte “alter” daher -9 durch NA2. Dazu verwenden wir die Funktion replace(). Diese erwartet drei Parameter, die wir vereinfacht so verstehen können: Wo wird ersetzt? Was wird ersetzt? Durch was wird es ersetzt? – Das Ergebnis speichern wir in einer neuen Variablen alter_mv_removed:

alter_mv_removed <- replace(erstis$alter, erstis$alter == -9, NA) 
  1. Berechnen Sie den Mittelwert der neuen Variablen. Was stellen Sie fest?

    Das Ergebnis ist noch immer nicht korrekt. Warum? Weil die Funktion mean() die NA-Werte noch nicht ignoriert. Das müssen wir ihr in einem zweiten Parameter na.rm = TRUE mitteilen. na.rm bedeutet, dass die fehlenden Werte (na - not available) entfernt (engl. remove; kurz rm) werden sollen. TRUE ist der logische Wert für wahr (könnte hier auch mit T abgekürzt werden; Gegenstück FALSE, F)
mean(alter_mv_removed, na.rm = TRUE)

Aufgabe 2

  1. Erstellen Sie auch für die neue Variable einen Boxplot. Vergleichen Sie mit dem ursprünglichen!

  2. Mit der Funktion hist() können Sie ein Histogramm erstellen. Rufen Sie die Funktion jeweils mit den beiden Variablen aus den beiden vorigen Teilaufgaben auf.

  3. Mit den zusätzlichen Parametern xlab, xlab, main können Sie eigene Bezeichnungen für X- und Y-Achse sowie den Titel des Diagramms angeben Am Beispiel der X-Achse sieht das dann so aus: xlab="Alter der Studierenden". Weitere Details finden Sie in der Dokumentation (z. B. über ?hist).

Aufgabe 3

  1. Wie stark streut das Alter der Studierenden? Berechnen Sie dazu für die beiden Variablen mit und ohne NA-Korrektur die Standardabweichung. Verwenden Sie dazu die Funktion sd(), der Sie als Parameter die entsprechende Variable übergeben. Für die Variable, die NA-Werte ausweist, müssen Sie diese ausdrücklich ignorieren und als zweiten Parameter daher na.rm = T angeben (s.o.).

  2. Überlegen Sie: Warum unterscheiden sich die Standardabweichungen so stark?

  3. Berechnen Sie händisch die Standardabweichung für die folgenden Werte: 20, 22, 24, 25

  4. Wie können wir die Standardabweichung der letzten Teilaufgabe mit der sd()-Funktion berechnen?

    Die Funktion sd() erwartet einen Parameter, der listenartig aufgebaut ist; einen sog. Vektor. Vektoren sind Listen von Werten gleichen Typs; also Zahlen oder auch Zeichenketten. Die Variablen, die wir bis eben dazu verwendet haben, waren nummerische Vektoren.

    Wie aber bringen wir unsere vier Zahlen in Vektor-Form? Dazu verwenden wir die Funktion c(). Diese erhält als Parameter (beliebig viele) Werte vom gleichen Datentyp – also beispielsweise vier ganze Zahlen – und macht einen Vektor daraus. In unserem Beispiel hat der Vektor vier Elemente.

    Wir könnten das Ergebnis von c() in einer Variablen abspeichern und diese dann an sd() übergeben. Wir können aber den Funktionsaufruf auch direkt in die Parameterliste von sd() schreiben. R ruft zuerst die Funktion c() auf, die einen Vektor erzeugt. Dieser Vektor wird dann von der Funktion sd() verwendet, um die Berechnung durchzuführen.

sd(c(20, 22, 24, 25))

Footnotes

  1. Luhmann, M. (2020). R für Einsteiger. Beltz. – Eine Einführung in R, die sich vor allem an (angehende) Sozialwissenschaftler:innen richtet, aber auch ausreichend allgemein in R einführt. Definitiv eine Empfehlung!↩︎

  2. Achtung: NA ist keine Zeichenkette und muss deshalb auch nicht in Anführungszeichen stehen.↩︎