R Anleitungen

R: Deskriptive Statistik

R hat eine breite Bandbreite an Werkzeugen, mit denen deskriptive Statistiken berechnet werden können.Die einfachste Art eine ist die Verwendung der Funktion sapply(), die eine Funktion (beispielsweise zur Berechnung des Mittelwerts) auf den Datensatz ausführt:

R Code
sapply(Daten, mean, na.rm=TRUE)

Neben mean für den arithmetische Mittelwert gibt es noch eine Reihe weitere Funktionen zur Berechnung anderer deskriptiver Statitsiken:

  • median(): Der Median
  • quantile(): Quantile (die Art des Quantils kann selbst angegeben werden)
  • sd(): Standardabweichung
  • var(): Varianz
  • min() und max(): Das Minimum bzw. Maximum der Daten
  • range(): Die Spannweite (max(x) - min(x))
  • IQR(): Der Interquartilsabstand

Mehrere Statistiken

Anstatt nur jeweils eine Statistik anzugeben, will man oft erst einmal schauen, wie sich die Daten verhalten. Die Anzahl der fehlenden Werte, den Mittelwert, Median, Minimum und Maximum, sowie das 25. und 75. Quantil berechnet summary() in einem Rutsch:

R Code
summary(Daten)

#  Sepal.Length    Sepal.Width     Petal.Length    Petal.Width
# Min.   :4.300   Min.   :2.000   Min.   :1.000   Min.   :0.100
# 1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300
# Median :5.800   Median :3.000   Median :4.400   Median :1.300
# Mean   :5.839   Mean   :3.035   Mean   :3.813   Mean   :1.206
# 3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100   3rd Qu.:1.800
# Max.   :7.900   Max.   :4.400   Max.   :6.900   Max.   :2.500
# NA's   :15      NA's   :15      NA's   :15      NA's   :15

Empfehlenswert ist auch die Funktion describe() aus den Paket psych. Sie berechnet noch zusätzlich die Standardabweichung und den Standardfehler des Mittelwerts (se), die Mittlere absolute Abweichung vom Median (mad), die Schiefe und Kurtosis, sowie den getrimmten Mittelwert (trimmed).

R Code
describe(Daten, na.rm=TRUE)

#              vars   n mean   sd median trimmed  mad min max range  skew kurtosis   se
# Sepal.Length    1 150 5.84 0.83   5.80    5.81 1.04 4.3 7.9   3.6  0.31    -0.61 0.07
# Sepal.Width     2 150 3.06 0.44   3.00    3.04 0.44 2.0 4.4   2.4  0.31     0.14 0.04
# Petal.Length    3 150 3.76 1.77   4.35    3.76 1.85 1.0 6.9   5.9 -0.27    -1.42 0.14
# Petal.Width     4 150 1.20 0.76   1.30    1.18 1.04 0.1 2.5   2.4 -0.10    -1.36 0.06

Nach Gruppen aufteilen

Oft hat man ein Studiendesign, bei dem verschiedene Gruppen separat betrachtet werden sollen. Hierzu kann man eine andere Funktion aus dem psych Paket nehmen, describeBy(), welche die deskriptiven Statistiken separat für jede Gruppe berechnet:

R Code
describeBy(Daten, group = Daten$Species)

#  Descriptive statistics by group 
# group: setosa
#              vars  n mean   sd median trimmed  mad min max range skew kurtosis   se
# Sepal.Length    1 50 5.01 0.35    5.0    5.00 0.30 4.3 5.8   1.5 0.11    -0.45 0.05
# Sepal.Width     2 50 3.43 0.38    3.4    3.42 0.37 2.3 4.4   2.1 0.04     0.60 0.05
# Petal.Length    3 50 1.46 0.17    1.5    1.46 0.15 1.0 1.9   0.9 0.10     0.65 0.02
# Petal.Width     4 50 0.25 0.11    0.2    0.24 0.00 0.1 0.6   0.5 1.18     1.26 0.01
# Species*        5 50 1.00 0.00    1.0    1.00 0.00 1.0 1.0   0.0  NaN      NaN 0.00
# --------------------------------------------------------------------------------------------------------- 
# group: versicolor
#              vars  n mean   sd median trimmed  mad min max range  skew kurtosis   se
# Sepal.Length    1 50 5.94 0.52   5.90    5.94 0.52 4.9 7.0   2.1  0.10    -0.69 0.07
# Sepal.Width     2 50 2.77 0.31   2.80    2.78 0.30 2.0 3.4   1.4 -0.34    -0.55 0.04
# ...

describeBy() kann auch nach mehreren Gruppen und sogar Formeln deskriptive Statistiken berechnen:

R Code
# Mehrere Gruppen
describeBy(Daten, group = list(Daten$Gruppe1, Daten$Gruppe2, Daten$Gruppe3))

# Mit einer Formel
describeBy(y ~ A + B, data=Daten)