Deskriptive Statistik 1
Statistik: Übungen
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.
Die Variable “gruppe” beschreibt, in welcher Kursgruppe die Studierenden sind. In welcher Gruppe sind die meisten Personen?
Problem: InR
gibt es keine dezidierte. Wir verwenden stattdessen die Funktionmodus()
-Funktiontable()
, 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-Variablenerstis
. Diese Spalte spricht man – nicht nur hier – so an:erstis$gruppe
– also den Namen der Datensatzvariablen und der Spalte, getrennt durch ein Dollarzeichen.Wie alt sind die Studierenden im Durchschnitt?
Kommt Ihnen das Ergebnis realistisch vor? Werfen Sie einen Blick auf die Daten des Datensatzes.Erstellen Sie einen Boxplot für das Alter. Das können Sie leicht mit der Funktion
boxplot
tun, der Siedatensatz$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.
InR
werden fehlende Werte standardmäßig mitNA
codiert, nicht mit “-9” oder anderen Werten. Wir ersetzen in unserer Variablen (nicht in der csv-Datei) in der Spalte “alter” daher -9 durchNA
2. Dazu verwenden wir die Funktionreplace()
. 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 Variablenalter_mv_removed
:
<- replace(erstis$alter, erstis$alter == -9, NA) alter_mv_removed
- Berechnen Sie den Mittelwert der neuen Variablen. Was stellen Sie fest?
Das Ergebnis ist noch immer nicht korrekt. Warum? Weil die Funktionmean()
dieNA
-Werte noch nicht ignoriert. Das müssen wir ihr in einem zweiten Parameterna.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 mitT
abgekürzt werden; GegenstückFALSE
,F
)
mean(alter_mv_removed, na.rm = TRUE)
Aufgabe 2
Erstellen Sie auch für die neue Variable einen Boxplot. Vergleichen Sie mit dem ursprünglichen!
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.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
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 daherna.rm = T
angeben (s.o.).Überlegen Sie: Warum unterscheiden sich die Standardabweichungen so stark?
Berechnen Sie händisch die Standardabweichung für die folgenden Werte: 20, 22, 24, 25
Wie können wir die Standardabweichung der letzten Teilaufgabe mit der
sd()
-Funktion berechnen?
Die Funktionsd()
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 Funktionc()
. 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 vonc()
in einer Variablen abspeichern und diese dann ansd()
übergeben. Wir können aber den Funktionsaufruf auch direkt in die Parameterliste vonsd()
schreiben.R
ruft zuerst die Funktionc()
auf, die einen Vektor erzeugt. Dieser Vektor wird dann von der Funktionsd()
verwendet, um die Berechnung durchzuführen.
sd(c(20, 22, 24, 25))
Footnotes
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 inR
einführt. Definitiv eine Empfehlung!↩︎Achtung:
NA
ist keine Zeichenkette und muss deshalb auch nicht in Anführungszeichen stehen.↩︎