8 Lagemaße
Lagemaße oder Lokalisationsmaße geben durch eine einzige Zahl an, “wo die Daten liegen”. Es handelt sich also um eine starke Informationsverdichtung. Wir behandeln drei Lagemaße, nämlich den Mittelwert, den Median und den Modus.
8.1 Mittelwert
Der Mittelwert wird auch Mittel, Durchschnitt oder arithmetisches Mittel genannt, im Englischen heißt er mean oder average. Als Notation hat sich ein Querstrich über der Variable eingebürgert, also z.B.
Der Mittelwert ergibt sich, indem man die Summe aller Werte durch die Anzahl der Beobachtungen dividiert,
Beispiel:
Wir laden den Datensatz mocksoep
. Er enthält einen (aus Datenschutzgründen) verrauschten kleinen Auszug aus dem Sozio-ökonomischen Panel SOEP. Das SOEP ist ein Längsschnittdatensatz, der in der ökonomischen Forschung in Deutschland oft verwendet wird. Er enthält Angaben über sehr viele Personen und Haushalte.
Die gleichen Personen und Haushalte werden jedes Jahr erneut interviewt, so dass man Informationen über die Veränderungen in einem Zeitraum von bis zu fast 40 Jahren gewinnt. Der mocksoep
-Datensatz enthält nur Angaben von 2000 bis 2020. Eine Beschreibung der Variablen finden Sie im Anhang Anhang D.
<- read_csv("../data/mocksoep.csv",
soep col_types = "nnnnfnnnffnnncnnnnn")
names(soep)
[1] "id" "hid" "year" "age" "sex" "npers"
[7] "educ" "hours" "empllev" "region" "pregov" "postgov"
[13] "earn" "sport" "height" "weight" "healthsat" "ndoctor"
[19] "lifesat"
Wir filtern aus dem Datensatz alle Beobachtungen von Männern aus dem Jahr 2020 heraus und ziehen dann mit dem pull
-Befehl die Variable earn
(Lohneinkommen) als Vektor heraus. Dieser Vektor wird unter dem Namen lohnM
gespeichert. Das gleiche tun wir für Frauen und speichern deren Lohnvektor unter dem Namen lohnF
.
<- soep %>%
lohnM filter(year == 2020, sex == "M") %>%
pull(earn)
<- soep %>%
lohnF filter(year == 2020, sex == "F") %>%
pull(earn)
Wir berechnen das mittlere Lohneinkommen von Männern und Frauen im Jahr 2020: Für die Männer betrug es
mean(lohnM)
[1] 39489.32
und für die Frauen war es
mean(lohnF)
[1] 19365.24
Der durchschnittliche Lohn der Frauen im Jahr 2020 war also 51 Prozent niedriger als bei den Männern.
In diesem Beispiel haben wir das Durchschnittslohneinkommen für die beiden Gruppen “Männer” und “Frauen” berechnet. Die Gruppen wurden nach der Variable sex
getrennt. Die tidyverse
-Befehle erlauben eine sehr effiziente Art, für alle Gruppen auf einmal den Mittelwert (oder auch andere Kennzahlen) zu berechnen. Dazu nutzen wir die beiden Funktionen group_by
und summarise
, die wir bereits im Kapitel 5 kennen gelernt haben.
%>%
soep filter(year == 2020) %>%
group_by(sex) %>%
summarise(mittelwert = mean(earn))
# A tibble: 2 × 2
sex mittelwert
<fct> <dbl>
1 F 19365.
2 M 39489.
Dieser Befehl liefert als Ausgabe einen neuen Dataframe, der in der linken Spalte die Ausprägungen der Gruppierungsvariable (sex
) und in der rechten Spalte die zugehörigen Mittelwerte zeigt.
8.2 Lineare Transformationen
Angenommen, alle Beobachtungen
Beachten Sie, dass für nicht-lineare Transformationen der Zusammenhang der Mittelwerte nicht so einfach ist. Wenn beispielsweise alle Werte
8.3 Median
Der Median (engl. median) ist der Wert “in der Mitte”. Gelegentlich wird der Median auch Zentralwert genannt. Grob gesagt, teilt der Median die Beobachtungen
In der tatsächlichen Anwendung ist eine solche exakte Aufteilung nicht immer möglich, oder es gibt mehrere Wert, die zu der Aufteilung führen. Eine gängige und eindeutige technische Definition des Medians lautet:
Seien
Wir kommen später in Kapitel Kapitel 12 noch genauer auf diese Definition zurück.
Der Median kann nicht für nominal skalierte Variablen berechnet werden, weil nominal skalierte Werte nicht der Größe nach geordnet werden können. Für ordinal oder metrisch skalierte Werte kann der Median hingegen problemlos als Lagemaß verwendet werden.
Beispiel:
Die beiden Datenvektoren lohnM
und lohnF
haben wir bereits im vorherigen Abschnitt erstellt. Der Median des Lohneinkommens der Männer beträgt
median(lohnM)
[1] 25356.5
und für die Frauen erhält man
median(lohnF)
[1] 11187
Der Medianlohn der Frauen war also im Jahr 2020 um 55.9 Prozent niedriger als der Medianlohn der Männer.
Auch hier ist eine Berechnung mit der Funktion summarise
möglich:
%>%
soep filter(year == 2020) %>%
group_by(sex) %>%
summarise(Med = median(earn))
# A tibble: 2 × 2
sex Med
<fct> <dbl>
1 F 11187
2 M 25356.
8.4 Modus
Der Modus (engl. mode or modal value) ist der Wert, der am häufigsten vorkommt,
Der Modus kann im Gegensatz zum Median und Mittelwert auch für nominal skalierte Variablen bestimmt werden.
Beispiel:
Die nominal skaliert Variable region
gibt an, in welchem Bundesland das Individuum lebt. Für den Modus gibt es keine Funktion in R. Man könnte sich zwar selber eine Funktion dafür schreiben, aber den Modus aus einer Tabelle abzulesen, ist so einfach, dass eine Extra-Funktion nicht nötig ist.
table(soep$region)
BE HE RP NW BW BB SH BY HB MV HH NI SN
17534 32502 22238 96442 55580 19368 15427 71362 3494 10757 7485 43466 32009
ST TH SL
18127 19009 4918
Man erkennt sofort, dass das Bundesland NW (also Nordrhein-Westfalen) am häufigsten vorkommt und deswegen der Modus der Variable region
ist. Es gibt auch einen Befehl, mit dem der höchste Wert gesucht und ausgegeben werden kann:
which.max(table(soep$region))
NW
4
8.5 Die Option na.rm
Wie bereits in Abschnitt 3.4 erwähnt, kommen fehlende Werte sehr oft vor. Sie werden in R durch NA
(not available) gekennzeichnet. Selbst wenn nur eine Beobachtung einer Variable fehlt, lassen sich die Lagemaße im Allgemeinen nicht mehr berechnen. Zum Beispiel muss für den Mittelwert die Summe aller Variablenwerte bekannt sein. Schon wenn nur ein einziger Wert fehlt, ist die Summe nicht mehr bekannt und der Mittelwert kann nicht berechnet werden.
Eine einfache und pragmatische Vorgehensweise auch bei fehlenden Werten Lagemaße zu bestimmen, besteht darin, die fehlenden Werte zu entfernen und das Lagemaß nur für die tatsächlich beobachteten Werte zu berechnen. Bei einem Populationsumfang von
Fast alle R-Funktionen zur Berechnung von Kennzahlen bieten die Option na.rm
(not availables remove). Wird diese Option auf TRUE
gesetzt, dann entfernt R vor der Berechnung der Kennzahl die fehlenden Werte. Wenn man die Option na.rm=TRUE
nicht setzt, gilt der Standardwert FALSE
und als Ergebnis erhält man NA
(sofern es fehlende Werte gibt).
Beispiel:
Aus dem Dataframe soep
ziehen wir die Variable ndoctor
heraus und speichern sie in dem Vektor arzt
. Die Variable gibt an, wie viele Arztbesuche die befragte Person im letzten Quartal gemacht hat.
<- soep$ndoctor arzt
Nicht alle Personen haben die Zahl ihrer Arztbesuche angegeben. Die Anzahl der fehlenden Werte beträgt
sum(is.na(arzt))
[1] 7057
Wenn die Funktion mean
ohne die Option zum Entfernen der fehlenden Werte ausgeführt wird, ergibt sich als Ergebnis:
mean(arzt)
[1] NA
Setzt man die Option na.rm=TRUE
erhält man die durchschnittliche Zahl der Arztbesuche im letzten Quartal von allen Personen, die diese Frage beantwortet haben.
mean(arzt, na.rm=TRUE)
[1] 9.468505
Auch für die meisten anderen Kennzahlen kann diese Option gesetzt werden, beispielsweise für den Median:
median(arzt, na.rm=TRUE)
[1] 4
8.6 Optimierung
Welches Lagemaß kann die Lage der Daten optimal anzeigen? Diese Frage kann man nur beantworten, wenn man ein Optimalitätskriterium definiert. Da im Allgemeinen natürlich nicht alle Werte
Man wählt das Lagemaß
so aus, dass die Summe der quadrierten Fehler minimiert wird. Bei diesem Optimierungsproblem ist der Mittelwert das optimale Lagemaß, denn wenn wir die Ableitung der Zielfunktion nach auf Null setzen, ergibt sich Diese Herleitung zeigt, dass das arithmetische Mittel (der Durchschnitt) die Summe der quadrierten Abweichungen minimiert.Man wählt das Lagemaß
so aus, dass die Summe der Absolutbeträge der Fehler minimiert wird. Wenn man dieses Optimierungsproblem löst, ergibt sich als optimales Lagemaß der Median. Für die Herleitung splitten wir die Summe der Beträge in zwei Summen auf, nämlich Die erste Summe auf der rechten Seite der Gleichung umfasst alle die kleiner (oder gleich) als sind, die Beträge sind darum in dieser Summe . Die zweite Summe umfasst alle . Zum Optimieren leiten wir die rechte Seite nach ab und setzen die Ableitung auf 0, Im Optimum müssen also genauso viele Werte unter (oder auf) liegen wie über . Mit anderen Worten, muss die Daten in zwei Hälften unterteilen, und genau das macht der Median. (Wir ignorieren hier zur Vereinfachung den Fall, dass eine exakte Aufteilung in zwei gleich große Gruppen nicht möglich ist.)
Der Mittelwert und der Median sind also nicht nur intuitiv als Lagemaße plausibel, sondern sie haben auch eine rationale Grundlage als Lösung eines Optimierungsproblems.