Kapitel 14 Histogramm versus Balkendiagramm

Zwei Graphiken die man oft sieht, sind das Histogramm und die Balkengraphik (Barplot). Oft werden diese Graphiken verwechselt, es sind jedoch ganz unterschiedliche Graphiken.

14.1 Histogramm

Schauen wir uns ein Histogramm für die Variable Alter an.

Hier werden Gruppen von 5 Jahren gebildet, und für jede Gruppe einen Balken erstellt. Die Höhe der Balken entspricht entweder der sogenannten Density (Dichte, respektive Wahrscheinlichkeitsdichtefunktion) oder der Häufigkeit (dies kann man einstellen. Beim klassischen Histogramm wird die Density dargestellt). Was ist die Density?

set.seed(1223434457)
breaks= seq(0,100,10)

library(ggplot2)
library(gridExtra)
id=1:200
Alter<-rnorm(200, 55,12)
data<-data.frame(id, Alter)

Welche Formel benutzt ggplot um die Density zu berechnen:

Für jeden Balken: Häufigkeit (“count”) der Werte in diesem Balken geteilt durch die Balkenbreite, geteilt durch die totala Anzahl Werte.

Wir können das ja einmal für den höchsten Balken ausrechen.

  • relative Häufigkeit im Balken: 58/10 = 5.8

  • relative Häufigkeit im Balken geteilt durch totale Anzahl Werte: 5.8 / 200 = 0.029

Wir sehen, dass unsere Rechnung stimmt. der höchste Balken hat die Häufigkeit (“Count”) 58 und die Density 0.029

## Warning: The dot-dot notation (`..count..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(count)` instead.
Histogramme mit Density (links) und Häufigkeit (rechts)

Abbildung 14.1: Histogramme mit Density (links) und Häufigkeit (rechts)

14.2 Barplot

Das Balkendiagramm (Barplot) erstellen wir, wenn wir entweder die Häufigkeiten einer Kategorie, oder eine andere Statistik, wie Mittelwert, pro Kategorie einer ordinalen oder kategoriellen (nominalen) Variable darstellen möchten. Nemen wir als Beispiel die durchschnittliche Behandlungsdauer in Anzahl Sitzungen pro Diagnose (fiktive Daten).

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following object is masked from 'package:gridExtra':
## 
##     combine
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
Parkinson<-rpois(30, 18)
Schlaganfall<-rpois(60, 36)
Rückenschmerzen<-rpois(120, 9)
Arthrose<-rpois(200, 6)

Diagnose=rep(c("Parkinson", "Schlaganfall", "Rückenschmerzen", "Arthrose"), times=c(length(Parkinson), length(Schlaganfall), length(Rückenschmerzen), length(Arthrose)))

Anzahl_Sitzungen<-c(Parkinson, Schlaganfall, Rückenschmerzen, Arthrose)


data<-data.frame(Diagnose, Anzahl_Sitzungen)

Hier ein Beispiel:

Balkendiagramm, Durchschnittliche Anzahl Sitzungen pro Diagnose über ein Jahr

Abbildung 4.5: Balkendiagramm, Durchschnittliche Anzahl Sitzungen pro Diagnose über ein Jahr

Oder ein zweites Beispiel über die BMI Kategorien

BMI<-rnorm(200, 28, 5)
id=1:200
data<-data.frame(id, BMI)

data<-data %>% 
  mutate(BMI_Kategorien=case_when(
    BMI<18.5~"Untergewicht", 
    BMI>=18.5 & BMI <25~"Normalgewicht", 
    BMI>=25 & BMI <30~"Übergewicht", 
    BMI>=30~"Adipositas")) %>% 
  mutate(BMI_Kategorien=fct_relevel(BMI_Kategorien, "Untergewicht", "Normalgewicht", "Übergewicht", "Adipositas"))
Balkendiagramm mit Häufigkeiten der einelnen BMI-Kategorien

Abbildung 14.2: Balkendiagramm mit Häufigkeiten der einelnen BMI-Kategorien

Nun sehen wir gut den Unterschied: Histogramme werden für die Darstellung der Häufigkeiten von Wertebereichen ordinaler oder intervallskalierter Daten benutzt. Balkendiagramme benutzen wir für die Darstellung der Werte oder Häufigkeiten einzelner Kategorien nominaler Daten.