Nun werden einige Funktionen vorgestellt, mit denen deskriptive Statistiken ausgegeben werden.
Welche Maßzahlen zentraler Tendenz und der Verteilung gibt es?
Spannweite (Range), Interquartilsabstand, Quartile
Varianz, Standardabweichung
Die Funktionen für Minimum, Maximum und Spannweite sind:
# Minimum
min(pss$wkhtot)
## [1] 6
# Maximum
max(pss$wkhtot)
## [1] 65
# Spannweite / Range
range(pss$wkhtot)
## [1] 6 65
Nun versuche es für die Variable stfdem
. Was passiert?
min(pss$stfdem)
## [1] NA
Es gibt eine Fehlermeldung, dass der Wert nicht berechnet werden kann. Denn in dieser Variable gibt es missing values (NA's
). Manche Personen haben hier also keinen Wert angegeben und dies wird in R mit NA
gekennzeichnet! Daher kann kein Wert berechnet werden.
\(\rightarrow\) Um dennoch einen Wert berechnen zu können, müssen missing values exkludiert werden.
min(
pss$stfdem,
na.rm = TRUE
)
## [1] 0
## na.rm: NA = missing values, rm = remove
Für den Median und Mittelwert gibt es jeweils R-Base Funktionen, die direkt genutzt werden können:
## Median
median(
pss$stfdem,
na.rm = TRUE
)
## [1] 5
## arithm. Mittelwert
mean(
pss$stfdem,
na.rm = TRUE
)
## [1] 4.657492
Für den Modus gibt es das nicht, man kann sich aber mit der Funktion table()
die Datentabelle einer Variable anzeigen lassen und daraus dann den Modus oder die Modi ablesen:
## Modus (no built-in function)
table(pss$stfdem)
##
## 0 1 2 3 4 5 6 7 8 9 10
## 226 268 436 618 754 850 631 522 338 179 83
max(table(pss$stfdem)) # nicht hilfreich bei bimodalen (etc.) Verteilungen
## [1] 850
Manchmal sollen von einer Variable verschiedene Bereiche ausgegeben werden, z.B. das Einkommen in Dezilen oder Quintilen. Hierfür wird die Funktion quantile()
genutzt. Diese wird dafür mit der Funktion seq()
kombiniert.
Die Funktion seq()
liefert eine Reihenfolge von Zahlen, die wir über die drei Argumente from, to und by festsetzen. Das from-Argument legt den Startwert fest, das to-Argument den Endwert und das by-Argument legt die Schritte fest. Wir gehen also im Beispiel von 0
zu 1
, wobei der Schritt jeweils 0.1
ist!
seq(
from = 0,
to = 1,
by = 0.1
)
seq(
by = 0.1,
to = 1,
from = 0
)
# wird die Standardreihenfolge (from-to-by) eingehalten, kann man die Argumentbeschriftung auslassen.
seq(
0,
1,
0.1
)
Nun können Dezile (0.1
-Schritt) ausgegeben werden:
quantile(
pss$stfdem,
probs = seq(
0,
1,
0.1
),
na.rm = TRUE
)
Was muss geändert werden, um Quintile ausgeben zu lassen?
Um Quintile zu erreichen, wird in (0.2)-Schritten gegangen, so dass wir fünf Werte von (0) bis (1) erhalten.
quantile(
pss$stfdem,
probs = seq(
0,
1,
0.2
),
na.rm = TRUE
)
Um sich eine Reihe an deskriptiven Werten ausgeben zu lassen, kann man ebenfalls die Funktion summary()
nutzen:
summary(pss$stfdem)
Weiter zu den Streumaßen!