Statistik

Kapitel 2: Häufigkeiten und deren grafische Darstellung

Prof. Dr. Michael Bücker
Dr. Nina Büchel

2.1 Absolute und relative Häufigkeiten

Definition: absolute und relative Häufigkeiten in Datensätzen

Wird an n Untersuchungseinheiten das Merkmal X mit den möglichen k Ausprägungen x_1, x_2, ... , x_k betrachtet, so heißt

  • die Anzahl H(x_i), mit der die Ausprägung x_i vorkommt, absolute Häufigkeit von x_i und

  • der Anteil h(x_i) = \frac{H(x_i)}{n}, mit der Ausprägung x_i vorkommt, relative Häufigkeit von x_i.

Es gilt:

\begin{split} & H(x_1)+H(x_2)+...+H(x_k) \\ = & \sum_{i=1}^k H(x_i)\\ = & n \end{split}

Weiterhin gilt:

\begin{split} & h(x_1)+h(x_2)+...+h(x_k) \\ & =\sum_{i=1}^k h(x_i) \\ & = 1 \end{split}

Beispiel zur Berechnung von absoluten und relativen Häufigkeiten

Ein unabhängiges Forschungsinstitut hat während einer Woche im Sommer 2022 folgende Zugverspätungen (in Minuten) am Hauptbahnhof Münster registriert:

10, 20, 5, 10, 30, 25, 5, 5, 10, 20,
15, 10, 5, 20, 15, 10, 5, 20, 25, 10

Für die absoluten und relativen Häufigkeiten ergeben sich folgende Ergebnisse:

  • Absolute Häufigkeiten
Verspätung 5 10 15 20 25 30
abs. Hfgk. 5 6 2 4 2 1
  • relative Häufigkeiten
Verspätung 5 10 15 20 25 30
rel. Hfgk. 0,25 0,30 0,10 0,20 0,10 0,05

Berechnung von absoluten und relativen Häufigkeit mit R

In R können absolute und relative Häufigkeitstabellen berechnet werden, indem die Funktion table() bzw. prop.table(table()) verwendet wird. Übergeben wird ein Vektor, für den die absoluten bzw. relativen Häufigkeiten bestimmt werden:

  • Erstellen des Vektors der Verspätungen
## Erstellen eines Vektors mit den Verspätungen
verspaetungen <- c(10, 20, 5, 10, 30, 
                   25, 5, 5, 10, 20, 
                   15, 10, 5, 20, 15, 
                   10, 5, 20, 25, 10)
  • Berechnung der absoluten Häufigkeiten
#Tabelle mit absoluten Häufigkeiten
table(verspaetungen)
verspaetungen
 5 10 15 20 25 30 
 5  6  2  4  2  1 
  • Berechnung der relativen Häufigkeiten
#Tabelle mit relativen Häufigkeiten
prop.table(table(verspaetungen))
verspaetungen
   5   10   15   20   25   30 
0.25 0.30 0.10 0.20 0.10 0.05 

Achtung

Für die Funktion prop.table() müssen absolute Häufigkeiten übergeben werden. Die Funktion table() benötigt lediglich einen Vektor.

Bemerkungen

Mit der Abfrage ?table oder help(table) kann die Hilfefunktion von R für die Funktion table() aufgerufen werden.

Berechnung von absoluten und relativen Häufigkeit mit R (Fortsetzung)

Alternativ kann die Berechnung der relativen Häufigkeiten auch über die absoluten Häufigkeiten bestimmt werden, indem diese durch die Gesamtanzahl geteilt werden. Dafür wird mit der Funktion length() die Anzahl an Einträgen im Vektor bestimmt.

## Länge des Vektors
length(verspaetungen)
[1] 20
## Alternative Berechnung der relativen Häufigkeiten
table(verspaetungen)/length(verspaetungen)
verspaetungen
   5   10   15   20   25   30 
0.25 0.30 0.10 0.20 0.10 0.05 

Bemerkungen

Die Funktionen table() und prop.table() haben weitere Argumente. Hierzu können entsprechende weitergehende Informationen den Hilfefunktion der Funktionen entnommen werden.

Übung

Betrachten Sie den in R verfügbaren Datensatz mtcars. Betrachten Sie zunächst die Hilfeseite des Datensatzes, indem Sie den Befehl

?mtcars

ausführen. Bestimmen Sie anschließend die absoluten und relativen Häufigkeiten der Spalte qsec. Was fällt Ihnen auf?

2.2 Grafische Darstellung von absoluten und relativen Häufigkeiten

Stab- und Balkendiagramme

  • Absolute und relative Häufigkeiten lassen sich grafisch mit Hilfe von Stab- oder Balkendiagrammen darstellen
  • Die korrekte Darstellung erfolgt eigentlich mit Hilfe von Stabdiagrammen, diese haben allerdings den Nachtteil, dass sie schwerer Lesbar sind
  • Balkendiagramme hingegen sind häufiger verbreitet

Stabdiagramm der absoluten Häufigkeiten der Verspätungen:

Stab- und Balkendiagramme

  • Absolute und relative Häufigkeiten lassen sich grafisch mit Hilfe von Stab- oder Balkendiagrammen darstellen
  • Die korrekte Darstellung erfolgt eigentlich mit Hilfe von Stabdiagrammen, diese haben allerdings den Nachtteil, dass sie schwerer Lesbar sind
  • Balkendiagramme hingegen sind häufiger verbreitet

Achtung

Bei Balkendiagrammen ist auch die Höhe als entsprechende Häufigkeit zu interpretieren. Intuitiv interpretieren wir allerdings typischerweise die Fläche der Balken.

Balkendiagramm der absoluten Häufigkeiten der Verspätungen:

Balkendiagramme von absoluten und relativen Häufigkeiten

Balkendiagramm der absoluten Häufigkeiten der Verspätungen:

Balkendiagramm der relativen Häufigkeiten der Verspätungen:

Hinweis

Balkendiagramme für relative und absolute Häufigkeiten unterscheiden sich nicht in der Verteilung der Häufigkeiten sondern lediglich bezüglich der Werte auf der Ordinate.

Darstellung von Stab- und Balkendiagrammen in R

Die einfachste Möglichkeit, Stabdiagramme in R zu erzeugen gelingt unter Verwendung der Funktion plot() mit dem Argument type = "h":

## Stabiagramm auf Basis absoluter Häufigkeiten
plot(table(verspaetungen), type = "h",
     xlab = "Verspätungen",
     ylab = "absolute Häufigkeiten")

Die einfachste Möglichkeit, Balkendiagramme in R zu erzeugen gelingt unter Verwendung der Funktion barplot():

## Säulendiagramm auf Basis absoluter Häufigkeiten
barplot(table(verspaetungen),
     xlab = "Verspätungen",
     ylab = "absolute Häufigkeiten")

Hinweis

  • Mit xlab und ylab können die Beschriftungen der x- und y-Achse angepasst werden.
  • plot(..., type = "h") nutzt eine kontinuierliche x-Achse (fehlende Werte erscheinen als Lücken), barplot(table(...)) zeigt nur vorhandene Ausprägungen als Kategorien.

Torten- oder Kuchendiagramme

  • Ein Tortendiagramm teilt einen Kreis entsprechend der relativen Häufigkeiten einzelner Werte in Kreisausschnitte ein
  • Die entsprechenden Kreisausschnitte werden farbig unterschiedlich dargestellt

Achtung

Tortendiagramme sind in der Regel nicht geeignet, um die Häufigkeiten einzelner Werte zu vergleichen. In der Abbildung links ist beispielsweise mit dem Auge nicht erkennbar, ob Verspätungen mit 15 Minuten oder mit 25 Minuten häufiger auftreten. Das ist nur möglich, wenn die entsprechenden Häufigkeiten mit abgebildet werden.

2.3 Das Histogramm

Darstellung von Häufigkeiten metrischer Merkmale

  • Die Darstellungen von absoluten und relativen Häufigkeiten als Stab, Säulen- oder Tortendiagramm ist vor allem für nominale und ordinale Merkmale sinnvoll
  • Für metrische Merkmale empfiehlt sich in der Regel die Bildung von Klassen, da diese Merkmale sehr viele unterschiedliche Ausprägungen annehmen können
  • Beispiel: Während der letzten Orientierungsphase haben die Studierenden auf einer Tour durch verschiedene Münsteraner Kneipen folgende Bierpreise (in EUR pro 0.3 Liter) gezahlt:

2,10, 2,30, 2,00, 2,20, 2,35, 2,10, 2,25, 1,80, 2,00, 2,50
1,95, 2,15, 1,90, 2,30, 2,10, 1,85, 2,20, 2,15, 1,85, 1,95

  • Würden nun die Häufigkeiten ausgezählt und z.B. als Balkendiagramm dargestellt, sähen alle Balken ähnlich aus
  • Die tatsächliche Häufigkeitsverteilung lässt sich nicht gut erfassen

Darstellung von Häufigkeiten metrischer Merkmale (Fortsetzung)

Als Häufigkeiten der Bierpreise ergeben sich:

Bierpreis 1,80 1,85 1,90 1,95 2,00 2,10 2,15 2,20 2,25 2,30 2,35 2,50
absolute Häufigkeit 1 2 1 2 2 3 2 2 1 2 1 1
relative Häufigkeit 0,05 0,10 0,05 0,10 0,10 0,15 0,10 0,10 0,05 0,10 0,05 0,05

Darstellung von Häufigkeiten metrischer Merkmale (Fortsetzung)

Die Darstellung der Häufigkeiten der Bierpreise als Balkendiagramm ergibt:

Das Histogramm

  • Für die Darstellung der Häufigkeitsverteilung in einem Histogramm werden zunächst die Beobachtungen zu Klassen zusammen gefasst
  • Die Klassengrenzen sind dabei zunächst beliebig
  • Anschließend werden die Häufigkeiten je Klasse ausgezählt
  • Das Histogramm stellt die Häufigkeiten schließlich als Balken dar, deren Breite der Klassenbreite entspricht und deren Fläche der relativen Häufigkeit
Klasse relative Häufigkeit Höhe
1,80 ≤ xᵢ < 2,00 0,30 1,50
2,00 ≤ xᵢ < 2,20 0,35 1,75
2,20 ≤ xᵢ < 2,40 0,30 1,50
2,40 ≤ xᵢ < 2,60 0,05 0,25

Bemerkungen

Die Höhe der Balken ergibt sich also als \text{Höhe} = \frac{\text{relative Häufigkeit}}{\text{Klassenbreite}} Diese wird häufig auch als “Dichte” bezeichnet.

Darstellung des Histogramms

Das Histogramm der Bierpreise mit den oben gewählten Klassengrenzen sieht also wie folgt aus:

Histogramme mit Klassen unterschiedlicher Breite

  • Für ein Histogramm können auch Klassen unterschiedlicher Breite gewählt werden
  • Die Höhe der Balken wird dann wieder so gewählt, dass die Fläche des Balkens der relativen Häufigkeit entspricht
Klasse relative Häufigkeit Höhe
1,80 ≤ xᵢ < 2,00 0,30 1,50
2,00 ≤ xᵢ < 2,20 0,35 1,75
2,20 ≤ xᵢ < 2,50 0,35 1,17

Das Histogramm der Bierpreise mit den neuen Klassengrenzen sieht dann wie folgt aus:

Darstellung von Histogramms in R

Die einfachste Möglichkeit der Darstellung eines Histogramms in R bietet die Funktion hist:

bierpreise <- c(2.10, 2.30, 2.00, 2.20, 2.35, 
                2.10, 2.25, 1.80, 2.00, 2.50,
                1.95, 2.15, 1.90, 2.30, 2.10, 
                1.85, 2.20, 2.15, 1.85, 1.95)
hist(bierpreise, main = "", freq = FALSE)

Bemerkung

Das Argument freq = FALSE stellt sicher, dass die Fläche der Balken den relativen Häufigkeiten entspricht. Falls freq = TRUE (das ist der Standardwert), so werden auf der Ordinate die absoluten Häufigkeiten angezeigt.

Mit Hilfe des Arguments breaks lassen sich Anzahl der Klassen oder sogar die KLassengrenzen explizit angeben:

hist(bierpreise, freq = FALSE,  breaks=3, main = "")

hist(bierpreise, freq = FALSE, 
     breaks=seq(1.8, 2.6, 0.2), main = "")

Die Wahl der Klassen für Histogramme

Wie sollen Klassen gewählt werden?

  • Die Wahl der Klassen ist willkürlich, es gibt keine festen Regeln
  • Anzahl der Klassen sollte viel kleiner als die Anzahl der Beobachtungen sein
  • Ausgangspunkt sind oft Klassen konstanter Breite, die ggf. später zusammengefasst werden (insb. Randklassen)
  • problematisch: Beobachtungen auf Klassengrenzen: Grenzen ggf. so wählen, dass auf ihnen keine Beobachtungen liegen
  • Ziel: möglichst exakte Erfassung der Datenstruktur

Bemerkungen

  • Es gibt Verfahren, die versuchen, automatisiert gute Klassen zu identifizieren, z.B. die Methode nach Sturges, nach Scott oder nach Freedman-Diaconis
  • Diese Algorithmen sind auch in R hinterlegt
  • Standardmäßig wird das Verfahren von Sturges durch die Funktion hist verwendet

Übung

Bestimmen und zeichnen Sie das Histogramm der Spalte qsec des Datensatzes mtcars in R. Wöhlen Sie dafür verschiedene Möglichkeiten für die Klassengrenzen.

2.4 Die empirische Verteilungsfunktion

Die empirische Verteilungsfunktion

Für ein metrisch skaliertes Merkmal X heißt die Funktion

\begin{aligned} F \colon \mathbb{R} &\to [0;1]\\ x &\mapsto F(x) = \sum_{x_i \leq x} h(x_i) \end{aligned}

empirische Verteilungsfunktion.

Die empirische Verteilungsfunktion summiert die relativen Häufigkeiten des Merkmals X also kumulativ auf. Sie kann für jedes beliebige x\in\mathbb{R} berechnet werden, selbst wenn x keine tatsächlich auftretende Merkmalsausprägung von X ist.

Bemerkungen

Für die empirische Verteilungsfunktion gilt:

  1. \lim\limits_{x\to -\infty} F(x)=0
  2. \lim\limits_{x\to +\infty} F(x)=1
  3. F(x) ist monoton steigend.
  4. F(x) ist rechtsstetig (mit Sprüngen an beobachteten Ausprägungen).

Beispiel: empirische Verteilungsfunktionen der Zugverspätungen

  • Für die Zugverspätungen aus Beispiel 2.1.2 ergaben sich die relativen Häufigkeiten
Verspätung 5 10 15 20 25 30
rel. Hfgk. 0,25 0,30 0,10 0,20 0,10 0,05
  • Mit Hilfe der kumulativen relativen Häufigkeiten lassen sich Werte der empirischen Verteilungsfunktion F(x) bestimmen, indem wir uns an den Intervallgrenzen orientieren:
x (-∞;5) [5;10) [10;15) [15;20) [20;25) [25;30) [30;∞)
F(x) 0,00 0,25 0,55 0,65 0,85 0,95 1,00

Beispiel: empirische Verteilungsfunktionen der Zugverspätungen (Fortsetzung)

Die empirische Verteilungsfunktion können wir also formulieren als

F(x) = \left\{\begin{array}{ll} 0 & \text{für } x \in (-\infty;5)\\ 0.25 & \text{für } x \in [5;10)\\ 0.55 & \text{für } x \in [10;15)\\ 0.65 & \text{für } x \in [15;20)\\ 0.85 & \text{für } x \in [20;25)\\ 0.95 & \text{für } x \in [25;30)\\ 1 & \text{für } x \in [30;\infty)\\ \end{array} \right.

Beispiel: empirische Verteilungsfunktionen der Zugverspätungen (Fortsetzung)

Die Visualisierung der Funktion hat folgende Form:

Interpretation

  • F(x) gibt den Anteil der Zugverspätungen mit höchstens x Minuten an.
  • Für unser Beispiel gilt also, dass 65% der Züge eine Verspätung von höchstens 17 Minuten haben.
  • An den Stellen auf der x-Achse, an denen besonders viele Beobachtungen auftauchen, ist die empirische Verteilungsfunktion besonders “steil”.

Beispiel: empirische Verteilungsfunktionen der Zugverspätungen (Fortsetzung)

Die Visualisierung der Funktion hat folgende Form:

Interpretation

  • F(x) gibt den Anteil der Zugverspätungen mit höchstens x Minuten an.
  • Für unser Beispiel gilt also, dass 65% der Züge eine Verspätung von höchstens 17 Minuten haben.
  • An den Stellen auf der x-Achse, an denen besonders viele Beobachtungen auftauchen, ist die empirische Verteilungsfunktion besonders “steil”.

Empirische Verteilungsfunktion in R

  • In R lässt sich die empirische Verteilungsfunktion mit Hilfe der Funktion ecdf bestimmen
ecdf(verspaetungen)
Empirical CDF 
Call: ecdf(verspaetungen)
 x[1:6] =      5,     10,     15,  ...,     25,     30

Übung

Bestimmen und zeichnen Sie die empirische Verteilungsfunktion der Spalte qsec des Datensatzes mtcars in R. Interpretieren Sie ihr Ergebnis!

  • Um die empirische Verteilungsfunktion grafisch darzustellen, wendet man anschließend die Funktion plot auf das Ergebnis an
plot(ecdf(verspaetungen), 
     main = "Empirische Verteilungsfunktion", 
     xlab = "x (Verspätung in Minuten)",
     ylab = "F(x)")