Statistik

Kapitel 2 · Univariate deskriptive Statistik

Grafische Darstellungen

📄 Folien:alle Materialien →

Diagramme für diskrete Merkmale

  • Stabdiagramm: über jeder Ausprägung ein senkrechter Strich der Höhe hjh_j (oder fjf_j) — höhenproportional.
  • Säulendiagramm: wie Stabdiagramm, aber mit Rechtecken (Breite bedeutungslos).
  • Kreisdiagramm: flächenproportional, Sektorwinkel αj=fj360\alpha_j = f_j \cdot 360^\circ.

Da Flächen optisch leicht falsch eingeschätzt werden, sind Kreisdiagramme nur für nominale Merkmale zu empfehlen; sonst Stab-/Säulendiagramme.

Übungsaufgabe Biersorten — Diagrammwahl & Kreiswinkel leicht Übung 2, Aufgabe 1

Interpretiere die Tabelle als Ergebnis einer eindimensionalen Häufigkeitsanalyse:

BiersorteHellesBockbierPilsenerRauchbier
Umsatz (in Mio. €)104,5150,5

Stelle die Biersorten mit ihren Umsätzen grafisch dar. Begründe deine Wahl der Diagrammart und beschrifte die Darstellung.

nominales MerkmalSäulendiagrammKreisdiagrammrelative Häufigkeit
R R-Lösung anzeigen
R
umsatz <- c(Helles = 10, Bockbier = 4.5, Pilsener = 15, Rauchbier = 0.5)
barplot(umsatz, main = "Umsatz je Biersorte", ylab = "Umsatz (Mio. Euro)")
pie(umsatz, main = "Umsatzanteile")        # Kreisdiagramm
umsatz / sum(umsatz)                         # relative Häufigkeiten
Ausgabe
relative Haeufigkeiten (Helles, Bockbier, Pilsener, Rauchbier):
0.33333  0.15000  0.50000  0.01667

Lösung

0/5 aufgedeckt

Das Histogramm — Fläche statt Höhe

Bei vielen Ausprägungen bildet man Klassen (cj1,cj](c_{j-1}, c_j] der Breite dj=cjcj1d_j = c_j - c_{j-1} und zeichnet Rechtecke mit

Ho¨hehjdj  bzw.  fjdj,Fla¨chehj  bzw.  fj.\text{Höhe} \propto \frac{h_j}{d_j} \;\text{bzw.}\; \frac{f_j}{d_j}, \qquad \text{Fläche} \propto h_j \;\text{bzw.}\; f_j .

Genau hier liegt die häufigste Falle: Nur bei konstanter Klassenbreite ist das Histogramm höhenproportional. Bei ungleichen Breiten zählt die Fläche. Probiere es — verschiebe die Klassenanzahl und beobachte, wie sich Form und Dichte ändern, während die Gesamtfläche stets 1 bleibt:

00.020.040.060.080.1182022242628303234Body-Mass-IndexHäufigkeitsdichte

Die Fläche jedes Balkens entspricht der relativen Häufigkeit der Klasse — auch bei ungleichen Breiten. Deshalb steht auf der y-Achse die Häufigkeitsdichte, nicht die Häufigkeit. (n = 60)

Faustregeln für die Klassenanzahl: knk \approx \sqrt{n} oder k2nk \approx 2\sqrt{n}.

Übung: Histogramme von Hand und in R

Übungsaufgabe Fermentationstemperaturen — Histogramm mit gleichen Klassen mittel Übung 2, Aufgabe 2

In einem Bioprozess wurden bei verschiedenen Fermentationsläufen folgende Temperaturen in Grad Celsius erfasst (n=50n=50):

7.9, 8.1, 8.2, 8.3, 8.5, 8.5, 8.5, 8.6, 8.6, 8.6, 8.7, 8.7, 8.8, 8.8, 8.8, 8.8, 8.9, 8.9, 8.9, 8.9, 8.9, 8.9, 9.0, 9.0, 9.0, 9.0, 9.0, 9.1, 9.1, 9.2, 9.2, 9.2, 9.2, 9.2, 9.3, 9.4, 9.4, 9.4, 9.4, 9.5, 9.5, 9.5, 9.8, 9.8, 9.9, 9.9, 10.0, 10.0, 10.0, 10.2

Erstelle ein Histogramm der absoluten Häufigkeiten mit gleich breiten Klassen. Wie viele Klassen hältst du für angemessen? Beschrifte das Histogramm.

HistogrammKlassierungKlassenanzahlmetrisches Merkmal
R R-Lösung anzeigen
R
temp <- c(7.9,8.1,8.2,8.3,8.5,8.5,8.5,8.6,8.6,8.6,8.7,8.7,8.8,8.8,8.8,8.8,
          8.9,8.9,8.9,8.9,8.9,8.9,9.0,9.0,9.0,9.0,9.0,9.1,9.1,9.2,9.2,9.2,
          9.2,9.2,9.3,9.4,9.4,9.4,9.4,9.5,9.5,9.5,9.8,9.8,9.9,9.9,10.0,
          10.0,10.0,10.2)
hist(temp, breaks = seq(7.9, 10.3, by = 0.3),
     main = "Fermentationstemperatur, n = 50",
     xlab = "Temperatur (Grad C)", ylab = "abs. Klassenhäufigkeit")
Ausgabe
# 8 Klassen, Höhen: 3 4 9 13 10 3 7 1

Lösung

0/8 aufgedeckt
Übungsaufgabe Gewicht — Histogramme & Klasseneinteilung in R mittel Übung 3, Aufgabe 3

Gegeben sind Messwerte des Merkmals „Gewicht” in Kilogramm (n=100n=100, hier gekürzt dargestellt — vollständig im R-Code unten):

51, 54, 55, 57, 58, …, 103, 104, 106, 107, 108

Visualisiere die Daten mithilfe von Histogrammen in R. a) Welche Klassen schlägt R vor? b) Ändere die Klassen auf [50,65],(65,80],(80,95],(95,110][50,65],(65,80],(80,95],(95,110] sowie [50,80],(80,95],(95,110][50,80],(80,95],(95,110]. c) Finde eine eigene Klasseneinteilung und beschrifte das Histogramm. d) Gestalte ein Histogramm farbig. e) Erstelle einen Report mit allen Histogrammen.

RHistogrammbreaksKlasseneinteilungHäufigkeitsdichte
R R-Lösung anzeigen
R
Gewicht <- c(51,54,55,57,58,58,58,59,60,60,62,62,62,63,63,63,64,65,65,65,
             66,66,66,68,68,68,69,69,69,69,70,70,71,72,72,73,75,78,79,79,
             80,80,81,81,82,82,83,83,84,84,84,84,85,86,86,87,87,87,87,87,
             88,88,88,88,89,90,90,90,90,90,91,91,91,92,92,92,92,92,93,93,
             93,94,95,95,95,95,96,97,97,98,98,98,100,100,100,103,104,106,
             107,108)
hist(Gewicht)                                   # a) Auto-Klassen
hist(Gewicht, breaks = seq(50, 110, by = 15))   # b) gleich breit
hist(Gewicht, breaks = c(50, 80, 95, 110))      #    ungleich -> Dichte
hist(Gewicht, breaks = seq(50, 110, by = 5),    # c)-d) beschriftet + farbig
     main = "Verteilung des Gewichts, n = 100",
     xlab = "Gewicht (in kg)", ylab = "Klassenhäufigkeit",
     col = heat.colors(12))
Ausgabe
# Auto-Klassen: Breite 10 von 50 bis 110

Lösung

0/6 aufgedeckt

Übung: Funktionen und Daten in R zeichnen

Neben Verteilungen lassen sich auch Funktionsverläufe und eingelesene Datensätze als Linien darstellen:

Übungsaufgabe Sinusfunktion in R zeichnen leicht Übung 2, Aufgabe 3

Gegeben ist die Funktion

f:[0,2π]R,f(x)=sin(2x).f:[0,2\pi]\to\mathbb{R},\qquad f(x)=\sin(2x).

Stelle die Funktion in R grafisch dar (Liniendiagramm). Das Seitenverhältnis der Achsen ist nicht relevant.

RLiniendiagrammplotseq
R R-Lösung anzeigen
R
x <- seq(0, 2*pi, length.out = 100)   # Definitionsbereich [0, 2pi]
f.von.x <- sin(2*x)                    # f(x) = sin(2x)
plot(x = x, y = f.von.x, type = "l",
     main = "Sinus mit Periode pi",
     ylab = "sin(2x)", col = "blue", lwd = 2)
Ausgabe
# Liniendiagramm: zwei volle Sinusschwingungen auf [0, 2pi]

Lösung

0/5 aufgedeckt
Übungsaufgabe Datei einlesen & Liniendiagramm (SLY.dat) in R mittel Übung 4, Aufgabe 2

Ein Datensatz liegt als Textdatei SLY.dat vor (Spalten X,Y1,Y2,Y3,Y4X, Y_1, Y_2, Y_3, Y_4). Der Wert NA bedeutet in R eine fehlende Beobachtung.

Bearbeite in R: a) Verschaffe dir einen Überblick über den Aufbau der Datei. b) Lies sie in das Objekt SLY.df ein. c) Prüfe, ob korrekt eingelesen wurde, und lass dir die Struktur ausgeben. d) Erstelle ein gemeinsames Liniendiagramm der Merkmale Y1,Y2,Y3,Y4Y_1, Y_2, Y_3, Y_4 in Abhängigkeit von XX.

📥 Datei: SLY.dat

Rread.tablestrNALiniendiagrammlines
R R-Lösung anzeigen
R
SLY.df <- read.table(file = "SLY.dat",
                     header = TRUE, sep = ":", dec = "~")
str(SLY.df)                       # Struktur (NA = fehlend)
plot(SLY.df$X, SLY.df$Y1, type = "l", col = "orange",
     xlab = "X", ylab = "Y")
lines(SLY.df$X, SLY.df$Y2)
lines(SLY.df$X, SLY.df$Y3)
lines(SLY.df$X, SLY.df$Y4)
Ausgabe
'data.frame': 5464 obs. of  5 variables:
 $ X : num  0 0 0 0 0 ...
 $ Y1: num  48.8 48.8 48.9 49 49 ...
 $ Y2: num  NA NA NA NA NA ...

Lösung

0/6 aufgedeckt
Übungsaufgabe Wetterdaten erkunden — Einlesen, Plots & Kennzahlen (DWD) mittel Übung 5, Aufgabe 2

Der Deutsche Wetterdienst stellt tagesgenaue Messdaten 2015 für München-Flughafen als Textdatei DWD.txt bereit. Löse in R: a) Speichere die Datei. b) Lies sie als DWD.df ein. c) Stelle dar: (i) „NIEDERSCHLAGSHOEHE_IND” als Kreisdiagramm, (ii) „LUFTTEMPERATUR_MAXIMUM” als Histogramm und Box-Plot, (iii) „LUFTTEMPERATUR_MAXIMUM” über „MESS_DATUM” als Liniendiagramm. d) Wie viele Stunden scheint die Sonne im Mittel pro Tag? Bestimme außerdem Standardabweichung und Spannweite der Sonnenscheindauer.

📥 Datei: DWD.txt

Rread.tableKreisdiagrammHistogrammBox-PlotLiniendiagrammMittelwertStandardabweichung
R R-Lösung anzeigen
R
DWD.df <- read.table("DWD.txt", header = TRUE, sep = ";", dec = ".")
str(DWD.df)
pie(table(DWD.df$NIEDERSCHLAGSHOEHE_IND), main = "Niederschlag (Indikator)")
hist(DWD.df$LUFTTEMPERATUR_MAXIMUM, main = "Max. Temperatur", xlab = "Grad C")
boxplot(DWD.df$LUFTTEMPERATUR_MAXIMUM)
plot(DWD.df$MESS_DATUM, DWD.df$LUFTTEMPERATUR_MAXIMUM, type = "l")
mean(DWD.df$SONNENSCHEINDAUER)   # mittlere Sonnenstunden/Tag
sd(DWD.df$SONNENSCHEINDAUER)     # Standardabweichung
diff(range(DWD.df$SONNENSCHEINDAUER))  # Spannweite
Ausgabe
'data.frame': 365 obs. of  18 variables:
 $ MESS_DATUM: chr  "2015-01-01" ...
 $ LUFTTEMPERATUR_MAXIMUM: num  ...

Lösung

0/7 aufgedeckt

Form der Verteilung

  • Modalität: unimodal (ein Gipfel), bimodal (zwei), multimodal (mehrere).
  • Symmetrie/Schiefe: linkssteil (rechtsschief, Ausläufer nach rechts) vs. rechtssteil (linksschief, Ausläufer nach links).

Klausurfalle: »Höhe = Häufigkeit« stimmt nur bei gleichen Klassenbreiten. Bei ungleichen Breiten ist die Fläche die Häufigkeit.

Quellen:K02 S.35, K02 S.36, K02 S.39, K02 S.41, K02 S.46, K02 S.51, K02 S.54, K02 S.56

Abruf-Quiz

Frage 1 / 3

Beim Histogramm mit ungleichen Klassenbreiten ist proportional zur Häufigkeit die …