Deskriptive Statistik – Grundlagen
Nachdem wir uns mit den Grundlagen von R beschäftigt haben und nun auch grundlegend mit Daten arbeiten können, wollen wir uns nun in die Datenanalyse begeben. Meist beginnt man mit der dekriptiven Statistik. Hierbei beschreibt man seine Daten mit verschiedenen statistischen Maßzahlen und visualisiert die Daten. In der deskriptiven Statistik werden noch keinen Aussagen über Zusammenhänge getroffen. Es geht rein um die Beschreibung der gewonnenen Daten.
Daten laden und summary()
Zuerst wollen wir unsere Daten laden. Wir werden wieder mit dem Datensatz der Deutschen Firmen arbeiten. Nachfolgend wollen wir uns noch einmal die summary() der Daten anzeigen lassen.
Data <- read.csv("Deutsche Firmen.csv")
summary(Data)
## Globaler.Rang Firmenname Verkauf Profit
## Min. : 14.0 Length:50 Min. : 1.50 Min. :-6.90
## 1st Qu.: 244.0 Class :character 1st Qu.: 8.20 1st Qu.: 0.30
## Median : 624.5 Mode :character Median : 20.55 Median : 0.60
## Mean : 788.6 Mean : 41.70 Mean : 1.92
## 3rd Qu.:1330.5 3rd Qu.: 54.38 3rd Qu.: 2.15
## Max. :1921.0 Max. :254.00 Max. :28.60
## Vermögen Martkwert
## Min. : 2.1 Min. : 0.40
## 1st Qu.: 11.1 1st Qu.: 6.65
## Median : 39.0 Median : 11.60
## Mean : 152.7 Mean : 25.27
## 3rd Qu.: 109.1 3rd Qu.: 34.30
## Max. :2652.6 Max. :103.90
Minimum und Maximum
Die Summary() gibt uns schon einen guten Überblick über die Daten und berechnet uns wichtige grundlegende statistische Maßzahlen. Wir wollen nun isoliert das Minimum sowie das Maximum der Verkaufszahlen erhalten. Hierzu nutzen wir die Funktionen min() und max(). Um die Position (Zeilennummer) des Minimums und Maximums zu erhalten können wir die Funktionen which.min() und which.max() nutzen. Möchte man das Ganze in einer Ausgabe erhalten, so kann man sich mit der range()-Funktion Minimum und Maximum gemeinsam ausgeben lassen.
min(Data$Verkauf)
## [1] 1.5
which.min(Data$Verkauf)
## [1] 43
Data[43,2]
## [1] "Aareal Bank"
max(Data$Verkauf)
## [1] 254
which.max(Data$Verkauf)
## [1] 1
Data[1,2]
## [1] "Volkswagen Group"
range(Data$Verkauf)
## [1] 1.5 254.0
Median und Quantile
In der Statistik wollen wir die Ausprägung unserer Daten meist in einige Kennzahlen umwandeln um nachfolgend Vergleiche anzustellen. Hierzu kann man die Streumaße der Daten berechnen. Diese Streumaße geben uns einen Hinweis darüber in welcher Größenordnung die gemessenen Werte liegen und wie diese um einen zentralen Wert streuen. Prinzipiell unterscheiden wir 2 allgemeine Bezugspunkte sowie deren Streumaße:
Bezugspunkt | Streumaß |
---|---|
Median | Interquartilsabstand |
Mittelwert | Standardabweichung |
Ein wichtiges statistisches Maß ist der Median. Viele Publikationen nutzen Boxplots zur Visualisierung der Daten. Hierbei wird auch der Median eingezeichnet. Mit Boxplots werden wir uns aber noch intensiver beschäftigen. Der Median bezeichnet das 50. Perzentil unserer Daten oder anders gesagt: ordnen wir die Daten ihrer Größe nach, so liegt der Median genau in der Mitte. Er ist im Vergleich zum Mittelwert dementsprechend robuster bezüglich Ausreißern (nach oben als auch nach unten), da uns die Werte am Rand (sehr niedrige und sehr hohe Werte) für die Ermittlung des Medians nicht interessieren. Wir können den Median mit der Funktion median() berechnen.
median(Data$Verkauf)
## [1] 20.55
Nicht selten interessieren uns aber auch andere Perzentilen. Dabei ist eine Perzentile wie folgt zu interpretieren: liegt die 70. Perzentile eines Datensatzes z.B. bei 100, so liegen 70% der gemessenen Werte unter 100 und 30% der gemessenen Werte über 100. Die Perzentilen werden zum Beispiel viel in der Pädiatrie oder für die Referenzintervalle in der Laboratoriumsmedizin verwendet. Mit R können wir jede beliebige Perzentile berechnen. Dazu nutzen wir die quantile()-Funktion.
quantile(Data$Verkauf)
## 0% 25% 50% 75% 100%
## 1.500 8.200 20.550 54.375 254.000
Wie wir sehen gibt uns die Funktion in der Standardvariante (ohne weitere Argumente) die Perzentilen in 25%-Schritten an. Wir können aber auch jede beliebige Perzentile abfragen. Dazu müssen wir als Argument noch probs = verwenden. Nachfolgend geben wir die gewünschte Perzentile als Kommazahl ein. Für die 76. Perzentile zum Beispiel 0.76.
quantile(Data$Verkauf, probs = 0.76)
## 76%
## 57.88
Um mehrere spezielle Perzentilen mit einer Abfrage auszugeben, können wir wie in anderen Funktionen auch wieder die c()-Funktion verwenden.
quantile(Data$Verkauf, probs = c(0.13, 0.47, 0.96))
## 13% 47% 96%
## 3.692 19.618 151.736
Mithilfe der Funktion seq() können wir auch eine beliebige Sequenz von Perzentilen ausgeben. Beispielhaft zeige ich hier die Perzentilen in 10%- und 5%-Schritten.
quantile(Data$Verkauf, probs = seq(0,1, 0.1))
## 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
## 1.50 3.00 5.18 10.63 13.68 20.55 25.08 45.72 73.94 100.93 254.00
quantile(Data$Verkauf, probs = seq(0,1, 0.05))
## 0% 5% 10% 15% 20% 25% 30% 35% 40% 45%
## 1.500 2.690 3.000 4.805 5.180 8.200 10.630 12.635 13.680 18.080
## 50% 55% 60% 65% 70% 75% 80% 85% 90% 95%
## 20.550 23.510 25.080 33.955 45.720 54.375 73.940 88.000 100.930 146.075
## 100%
## 254.000
Interquartils-Abstand (IQR)
Nicht selten benötigt man für seine Analysen auch den Interquartils-Abstand. Hierzu gibt es eine eigene Funktion in R, die etwas anders als die meisten Funktionen heißt: IQR() (dabei steht IQR für Inter-Quartile-Range). Der Interquartils-Abstand gibt uns die Differenz zwischen der 75. und der 25. Perzentile an.
IQR(Data$Verkauf)
## [1] 46.175