---
fontsize: 8pt
bibliography: 8_Referenzen.bib
citation_package: natbib
output:
  beamer_presentation:
    keep_tex: true
    includes:
      in_header: 8_header.tex
---


```{r, include = F}
source("8_R_common.R")
```

# {.plain} 
\center
```{r, echo = FALSE, out.width = "20%"}
knitr::include_graphics("8_Abbildungen/pds_8_otto.png")
```

\vspace{2mm}

\huge
Programmierung und Deskriptive Statistik
\vspace{6mm}

\large
BSc Psychologie WiSe 2021/22

\vspace{6mm}
\large
Prof. Dr. Dirk Ostwald

# {.plain}
\vfill
\huge
\begin{center}
(8) Verteilungsfunktionen und Quantile
\end{center}
\vfill


#
\vfill
\large
\setstretch{3}
Empirische Verteilungsfunktionen

Quantile und Boxplots

Übungen und Selbstkontrollfragen
\vfill

#
\vfill
\large
\setstretch{3}
**Empirische Verteilungsfunktionen**

Quantile und Boxplots

Übungen und Selbstkontrollfragen
\vfill

# Empirische Verteilungsfunktionen
\footnotesize
\begin{definition}[Kumulative absolute und relative Häufigkeitsverteilungen]
\justifying
$x = (x_1,...,x_n)$ sei ein Datensatz, $A := \{a_1,...,a_k\}$ mit $k \le n$  
die im Datensatz vorkommenden verschiedenen Zahlenwerte und $h$ und $r$ die 
absoluten und relativen Häufigkeitsverteilungen von $x$, respektive. Dann heißt
die Funktion
\begin{equation}
H : A \to \mathbb{N}, a \mapsto H(a) := \sum_{a' \le a} h(a')
\end{equation}
die \textit{kumulative absolute Häufigkeitsverteilung} von $x$ und die Funktion
\begin{equation}
R : A \to [0,1], a \mapsto R(a) : =\sum_{a' \le a} r(a')
\end{equation}
die \textit{kumulative relative Häufigkeitsverteilung} der Zahlwerte von $x$.
\end{definition}

Bemerkung

* Mit den Definitionen der absoluten und relativen Häufigkeitsverteilungen gilt also
\begin{equation}
H(a) = \mbox{Anzahl der } x_i \mbox{ aus } x \mbox{ mit } x_i \le a
\end{equation}
und
\begin{equation}
R(a) = \mbox{Anzahl der } x_i \mbox{ aus } x \mbox{ mit } x_i \le a \mbox{ geteilt durch } n.
\end{equation}


# Empirische Verteilungsfunktionen
\small
`cumsum()` erlaubt die Berechnung kumulativer Summen 
\vspace{2mm}

\footnotesize
\setstretch{1.1}
```{r}
# Einlesen des Beispieldatensatzes und Abbildungsverzeichnisdefinition
fname    = file.path(getwd(), "8_Daten", "psychotherapie_datensatz.csv")
D        = read.table(fname, sep = ",")
fdir     = file.path(getwd(), "8_Abbildungen")

# Evaluation der absoluten und relativen Häufigkeitsverteilugen von Pre.BDI
x        = D$Pre.BDI                 # Double vector der Pre.BDI Werte
n        = length(x)                 # Anzahl der Datenwerte
H        = as.data.frame(table(x))   # absolute Häufigkeitsverteilung als Dataframe
names(H) = c("a", "h")               # Spaltenbenennung
H$H      = cumsum(H$h)               # kumulative absolute Häufigkeitsverteilung
H$r      = H$h/n                     # relative Häufigkeitsverteilung
H$R      = cumsum(H$r)               # kumulative relative Häufigkeitsverteilung
print(H)
```



# Empirische Verteilungsfunktionen
\small
Kumulative absolute Häufigkeitsverteilung der Pre.BDI Werte
\vspace{2mm}

\footnotesize
\setstretch{1.1}
```{r, eval = F}
# Visualisierung der kumulativen absoluten Häufigkeitsverteilung
graphics.off()                    # Abbildungsinitialisierung
dev.new()                         # Abbildungsinitialisierung
Ha          = H$H                 # H(a) Werte
names(Ha)   = H$a                 # barplot braucht a Werte als names
barplot(                          # Balkendiagramm
Ha,                               # H(a) Werte
col         = "gray90",           # Balkenfarbe
xlab        = "a",                # x Achsenbeschriftung
ylab        = "H(a)",             # y Achsenbeschriftung
ylim        = c(0,110),           # y Achsenlimits
las         = 1,                  # Achsenticklabelorientierung 
main        = "Pre.BDI")          # Titel

# PDF Speicherung
dev.copy2pdf(
file        = file.path(fdir, "pds_8_kh.pdf"), 
width       = 8, 
height      = 5)    
```

# Empirische Verteilungsfunktionen

\small
Kumulative absolute Häufigkeitsverteilung der Pre.BDI Werte
\vspace{4mm}

```{r, echo = FALSE, out.width = "85%"}
knitr::include_graphics("8_Abbildungen/pds_8_kh.pdf")
```

# Empirische Verteilungsfunktionen
\small
Kumulative relative Häufigkeitsverteilung der Pre.BDI Werte
\vspace{2mm}

\footnotesize
\setstretch{1.1}
```{r, eval = F}

# Visualisierung der kumulativen relativen Häufigkeitsverteilung
graphics.off()                # Abbildungsinitialisierung
dev.new()                     # Abbildungsinitialisierung
R           = H$R             # R(a) Werte
names(R)    = H$a             # barplot braucht a Werte als names
dev.new()                     # Abbildungsinitialisierung
barplot(                      # Balkendiagramm
R,                            # R(a) Werte
col         = "gray90",       # Balkenfarbe
xlab        = "a",            # x Achsenbeschriftung
ylab        = "R(a)",         # y Achsenbeschriftung
ylim        = c(0,1),         # y Achsenlimits
las         = 1,              # Achsenticklabelorientierung 
main        = "Pre.BDI")      # Titel

# PDF Speicherung
dev.copy2pdf(
file        = file.path(fdir, "pds_8_kr.pdf"), 
width       = 8, 
height      = 5)    
```


# Empirische Verteilungsfunktionen
\small
Kumulative relative Häufigkeitsverteilung der Pre.BDI Werte
\vspace{4mm}

```{r, echo = FALSE, out.width = "85%"}
knitr::include_graphics("8_Abbildungen/pds_8_kr.pdf")
```

# Empirische Verteilungsfunktionen

\footnotesize
\begin{definition}[Empirische Verteilungsfunktion]
$x = (x_1,...,x_n)$ sei ein Datensatz. Dann heißt die Funktion
\begin{equation}
F : \mathbb{R} \to [0,1], \xi \mapsto F(\xi)
:= \frac{\mbox{Anzahl der } x_i \mbox{ aus } x \mbox{ mit } x_i \le \xi}{n}
\end{equation}
die empirische Verteilungsfunktion (EVF) von $x$.
\end{definition}
Bemerkungen

* Die empirische Verteilungsfunktion wird auch *empirische kumulative Verteilungsfunktion* genannt.
* Die Definitionsmenge der EVF ist im Gegensatz zu Häufigkeitsverteilungen $\mathbb{R}$ und nicht $A$
* Die EVF verhält sich zu kumulativen Häufigkeitsverteilungen wie Histogramme zu Häufigkeitsverteilungen.
* Typischerweise sind empirische Verteilungsfunktionen Treppenfunktionen.
* Die (visuelle) Umkehrfunktion der EVF kann zur Bestimmung von Quantilen genutzt werden.


# Empirische Verteilungsfunktionen
\small
Empirische Verteilungsfunktion der Pre.BDI Werte

`ecdf()` evaluiert die empirischen Verteilungsfunktion eines Datensatzes
\vspace{3mm}

\footnotesize
\setstretch{1.2}
```{r, eval = F}  
graphics.off()                                    # Abbildungsinitialisierung
dev.new()                                         # Abbildungsinitialisierung
x    = D$Pre.BDI                                  # double vector der Pre.BDI Werte
evf	 = ecdf(x)                                    # Evaluation der EVF
plot(                                             # plot() weiß mit ecdf object umzugehen
evf,                                              # ecdf Objekt
xlab = TeX("$\\xi$"),                             # x Achsenbeschriftung
ylab = TeX("$F(\\xi)$"),                          # y Achsenbeschriftung
main = "Pre.BDI Empirische Verteilungsfunktion")  # Titel

# PDF Speicherung
dev.copy2pdf(
file        = file.path(fdir, "pds_8_ecdf.pdf"), 
width       = 8, 
height      = 5)    
```

# Empirische Verteilungsfunktionen

\small
Empirische Verteilungsfunktion der Pre.BDI Werte
\vspace{4mm}

```{r, echo = FALSE, out.width = "85%"}
knitr::include_graphics("8_Abbildungen/pds_8_ecdf.pdf")
```
#
\vfill
\large
\setstretch{3}
Empirische Verteilungsfunktionen

**Quantile und Boxplots**

Übungen und Selbstkontrollfragen
\vfill

# Quantile und Boxplots

\footnotesize
\begin{definition}[$p$-Quantil]
\justifying
$x = (x_1,...,x_n)$ sei ein Datensatz und
\begin{equation}
x_s = \left(x_{(1)}, x_{(2)}, ...,x_{(n)}\right) \mbox{ mit }
\min_{1 \le i \le n}x_i = x_{(1)} \le x_{(2)} \le \cdots \le x_{(n)} = \max_{1 \le i \le n} x_i
\end{equation}
der zugehörige aufsteigend sortierte Datensatz. Weiterhin bezeichne $\lfloor \cdot \rfloor$ 
die Abrundungsfunktion.Dann heißt für ein $p \in [0,1]$ die Zahl
\begin{equation}
x_p :=
\begin{cases}
x_{(\lfloor np + 1 \rfloor)} & \mbox{ falls } np \neq \mathbb{N} \\
\frac{1}{2}\left(x_{(np)} +  x_{(np + 1)}\right) & \mbox{ falls } np \in \mathbb{N} \\
\end{cases}
\end{equation}
das \textit{$p$-Quantil} von $x$.
\end{definition}

Bemerkungen

* Mindestens $p \cdot 100\%$ aller Werte in $x$ sind kleiner oder gleich $x_p$.
* Mindestens $(1-p) \cdot 100\%$ aller Werte in $x$ sind größer als $x_p$ .
* Das $p$-Quantil teilt den geordneten Datensatz im Verhältnis $p$ zu $(1-p)$ auf.
* $x_{0.25}, x_{0.50}, x_{0.75}$ heißen *unteres Quartil*, *Median*, und *oberes Quartil*, respektive.
* $x_{j\cdot 0.10}$ für $j = 1,...,9$ heißen *Dezile*,
* $x_{j\cdot 0.01}$ für $j = 1,...,99$ heißen *Percentile*.


# Quantile und Boxplots
\small
Beispiel $p$-Quantil (@henze_2018, Kapitel 5)

\footnotesize
Datensatz und sortierter Datensatz
\vspace{1mm}

\begin{center}
\begin{tabular}{c|ccccccccccc}
$i$
& 1
& 2
& 3
& 4
& 5
& 6
& 7
& 8
& 9
& 10
\\\hline
$x_i$
& 8.5
& 1.5
& 75
& 4.5
& 6.0
& 3.0
& 3.0
& 2.5
& 6.0
& 9.0
\\
$x_{(i)}$
& 1.5
& 2.5
& 3.0
& 3.0
& 4.5
& 6.0
& 6.0
& 8.5
& 9.0
& 75
\end{tabular}
\end{center}
\vspace{4mm}

\small
$0.25$-Quantil
\vspace{1mm}

\footnotesize
Es ist $n = 10$ und es sei $p := 0.25$. Dann gilt $np = 10 \cdot 0.25 = 2.5 \notin \mathbb{N}$. Also folgt
\begin{equation}
x_{0.25} = x_{(\lfloor 2.5 + 1\rfloor)} = x_{(3)} = 3.0
\end{equation}
\vspace{1mm}

$0.80$-Quantil
\vspace{1mm}

Es ist $n = 10$ und es sei $p := 0.80$. Dann gilt $np = 10 \cdot 0.80 = 8 \in \mathbb{N}$. Also folgt
\begin{equation}
x_{0.80} = \frac{1}{2} \left( x_{(8)} + x_{(8 + 1)}\right) = \frac{1}{2}\left(x_{(8)} + x_{(9)}\right)
= \frac{8.5 + 9.0}{2} = 8.75.
\end{equation}

# Quantile und Boxplots
\small
\vspace{1mm}
Beispiel $p$-Quantil (@henze_2018, Kapitel 5) (fortgeführt)

\footnotesize
"Manuelle" Quantilbestimmung anhand obiger Definition
\vspace{1mm}
\setstretch{1}
```{r}
x   = c(8.5,1.5,12,4.5,6.0,3.0,3.0,2.5,6.0,9.0)   # Beispieldaten
n   = length(x)                                   # Anzahl Datenwerte
x_s = sort(x)                                     # sortierter Datensatz
p   = 0.25                                        # np \notin \mathbb{N}
x_p = x_s[floor(n*p + 1)]                         # 0.25 Quantil
print(x_p)                                        # Ausgabe
p   = 0.80                                        # np \in \mathbb{N}
x_p = (1/2)*(x_s[n*p] + x_s[n*p + 1])             # 0.80 Quantil
print(x_p)                                        # Ausgabe
```

`quantile()` wertet Quantile anhand der Quantildefinition `type` aus.

Es gibt mindestens neun verschiedene Quantildefinitionen (cf. @hyndman_1996)

```{r}
x_p = quantile(x, 0.80, type = 1)                 # 0.80 Quantil, Definition 1
print(x_p)
x_p = quantile(x, 0.80, type = 2)                 # 0.80 Quantil, Definition 2
print(x_p)
```


# Quantile und Boxplots
\small
\vspace{1mm}
Beispiel $p$-Quantil (@henze_2018, Kapitel 5) (fortgeführt)

\footnotesize
Kombination von `ecdf()`und `abline()` erlaubt prinzipiell die visuelle Bestimmung von Quantilen

\vspace{2mm}
\setstretch{1}
```{r, eval = F}
graphics.off()                             # Abbildungsinitialisierung
dev.new()                                  # Abbildungsinitialisierung
evf	        = ecdf(x)                      # Evaluation der EVF
plot(                                      # plot() weiß mit ecdf object umzugehen
evf,                                       # ecdf Objekt
xlab        = TeX("$\\xi$"),               # x Achsenbeschriftung
ylab        = TeX("$F(\\xi)$"),            # y Achsenbeschriftung
verticals   = TRUE,                        # vertikale Linien 
do.points   = FALSE,                       # keine Punkte
main        = "Beispiel 80%-Quantil")      # Titel
abline(                                    # horizontale Linie
h           = 0.80,                        # y Ordinate der Linie
col         = "blue")                      # blau

# PDF Speicherung
dev.copy2pdf(
file        = file.path(fdir, "pds_8_ecdf_abline_x.pdf"), 
width       = 8, 
height      = 5)    

```


# Quantile und Boxplots
\small
\vspace{1mm}
Beispiel $p$-Quantil (@henze_2018, Kapitel 5) (fortgeführt)

\footnotesize
Kombination von `ecdf()`und `abline()` erlaubt prinzipiell die visuelle Bestimmung von Quantilen

```{r, echo = FALSE, out.width = "85%"}
knitr::include_graphics("8_Abbildungen/pds_8_ecdf_abline_x.pdf")
```

# Empirische Verteilungsfunktionen
\small
80% Quantil der Pre-BDI Daten
\vspace{2mm}

\footnotesize
\setstretch{1}
```{r, eval = F}
graphics.off()                             # Abbildungsinitialisierung
dev.new()                                  # Abbildungsinitialisierung
x           = D$Pre.BDI                    # Double vector der Pre.BDI Werte
evf	        = ecdf(x)                      # Evaluation der EVF
plot(                                      # plot() weiß mit ecdf object umzugehen
evf,                                       # ecdf Objekt
xlab        = TeX("$\\xi$"),               # x Achsenbeschriftung
ylab        = TeX("$F(\\xi)$"),            # y Achsenbeschriftung
verticals   = TRUE,                        # vertikale Linien 
do.points   = FALSE,                       # keine Punkte
main        = "Beispiel 80%-Quantil")      # Titel
abline(                                    # horizontale Linie
h           = 0.80,                        # y Ordinate der Linie
col         = "blue")                      # blau

# PDF Speicherung
dev.copy2pdf(
file        = file.path(fdir, "pds_8_ecdf_abline_prebdi.pdf"), 
width       = 8, 
height      = 5)    
```


# Quantile und Boxplots
\small
80% Quantil der Pre-BDI Daten
\vspace{2mm}

```{r, echo = FALSE, out.width = "80%"}
knitr::include_graphics("8_Abbildungen/pds_8_ecdf_abline_prebdi.pdf")
```

\tiny
\setstretch{1}
```{r}
x_p = quantile(D$Pre.BDI, 0.80, type = 2) # 0.80 Quantil, Definition 2
print(x_p)
```

# Quantile und Boxplots
Boxplots

\small
Ein Boxplot visualisiert eine Quantil-basierte Zusammenfassung eines Datensatzes.

Typischerweise werden $\min x, x_{0.25}, x_{0.50}, x_{0.75}, \max x$ visualisiert.

* $\min x$ und $\max x$ werden oft als "Whiskerendpunkte" dargestellt.
* $x_{0.25}$ und $x_{0.75}$ sind untere und obere Grenze der zentralen grauen Box.
* $x_{0.50}$ wird als Strich in der zentralen grauen Box abgebildet.

$d_Q := x_{0.75} - x_{0.25}$ heißt \textit{Interquartilsabstand} und dient als Verteilungsbreitenmaß

`summary()` liefert wesentliche Kennzahlen

\footnotesize
\setstretch{1}
```{r}
# Sechswertezusammenfassung
summary(D$Pre.BDI)
```

# Quantile und Boxplots
Boxplots

\small
`boxplot()` erstellt einen Boxplot,
\vspace{2mm}

\footnotesize
\setstretch{1.2}
```{r, eval = F}
# Boxplot
graphics.off()                      # Abbildungsinitialisierung
dev.new()                           # Abbildungsinitialisierung
boxplot(                            # Boxplot
D$Pre.BDI,                          # Datensatz
horizontal  = T,                    # horizontale Darstellung
range       = 0,                    # Whiskers bis zu min x und max x
xlab        = "x",                  # x Achsenbeschriftung
main        = "Pre.BDI Boxplot")    # Titel

# PDF Speicherung
dev.copy2pdf(
file        = file.path(fdir, "pds_8_boxplot_prebdi.pdf"), 
width       = 8, 
height      = 5)    
```

# Quantile und Boxplots
Boxplots

```{r, echo = FALSE, out.width = "80%"}
knitr::include_graphics("8_Abbildungen/pds_8_boxplot_prebdi.pdf")
```

\footnotesize
Es gibt viele Boxplotvariationen (cf. @mcgill_1978), eine genaue Erläuterung ist immer nötig!

#
\vfill
\large
\setstretch{3}
Empirische Verteilungsfunktionen

Quantile und Boxplots

**Übungen und Selbstkontrollfragen**
\vfill

# Übungen und Selbstkontrollfragen

\footnotesize
\begin{enumerate}
\justifying
\item Definieren Sie die Begriffe der kumulativen absoluten und relativen Häufigkeitsverteilungen.
\item Erzeugen und visualisieren Sie die kumulativen absoluten und relativen Häufigkeitsverteilungen
der Post.BDI Daten des Beispieldatensatzes \textit{psychotherapie\_datensatz.csv}.
\item Definieren Sie den Begriff der empirischen Verteilungsfunktion.
\item Erzeugen und visualisieren Sie die empirische Verteilungsfunktion der Post.BDI Daten.
\item Erläutern Sie den Begriff des sortierten Datensatzes.
\item Definieren Sie den Begriff des $p$-Quantils.
\item Berechnen Sie das obere Quartil des Beispieldatensatzes auf Folie 16.
\item Definieren Sie die Begriffe unteres Quartil, Median und oberes Quartil mithilfe des $p$-Quantils.
\item Berechnen Sie das untere Quartil, den Median und das obere Quartil der Post.BDI Daten. Vergleiche Sie
ihre Ergebnisse mit der Ausgabe der summary() Funktion.
\item Erstellen Sie einen Boxplot der Post.BDI Daten.
\end{enumerate}

# References
\footnotesize
