Statistische Grundlagen mit R: Streuungsmaße

Nachdem ich mich im ersten Teil meiner Serie “Statistische Grundlagen mit R” mit Maßen der zentralen Tendenz beschäftigt habe, erkläre ich heute die Bedeutung verschiedener Steuungsmaße.

Streuungsmaße

Um einen Datenvektor möglichst treffend zu beschreiben, reicht die Kenntnis der Zentralitätsmaße in der Regel nicht aus. Stellen wir uns z.B. vor, dass an einer Grundschule ein Altpapiersammelwettbewerb durchgeführt wird, bei dem die drei Schulklassen, die am meisten Papier gesammelt haben Preise bekommen: die erstplatzierte Klasse 100€, die zweitplatzierte Klasse 50€ und die drittplatzierte Klasse 20€. Wenn wir uns vorstellen, dass die erstplatzierte Klasse insgesamt 800 kg, die zweitplatzierte Klasse 700 kg und die drittplatzierte Klasse 600 kg gesammelt habt, würde uns die Vergabe der Preise im Großen und Ganzen gerecht erscheinen. Stellen wir uns hingegen vor, dass die erstplatzierte Klasse 701 kg, die zweitplatzierte Klasse genau 700 kg und die drittplatzierte Klasse 699 kg Papier gesammelt hat, erscheint die Preisvergabe weniger angemessen zu sein, weil die Unterschiede zwischen den gesammelte Altpapiermengen äußerst klein sind und möglicherweise sogar auf Messungenauigkeiten (beim Wiegen des Papiers) zurückzuführen sind. Berechnen wir den Mittelwert für beide Szenarien, sehen wir jedoch keinen Unterschied; beide Mittelwerte sind identisch:

mean(c(600, 700, 800)) == mean(c(699, 700, 701))
## [1] TRUE

Mit Streuungsmaßen lässt sich, wie der Name schon sagt, die Streuung bzw. Entfernung der einzelnen Datenpunkte von einem Zentralitätsmaß beschreiben.

Spanne

Das wohl einfachste Streuungsmaß ist die Spanne (engl.: Range). Diese lässt sich berechnen, indem man den kleinsten Wert vom größen des Datenvektors abzieht:

spanne1 <- 800 - 600
spanne2 <- 701 - 699

Obwohl beide Datenvektoren denselben Mittelwert haben, unterscheiden sich die Spannen deutlich (200 vs. 2). Die Spanne ist als Streuungsmaß allerdngs nur sehr eingeschränkt zu gebrauchen, weil sie sehr stark durch Extremwerte beeinflusst wird. So könnte man sich vorstellen, dass bei dem besagten Altpapiersammelwettbewerb 8 von 10 Schulklassen zwischen 400 und 500 kg Altpapier sammeln, eine Klasse 1.000 kg und eine Klasse überhaupt kein Papier. Obwohl die meisten Datenpunkte zwischen 400 und 500 kg liegen, nimmt die Spanne den Wert 1.000 (1.000 – 0) an.

Abweichungen vom Mittelwert

Eine weitere Möglichkeit zur Beschreibung der Streuung eines Datenvektors ist die Abweichung der einzelnen Datenpunkte vom Mittelwert aller Datenpunkte. Bezugnehmend auf unser Beispiel, weichen im ersten Szenario zwei von drei Datenpunkten um jeweils 100 kg vom Mittelwert ab, während der dritte Wert mit dem Mittelpunkt identisch ist. Bildet man die Summe dieser Abweichungen, erhalten wir das folgende Ergebnis:

-100 + 0 + 100
## [1] 0

Berechnet man die Streuung nach dieser Gleichung, muss diese zwangsläufig den Wert 0 ergeben, da sich positive und negative Differenzen gegenseitig aufheben. Um dies zu verhindern, ließen sich z.B. die absoluten Beträge der Differenzen aufaddieren. In der Statistik entledigt man sich des Minuszeichens jedoch durch eine Quadrierung der einzelnen Differenzen.

Summe der quatrierten Abweichungen

Die einzelnen quatrierten Differenzen werden zu einer Quadratsumme zusammengefasst. Für unsere beiden Szenarien der Altpapiersammelaktion lassen sich die Quadratsummen folgendermaßen berechnen:

(qs1 <- (-100)^2 + 0^2 + 100^2)
## [1] 20000
(qs2 <- (-1)^2 + 0^2 + 1^2)
## [1] 2

Als Streuungsmaß hat die Quadratsumme jedoch den Nachteil, dass ihr Betrag mit steigender Anzahl an Datenpunkten zunimmt.

Varianz

Um eine Abhängikeit des Streungsmaßes von der Anzahl der Datenpunkte zu verhindern, lässt sich die Summe der quatrierten Abweichungen durch die Anzahl der Datenpunkte (Beobachtungen) teilen. Mit dieser Gleichung haben wir die Varianz eines Datenvektors definiert. Um zu demonstrieren, wie sich die Varianz eines Datenvektors mit R berechnen lässt, kommen wir wieder auf unser Beispiel vom Altpapiersammelwettbewerb zurück:

altpapier <- c(600, 700, 800) # vgl. Szenario 1
(altpapier - mean(altpapier)) ^ 2 # Liste quatrierter Abweichungen vom Mittelwert
## [1] 10000     0 10000
sum((altpapier - mean(altpapier)) ^ 2) # Summe der quatrierten Abweichungen
## [1] 20000
(varianz <- sum((altpapier - mean(altpapier)) ^ 2) / length(altpapier)) # Teile durch Anzahl der Beobachtungen
## [1] 6666.667

Standardabweichung

Die Interpretation der Varianz gestaltet sich jedoch schwierig, da sie die Einheiten des Datenvektors (in unserem Beispiel Kilogramm) quatriert widergibt. So hat der Vektor altpapier eine Varianz von etwa 6666.7 kg². Um die Standardabweichung zu berechnen, braucht man nun nur noch die Quatratwurzel der Varianz ziehen:

sqrt(varianz)
## [1] 81.64966

Im Gegensatz zur Varianz, hat die Standardabweichung dieselbe Einheit wie der Datenvektor, in unserem Fall etwa 81.6 kg (Szenario 1) und 0.816 kg (Szenario 2).

Empfohlene Literatur

  • Jeffrey M. Stanton, Reasoning with Data: An Introduction to Traditional and Bayesian Statistics Using R, Guilford Press: 2017.

Statistische Grundlagen mit R: Maße der zentralen Tendenz

Beginnend mit dem heutigen Tag veröffentliche ich auf “Scripts and Statistics” einige Beiträge unter der Überschrift “Statistische Grundlagen mit R”. Im ersten Teil erkläre ich die drei wichtigsten Maße der zentralen Tendenz.

Maße der zentralen Tendenz

Mit Maßen der zentralen Tendenz lässt sich ein Datenvektor (eine Reihe von Zahlen) mit einem Kennwert charakterisieren. Die drei häufigsten Zentralitätsmaße sind Mittelwert, Median und Modus.

Mittelwert

Das wohl bekannteste statistische Maß ist das arithmetische Mittel, auch Mittelwert genannt (engl.: “mean”). Der Mittelwert wird berechnet, indem man alle Werte eines Datenvektors addiert und die Summe durch die Anzahl der Einzelbeobachtungen (Länge des Vektors) teilt. So lässt sich z.B. die Anzahl der an einem Spieltag der Fußball-Bundesliga erzielten Treffer pro Spiel wie folgt darstellen:

treffer <- c(2, 3, 6, 0, 1, 3, 9, 3, 2)

Mit der c()-Funktion wird ein Datenvektor erzeugt und unter der Bezeichnung treffer abgespeichert. Um den Mittelwert zu berechnen, müssen alle Zahlen dieses Vektors addiert und durch 9 (Anzahl der Spiele pro Spieltag) dividiert werden:

sum(treffer) / length(treffer) # Ausführliche Berechnung
## [1] 3.222222
mean(treffer) # Mit R-Funktion berechnet
## [1] 3.222222

In der ersten Zeile wird der Mittelwert – wie soeben erklärt – berechnet, in der zweiten Zeile mit der mean()-Funktion. Beide Rechenwege kommen auf dasselbe Ergebnis.

Median

Der Median (engl.: “median”) lässt sich etwas salopp auch als “Halbe-Strecke-Wert” (halfway value) bezeichnen. Ordnet man einen Datenvektor aufsteigend vom kleinsten bis zum größten Wert und sucht sich den Wert, der sich genau in der Mitte befindet, so erhält man den Median. Mit der sort()-Funktion wird der Datenvektor aufsteigend geordnet:

sort(treffer)
## [1] 0 1 2 2 3 3 3 6 9

Da der Datenvektor treffer aus neun Einzelwerten besteht, muss der fünfte und damit mittlere Wert dem Median entsprechen:

sort(treffer)[5] # Median als mittlerer Wert des sortierten Datenvektors
## [1] 3
median(treffer) # Mit R-Funktion berechnet
## [1] 3

Beide Werte sind identisch. Wie wir sehen, ist der Median mit 3 Treffern ewtas kleiner als der Mittelwert mit 3.2222222 Treffern. Dieses Ergebnis weist auf einen wichtigen Vorteil des Medians hin: dieser ist robuster als der Mittelwert in Hinblick auf Extremwerte (engl.: “outliers”). Ein Extremwert ist ein Wert, der deutlich höher oder niedriger ist als die meisten anderen Werte. In unserem Beispiel sind die 9 Tore, die bei einem Bundesligaspiel erzielt wurden, ein Extremwert.

Modus

Der Modus (engl.: “mode”) ist der häufigste Wert des Datenvektors. Tritt ein bestimmter Wert eines Datenvektors besonders häufig auf, so lässt sich mit dem Modus der typischste Wert dieses Vektors angeben. Der Modus ist in noch stärkerem Maße als der Median robust gegenüber Extremwerten. Da in den R-Basispaketen keine Funktion zur Berechnung des Modus implementiert ist, muss ein zusätzliches R-Paket (DescTools) installiert und geladen werden. Mit der Mode()-Funktion dieses Pakets lässt sich nun der Modus unseres Datenvektors berechnen:

install.packages('DescTools')
library(DescTools)
Mode(treffer)
## [1] 3

Der Modus zeigt an, dass pro Bundesligaspiel am häufigsten 3 Tore fallen.

Resumee

Anhand der soeben erläuterten Maße der zentralen Tendenz ist eine zusammenfassende Beschreibung eines Datenvektors möglich. Der Mittelwert liefert uns einen präzisen, arithmetischen Mittelwert des Datenvektors, ist aber vergleichsweise anfällig gegenüber Extremwerten. Den Median kann man sich gut als mittleren Punkt einer Strecke vorstellen, der diese Strecke in zwei gleich große Hälften teilt. Wenn sich Mittelwert und Median unterscheiden, ist dies ein Hinweis darauf, dass der Datenvektor Extremwerte beinhaltet, die sich von den gewöhnlichen Werten stark unterscheiden. Der Modus zeigt uns, welcher Wert des Datenvektors am häufigsten vorkommt.

Empfohlene Literatur

  • Jeffrey M. Stanton, Reasoning with Data: An Introduction to Traditional and Bayesian Statistics Using R, Guilford Press: 2017.