---
fontsize: 8pt
format:
  beamer:
    include-in-header: ../PP_Header.tex
bibliography: ../PP_Referenzen.bib
---


# {.plain}

\center
```{r, echo = F, out.width = "20%"}
knitr::include_graphics("../OvGU_Logo.png")
```

\vspace{1mm}
\huge
Programmieren für Psychologie

\vspace{6mm}
\large
MSc Umweltpsychologie/Mensch-Technik-Interaktion

MSc Klinische Psychologie und Psychotherapie

MSc Psychologie

\vspace{6mm}
\normalsize
Joram Soch | Wintersemester 2026/2027


# {.plain}
\vfill
\center
\huge
\textcolor{black}{(8) Berechnung von Deskriptivstatistiken}
\vfill


# Übersicht

\vspace{1mm}
\normalsize
\setstretch{1.0}

Stichprobenmittel
\vspace{-2mm}

\begin{equation}
\bar{y} = \frac{1}{n} \sum_{i=1}^n y_i
\end{equation}
\vspace{1mm}

Stichprobenvarianz
\vspace{-2mm}

\begin{equation}
s_y^2 = \frac{1}{n-1} \sum_{i=1}^n (y_i - \bar{y})^2
\end{equation}
\vspace{1mm}

Stichprobenkovarianz
\vspace{-2mm}

\begin{equation}
c_{xy} = \frac{1}{n-1} \sum_{i=1}^n (x_i - \bar{x}) (y_i - \bar{y})
\end{equation}
\vspace{1mm}

Stichprobenkorrelation
\vspace{-2mm}

\begin{equation}
  r_{xy}
= \frac{c_{xy}}{\sqrt{s_x^2} \sqrt{s_y^2}}
= \frac{ \sum_{i=1}^n (x_i - \bar{x}) (y_i - \bar{y}) }{ \sqrt{\sum_{i=1}^n (x_i - \bar{x})^2} \sqrt{\sum_{i=1}^n (y_i - \bar{y})^2} }
\end{equation}


# Beispiel

Beispieldatensatz: $(x_i,y_i)$ für $i = 1,\ldots,20$ von $n = 40$

\tiny
\vspace{2mm}
\setstretch{1}
```{r, echo = T, eval = T, warning = F}
# Einlesen des Datensatzes
D = read.csv("Daten/Daten_2.csv")           # Daten einlesen
n = nrow(D)                                 # Anzahl Datenpunkte

# Ausgabe des Dataframes
library(knitr)                              # R-Paket laden
knitr::kable(D[1:20,], digits = 2)          # Tabellenoutput
```


# AGENDA {.plain}
\large
\setstretch{2.5}
\vfill

Stichprobenmittel

Stichprobenvarianz

Stichprobenkovarianz

Stichprobenkorrelation


# AGENDA {.plain}
\large
\setstretch{2.5}
\vfill

**Stichprobenmittel**

Stichprobenvarianz

Stichprobenkovarianz

Stichprobenkorrelation


# Stichprobenmittel

\begin{definition}[Stichprobenmittel]

\justifying
$y = (y_1,\ldots,y_n)$ mit $y_i \in \mathbb{R}$ für $i = 1,\ldots,n$ sei ein univariater Datensatz. Dann ist ist das Stichprobenmittel von $y$ definiert als
\begin{equation}
\bar{y} := \frac{1}{n} \sum_{i=1}^n y_i \; .
\end{equation}

\end{definition}

\small
Bemerkung

* Das Stichprobenmittel wird auch als *arithmetisches Mittel* oder *Durchschnitt* bezeichnet.


# Stichprobenmittel

Berechnung mit R base

\vspace{2mm}
\footnotesize
```{r, echo = T, eval = T}
D     = read.csv("Daten/Daten_2.csv")       # Daten einlesen
n     = nrow(D)                             # Anzahl Datenpunkte

x_i   = D[,1] # = D$DUR                     # x_i-Werte
y_i   = D[,2] # = D$dBDI                    # y_i-Werte
x_bar = 1/n * sum(x_i)                      # Stichprobenmittel
y_bar = 1/n * sum(y_i)                      # Stichprobenmittel

cat(  "Stichprobenmittel der x_i : ", x_bar, # Ergebnisausgabe
    "\nStichprobenmittel der y_i : ", y_bar)
```
\vfill


# Stichprobenmittel

Berechnung mit R-Funktionen

\vspace{2mm}
\footnotesize
```{r, echo = T, eval = T}
D     = read.csv("Daten/Daten_2.csv")       # Daten einlesen
n     = nrow(D)                             # Anzahl Datenpunkte

x_bar = mean(D[,1])                         # Stichprobenmittel
y_bar = mean(D[,2])                         # Stichprobenmittel

cat(  "Stichprobenmittel der x_i : ", x_bar,# Ergebnisausgabe
    "\nStichprobenmittel der y_i : ", y_bar)
```
\vfill


# Stichprobenmittel

Berechnung mit `dplyr`

\vspace{2mm}
\footnotesize
```{r, echo = T, eval = T}
D      = read.csv("Daten/Daten_2.csv")      # Daten einlesen
n      = nrow(D)                            # Anzahl Datenpunkte

library(dplyr)                              # R-Paket laden
D_mean = D %>%                              # Übergabe des Dataframes
  summarise(across(everything(), mean)) %>% # Berechnung Stichprobenmittel
  as.data.frame()                           # Konvertierung in Dataframe

rownames(D_mean) = c("Mean")                # Zeile benennen
print(D_mean)                               # Ergebnisausgabe
```
\vfill


# AGENDA {.plain}
\large
\setstretch{2.5}
\vfill

Stichprobenmittel

**Stichprobenvarianz**

Stichprobenkovarianz

Stichprobenkorrelation


# Stichprobenvarianz

\begin{definition}[Stichprobenvarianz]

\justifying
$y = (y_1,\ldots,y_n)$ mit $y_i \in \mathbb{R}$ für $i = 1,\ldots,n$ sei ein univariater Datensatz. Dann ist ist die Stichprobenvarianz von $y$ definiert als
\begin{equation}
s_y^2 = \frac{1}{n-1} \sum_{i=1}^n (y_i - \bar{y})^2 \; ,
\end{equation}

wobei $\bar{y}$ das Stichprobenmittel von $y$ ist.

\end{definition}

\small
Bemerkung

* Die Stichprobenvarianz entspricht der Summe der quadrierten Abweichungen der Datenpunkte von ihrem Stichprobenmittel, geteilt durch Stichprobenumfang minus 1.


# Stichprobenvarianz

\begin{definition}[Stichprobenstandardabweichung]

\justifying
$y = (y_1,\ldots,y_n)$ mit $y_i \in \mathbb{R}$ für $i = 1,\ldots,n$ sei ein univariater Datensatz. Dann ist ist die Stichprobenstandardabweichung von $y$ definiert als
\begin{equation}
s_y = \sqrt{\frac{1}{n-1} \sum_{i=1}^n (y_i - \bar{y})^2} \; ,
\end{equation}

wobei $\bar{y}$ das Stichprobenmittel von $y$ ist.

\end{definition}

\small
Bemerkung

* Die Stichprobenstandardabweichung ist die Quadratwurzel aus der Stichprobenvarianz.


# Stichprobenvarianz

Berechnung mit R base

\vspace{2mm}
\footnotesize
```{r, echo = T, eval = T}
D     = read.csv("Daten/Daten_2.csv")       # Daten einlesen
n     = nrow(D)                             # Anzahl Datenpunkte

x_i   = D[,1] # = D$DUR                     # x_i-Werte
y_i   = D[,2] # = D$dBDI                    # y_i-Werte
x_bar = 1/n * sum(x_i)                      # Stichprobenmittel
y_bar = 1/n * sum(y_i)                      # Stichprobenmittel
s2_x  = 1/(n-1) * sum((x_i - x_bar)^2)      # Stichprobenvarianz
s2_y  = 1/(n-1) * sum((y_i - y_bar)^2)      # Stichprobenvarianz
s_x   = sqrt(s2_x)                          # Stichprobenstandardabweichung
s_y   = sqrt(s2_y)                          # Stichprobenstandardabweichung
                                            # Ergebnisausgabe
cat(  "Stichprobenvarianz der x_i            : ", s2_x,
    "\nStichprobenvarianz der y_i            : ", s2_y,
    "\nStichprobenstandardabweichung der x_i : ", s_x,
    "\nStichprobenstandardabweichung der y_i : ", s_y)
```
\vfill


# Stichprobenvarianz

Berechnung mit R-Funktionen

\vspace{2mm}
\footnotesize
```{r, echo = T, eval = T}
D     = read.csv("Daten/Daten_2.csv")       # Daten einlesen
n     = nrow(D)                             # Anzahl Datenpunkte

s2_x  = var(D[,1])                          # Stichprobenvarianz
s2_y  = var(D[,2])                          # Stichprobenvarianz
s_x   = sd(D[,1])                           # Stichprobenstandardabweichung
s_y   = sd(D[,2])                           # Stichprobenstandardabweichung
                                            # Ergebnisausgabe
cat(  "Stichprobenvarianz der x_i            : ", s2_x,
    "\nStichprobenvarianz der y_i            : ", s2_y,
    "\nStichprobenstandardabweichung der x_i : ", s_x,
    "\nStichprobenstandardabweichung der y_i : ", s_y)
```
\vfill


# Stichprobenvarianz

Berechnung mit `dplyr`

\vspace{2mm}
\footnotesize
```{r, echo = T, eval = T}
D      = read.csv("Daten/Daten_2.csv")      # Daten einlesen
n      = nrow(D)                            # Anzahl Datenpunkte

library(dplyr)                              # R-Paket laden
D_var  = rbind(                             # Berechnung Deskriptivstatistiken
  summarise(D, across(everything(), mean)),
  summarise(D, across(everything(), var)),
  summarise(D, across(everything(), sd))) %>%
  as.data.frame()                           # Konvertierung in Dataframe

rownames(D_var) = c("Mean", "Var", "SD")    # Zeilen benennen
print(D_var)                                # Ergebnisausgabe
```
\vfill


# AGENDA {.plain}
\large
\setstretch{2.5}
\vfill

Stichprobenmittel

Stichprobenvarianz

**Stichprobenkovarianz**

Stichprobenkorrelation


# Stichprobenkovarianz

\begin{definition}[Stichprobenkovarianz]

\justifying
$x = (x_1,\ldots,x_n)$ und $y = (y_1,\ldots,y_n)$ mit $x_i,y_i \in \mathbb{R}$ für $i = 1,\ldots,n$ seien zwei univariate Datensätze. Dann ist ist die Stichprobenkovarianz von $x$ und $y$ definiert als
\begin{equation}
c_{xy} = \frac{1}{n-1} \sum_{i=1}^n (x_i - \bar{x}) (y_i - \bar{y}) \; ,
\end{equation}

wobei $\bar{x}$ und $\bar{y}$ die Stichprobenmittel von $x$ bzw. $y$ sind.

\end{definition}

\small
Bemerkung

* Die Stichprobenkovarianz entspricht der Summe der multiplizierten Abweichungen der Datenpunkte von ihren Stichprobenmitteln, geteilt durch Stichprobenumfang minus 1.


# Stichprobenkovarianz

Berechnung mit R base

\vspace{2mm}
\footnotesize
```{r, echo = T, eval = T}
D     = read.csv("Daten/Daten_2.csv")       # Daten einlesen
n     = nrow(D)                             # Anzahl Datenpunkte

x_i   = D[,1] # = D$DUR                     # x_i-Werte
y_i   = D[,2] # = D$dBDI                    # y_i-Werte
x_bar = 1/n * sum(x_i)                      # Stichprobenmittel
y_bar = 1/n * sum(y_i)                      # Stichprobenmittel
c_xy  = 1/(n-1) * sum((x_i - x_bar)*        # Stichprobenkovarianz
                      (y_i - y_bar))
                                            # Ergebnisausgabe
cat("Stichprobenkovarianz der x_i und y_i : ", c_xy)
```
\vfill


# Stichprobenkovarianz

Berechnung mit R-Funktionen

\vspace{2mm}
\footnotesize
```{r, echo = T, eval = T}
D     = read.csv("Daten/Daten_2.csv")       # Daten einlesen
n     = nrow(D)                             # Anzahl Datenpunkte

c_xy  = cov(D[,1], D[,2])                   # Stichprobenkovarianz
                                            # Ergebnisausgabe
cat("Stichprobenkovarianz der x_i und y_i : ", c_xy)
```
\vfill


# Stichprobenkovarianz

Berechnung mit `dplyr`

\vspace{2mm}
\footnotesize
```{r, echo = T, eval = T}
D      = read.csv("Daten/Daten_2.csv")      # Daten einlesen
n      = nrow(D)                            # Anzahl Datenpunkte

library(dplyr)                              # R-Paket laden
D_cov  = D %>%                              # Übergabe des Dataframes
  summarise("DUR/dBDI" = cov(DUR, dBDI)) %>%# Berechnung Stichkovarianz
  as.data.frame()                           # Konvertierung in Dataframe

rownames(D_cov) = c("Cov")                  # Zeile benennen
print(D_cov)                                # Ergebnisausgabe
```
\vfill


# AGENDA {.plain}
\large
\setstretch{2.5}
\vfill

Stichprobenmittel

Stichprobenvarianz

Stichprobenkovarianz

**Stichprobenkorrelation**


# Stichprobenkorrelation

\begin{definition}[Stichprobenkorrelation]

\justifying
$x = (x_1,\ldots,x_n)$ und $y = (y_1,\ldots,y_n)$ mit $x_i,y_i \in \mathbb{R}$ für $i = 1,\ldots,n$ seien zwei univariate Datensätze. Dann ist ist die Stichprobenkorrelation von $x$ und $y$ definiert als
\begin{equation}
  r_{xy}
= \frac{c_{xy}}{\sqrt{s_x^2} \sqrt{s_y^2}}
= \frac{ \sum_{i=1}^n (x_i - \bar{x}) (y_i - \bar{y}) }{ \sqrt{\sum_{i=1}^n (x_i - \bar{x})^2} \sqrt{\sum_{i=1}^n (y_i - \bar{y})^2} } \; ,
\end{equation}

wobei $c_{xy}$ die Stichprobenkovarianz von $x$ und $y$ ist, während $s_x^2$ und $s_y^2$ die Stichprobenvarianzen von $x$ bzw. $y$ sind.

\end{definition}

\small
Bemerkung

* Die Stichprobenkorrelation entspricht dem Quotienten aus Stichprobenkovarianz und dem Produkt der Stichprobenstandardabweichungen.


# Stichprobenkorrelation

Berechnung mit R base

\vspace{2mm}
\footnotesize
```{r, echo = T, eval = T}
D     = read.csv("Daten/Daten_2.csv")       # Daten einlesen
n     = nrow(D)                             # Anzahl Datenpunkte

x_i   = D[,1] # = D$DUR                     # x_i-Werte
y_i   = D[,2] # = D$dBDI                    # y_i-Werte
x_bar = 1/n * sum(x_i)                      # Stichprobenmittel
y_bar = 1/n * sum(y_i)                      # Stichprobenmittel
s2_x  = 1/(n-1) * sum((x_i - x_bar)^2)      # Stichprobenvarianz
s2_y  = 1/(n-1) * sum((y_i - y_bar)^2)      # Stichprobenvarianz
c_xy  = 1/(n-1) * sum((x_i - x_bar)*        # Stichprobenkovarianz
                      (y_i - y_bar))
r_xy  = c_xy/(sqrt(s2_x) * sqrt(s2_y))      # Stichprobenkorrelation
                                            # Ergebnisausgabe
cat(  "Stichprobenvarianz der x_i             : ", s2_x,
    "\nStichprobenvarianz der y_i             : ", s2_y,
    "\nStichprobenkovarianz der x_i und y_i   : ", c_xy,
    "\nStichprobenkorrelation der x_i und y_i : ", r_xy)
```
\vfill


# Stichprobenkorrelation

Berechnung mit R-Funktionen

\vspace{2mm}
\footnotesize
```{r, echo = T, eval = T}
D     = read.csv("Daten/Daten_2.csv")       # Daten einlesen
n     = nrow(D)                             # Anzahl Datenpunkte

r_xy  = cor(D[,1], D[,2])                   # Stichprobenkorrelation
                                            # Ergebnisausgabe
cat("Stichprobenkorrelation der x_i und y_i : ", r_xy)
```
\vfill


# Stichprobenkorrelation

Berechnung mit `dplyr`

\vspace{2mm}
\footnotesize
```{r, echo = T, eval = T}
D      = read.csv("Daten/Daten_2.csv")      # Daten einlesen
n      = nrow(D)                            # Anzahl Datenpunkte

library(dplyr)                              # R-Paket laden
D_cov  = D %>%                              # Übergabe des Dataframes
  summarise("DUR/dBDI" = cor(DUR, dBDI)) %>%# Berechnung Stichkovarianz
  as.data.frame()                           # Konvertierung in Dataframe

rownames(D_cov) = c("Corr")                 # Zeile benennen
print(D_cov)                                # Ergebnisausgabe
```
\vfill
