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


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

# {.plain} 
\center
```{r, echo = FALSE, out.width = "20%"}
knitr::include_graphics("11_Abbildungen/pds_11_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}
(11) Anwendungsbeispiel
\end{center}
\vfill


#
\vfill
\large
\setstretch{2}
Beispieldatensatz

Visualisierung

Deskriptive Statistiken

Parameterschätzung

Konfidenzintervalle

Hypothesentests
\vfill


# Beispieldatensatz
\textcolor{darkblue}{Evidenzbasierte Evaluation von Psychotherapieformen bei Depression}

\normalsize
Welche Therapieform ist bei Depression wirksamer?

```{r, echo = FALSE, out.width = "110%"}
knitr::include_graphics("11_Abbildungen/pds_11_klinische_forschung.pdf")
```

# Beispieldatensatz
\textcolor{darkblue}{Evidenzbasierte Evaluation von Psychotherapieformen bei Depression}

\normalsize
Becks Depressions-Inventar (BDI) zur Depressionsdiagnostik

```{r, echo = FALSE, out.width = "100%"}
knitr::include_graphics("11_Abbildungen/pds_11_bdi.pdf")
```


# Beispieldatensatz
\textcolor{darkblue}{Beispiel: Evaluation von Psychotherapieformen bei Depression}
\vspace{2mm}

```{r, echo = FALSE, out.width = "90%"}
knitr::include_graphics("11_Abbildungen/pds_11_messplan.pdf")
```


```{r, echo = F, eval = F}
# seed
set.seed(5)


# Simulationsparameter
n      = 50                         # Proband:innnen pro Gruppe
mu     = c(18, 12, 19, 14)          # \mu prä-klassisch, post-klassisch, prä-online, post-online
sigsqr = 3

# Datensimulation
D            = data.frame(
               c(rep("Klassisch",n), rep("Online", n)),
               c(round(rnorm(n, mu[1], sqrt(sigsqr))), round(rnorm(n, mu[3], sqrt(sigsqr)))),
               c(round(rnorm(n, mu[2], sqrt(sigsqr))), round(rnorm(n, mu[4], sqrt(sigsqr)))))
colnames(D)  = c("Bedingung", "Pre BDI", "Post BDI")

# Datenspeicherung
fname        = file.path(getwd(), "11_Daten", "psychotherapie_datensatz.csv")
write.csv(D, file = fname)
```


# Beispieldatensatz
Einlesen des Datensatzes mit `read.table()`
\vspace{1mm}

\footnotesize
```{r}
fname       = file.path(getwd(), "11_Daten", "psychotherapie_datensatz.csv")
D           = read.table(fname, sep = ",", header = TRUE)
```

\small
Daten der ersten acht Proband:innen jeder Gruppe

\footnotesize
\setstretch{1}
```{r, echo = F}
# table visualization
knitr::kable(D[c(1:8, 51:58),],
             align      = "ccc",
             "pipe")
```

# Beispieldatensatz
Datensatzübersicht mit `View()`
\vspace{2mm}

```{r, echo = FALSE, out.width = "30%"}
knitr::include_graphics("11_Abbildungen/pds_11_view.png")
```


# Beispieldatensatz

\textcolor{darkblue}{Datenvorverarbeitung}

\small
* Studienfokus ist die **Veränderung** der Depressionsymptomatik durch Therapieformen.

* Für jede Proband:in der ergibt sich diese Veränderung als **Differenz** von Post.BDI - Pre.BDI.

* Eine Reduktion der Depressionssymptomatik ergibt dabei eine **negative Zahl**.

* Es ist sinnvoller, Verbesserungen mit **positiven Zahlen** zu repräsentieren.

* Als Maß des Therapieeffekts bei Proband:in $i$ bietet sich also an

\begin{equation}
\Delta \mbox{BDI[i]} := - (\mbox{Post.BDI[i]} - \mbox{Pre.BDI[i]})
\end{equation}

* Wir betrachten in der Folge also das $\Delta \mbox{BDI}$ Maß mit folgender Interpretation

\center
\begin{tabular}{lll}
$\Delta \mbox{BDI} > 0$ & Verminderung der Depressionsymptomatik       & Wirksame Therapie      \\
$\Delta \mbox{BDI} = 0$ & Keine Veränderung der Depressionsymptomatik  & Wirkungslose Therapie  \\
$\Delta \mbox{BDI} < 0$ & Verstärkung der Depressionsymptomatik        & Schädigende Therapie   \\
\end{tabular}


# Beispieldatensatz
\vspace{1mm}
\textcolor{darkblue}{Datenvorverarbeitung}

\small
Hinzufügen einer $\Delta\mbox{BDI}$ Spalte zum Dataframe
\vspace{1mm}

\footnotesize
```{r}
fname       = file.path(getwd(), "11_Daten", "psychotherapie_datensatz.csv") # Einlesen
D           = read.table(fname, sep = ",", header = TRUE)                    # Rohdaten
D$Delta.BDI = -(D$Post.BDI - D$Pre.BDI)                                      # \Delta BDI Maß
```

\small
Daten der ersten acht Proband:innen jeder Gruppe
\vspace{1mm}


\footnotesize
\setstretch{1}
```{r, echo = F}
# table visualization
knitr::kable(D[c(1:8, 51:58),],
             align      = "cccc",
             "pipe")
```

#
\vfill
\large
\setstretch{2}
Beispieldatensatz

**Visualisierung**

Deskriptive Statistiken

Parameterschätzung

Konfidenzintervalle

Hypothesentest
\vfill


# Visualisierung
\vspace{1cm}
```{r, echo = FALSE, out.width = "35%"}
knitr::include_graphics("11_Abbildungen/pds_11_graphics_1.pdf")
```
\vfill

# Visualisierung
\setstretch{1.8}
\textcolor{darkblue}{R Funktionalitäten für Abbildungen}

Base Graphics

* Erstellung und bedarfsgerechte Anpassung von Abbildungen
* Eher low-level, fine tuning orientiert

Lattice und ggplot2 

* Erstellung und bedarfsgerechte Anpassung von Abbildungen
* Eher high level, an der eigenen Philosophie orientiert

Base Graphics, lattice und ggplot2 können ähnliche Abbildungen generieren

LaTeX Typesetting ist in allen Paketen unterentwickelt

# Visualisierung
\setstretch{1.8}
\textcolor{darkblue}{R Funktionalitäten für Abbildungen}

**Base Graphics**

* **Erstellung und bedarfsgerechte Anpassung von Abbildungen**
* **Eher low-level, fine tuning orientiert**

Lattice und ggplot2 

* Erstellung und bedarfsgerechte Anpassung von Abbildungen
* Eher high level, an der eigenen Philosophie orientiert

Base Graphics, lattice und ggplot2 können ähnliche Abbildungen generieren

LaTeX Typesetting ist in allen Paketen unterentwickelt

# Visualisierung
\vspace{2mm}
```{r, echo = FALSE, out.width = "55%"}
knitr::include_graphics("11_Abbildungen/pds_11_graphics_2.pdf")
```
\flushright
\footnotesize
@murrell_2019

# Visualisierung
\vspace{2mm}
```{r, echo = FALSE, out.width = "45%"}
knitr::include_graphics("11_Abbildungen/pds_11_graphics_3.pdf")
```
\flushright
\footnotesize
@murrell_2019

# Visualisierung
\vspace{2mm}
```{r, echo = FALSE, out.width = "55%"}
knitr::include_graphics("11_Abbildungen/pds_11_graphics_4.pdf")
```
\flushright
\footnotesize
@murrell_2019

# Visualisierung
\vspace{2mm}
```{r, echo = FALSE, out.width = "60%"}
knitr::include_graphics("11_Abbildungen/pds_11_graphics_5.pdf")
```
\flushright
\footnotesize
@murrell_2019

# Visualisierung
\vspace{2mm}
```{r, echo = FALSE, out.width = "55%"}
knitr::include_graphics("11_Abbildungen/pds_11_graphics_6.pdf")
```
\flushright
\footnotesize
@murrell_2019

# Visualisierung
\vspace{5mm}
```{r, echo = FALSE, out.width = "60%"}
knitr::include_graphics("11_Abbildungen/pds_11_graphics_7.pdf")
```
\flushright
\footnotesize
@murrell_2019

# Visualisierung

\textcolor{darkblue}{Code Outline}
\footnotesize
\vspace{1mm}
\setstretch{1.2}
```{r, eval = F}
# Initialisierung einer neuen Abbildung
dev.new()                                                                         

# Abbildungsparameter
par( 
z.B. Arrangement von Panels, Begrenzungsstile, Schriftfonts, etc
)  

# Higher-level Abbildungsfunktion wie plot(), hist(), barplot(), ...
plot(
z.B. x- und y-Daten, Achsenlimits, Achsenbeschriftungen, Titel, Farben, etc.
Jeder Aufruf einer higher-level Graphikfunktion belegt ein neues Subpanel!
)

# Hinzufügen weiterer Daten mit lower-level Abbildungsfunktionen zum aktuellen Panel
z.B. points(), lines(), abline()

# Weitere Graphikannotation zu aktuellem Panel
z.B. legend(), text()

# Speichern der Abbildung (Größenverhältnisse erst hier final festgelegt)
z.B. dev.copy2pdf() 
```

# Visualisierung
\vspace{2mm}
Histogramme
\vspace{1mm}
\tiny
\setstretch{.8}

```{r, eval = F}
# Histogrammparameter
h           = 1                               # gewünschte Klassenbreite
b_0         = min(D$Delta.BDI)                # b_0
b_k         = max(D$Delta.BDI)                # b_0
k           = ceiling((b_k - b_0)/h)          # Anzahl der Klassen
b           = seq(b_0, b_k, by = h)           # Klassen [b_{j-1}, b_j[
ylimits     = c(0,.25)                        # y-Achsenlimits
xlimits     = c(-2,14)                        # x-Achsenlimits
therapie    = c("Klassisch" , "Online")       # Therapiebedingungen
labs        = c("Klassische Therapie",        # Abbildungslabel
                "Online Therapie")
# Abbildungsparameter
par(                                          # für Details siehe ?par
mfcol       = c(1,2),                         # 1 x 2 Panelstruktur
family      = "sans",                         # Serif-freier Fonttyp
pty         = "m",                            # Maximale Abbildungsregion
bty         = "l",                            # L förmige Box
las         = 1,                              # Horizontale Achsenbeschriftung
xaxs        = "i",                            # x-Achse bei y = 0
yaxs        = "i",                            # y-Achse bei x = 0
font.main   = 1,                              # Non-Bold Titel
cex         = 1,                              # Textvergrößerungsfaktor
cex.main    = 1)                              # Titeltextvergrößerungsfaktor

# Iteration über Therapiebedingungen
for(i in 1:2){
  hist(
  D$Delta.BDI[D$Bedingung == therapie[i]],    # Delta.BDI Werte von Therapiebedingung i
  breaks    = b,                              # Histogrammklassen
  freq      = F,                              # normierte relative Häufigkeit
  xlim      = xlimits,                        # x-Achsenlimits
  ylim      = ylimits,                        # y-Achsenlimits
  xlab      = TeX("$\\Delta$ BDI"),           # x-Achsenbeschriftung
  ylab      = "",                             # y-Achsenbeschriftung
  main      = labs[i])                        # Titelbeschriftung
}

# PDF Speicherung
dev.copy2pdf(
file        = file.path(getwd(), "11_Abbildungen", "pds_11_histogramm.pdf"),
width       = 8,
height      = 4)
```

# Visualisierung
Histogramme
\vspace{.5cm}
```{r, echo = FALSE, out.width = "100%"}
knitr::include_graphics("11_Abbildungen/pds_11_histogramm.pdf")
```
\vfill

#
\vfill
\large
\setstretch{2}
Beispieldatensatz

Visualisierung

**Deskriptive Statistiken**

Parameterschätzung

Konfidenzintervalle

Hypothesentest
\vfill

# Deskriptive Statistiken

\textcolor{darkblue}{Bedingungsabhängige Auswertung deskriptiver Statistiken}
\vspace{3mm}
\tiny
\setstretch{1}
```{r, echo = T}
# Initialisierung eines Dataframes
tp            = c("Klassisch", "Online")            # Therapiebedingungen
ntp           = length(tp)                          # Anzahl Therapiebedingungen
S             = data.frame(                         # Dataframeerzeugung
                n         = rep(NaN,ntp),           # Stichprobengrößen
                Max       = rep(NaN,ntp),           # Maxima
                Min       = rep(NaN,ntp),           # Minima
                Median    = rep(NaN,ntp),           # Mediane
                Mean      = rep(NaN,ntp),           # Mittelwerte
                Var       = rep(NaN,ntp),           # Varianzen
                Std       = rep(NaN,ntp),           # Standardabweichungen
                row.names = tp)                     # Therapiebedingungen

# Iterationen über Therapiebedingungen
for(i in 1:ntp){
  data        = D$Delta.BDI[D$Bedingung == tp[i]]   # Daten
  S$n[i]      = length(data)                        # Stichprobengröße
  S$Max[i]    = max(data)                           # Maxima
  S$Min[i]    = min(data)                           # Minima
  S$Median[i] = median(data)                        # Mediane
  S$Mean[i]   = mean(data)                          # Mittelwerte
  S$Var[i]    = var(data)                           # Varianzen
  S$Std[i]    = sd(data)                            # Standardabweichungen
}
```
# Deskriptive Statistiken

\textcolor{darkblue}{Bedingungsabhängige Auswertung deskriptiver Statistiken}
\vspace{3mm}
\footnotesize

```{r}
# Ausgabe
print.AsIs(S)
```
\small
\setstretch{1.8}

* Die Anzahl der Proband:innen in beiden Therapiegruppen ist gleich.
* Die Spannbreite der $\Delta\mbox{BDI}$ Daten ist in der klassischen Therapieform leicht erhöht.
* Median und Mittelwert nehmen für die klassische Therapieform leicht höhere Werte an.
* Ein $\Delta \mbox{BDI}$ Mittelwertsunterschied von 1 ist klinisch wohl eher vernachlässigbar.
* Median und Mittelwert sind in beiden Therapieformen ähnlich (unimodale Verteilung).
* Die Variabilitätsmaße zeigen eine etwas erhöhte Varabilität in der klassischen Therapieform.


# Deskriptive Statistiken
\textcolor{darkblue}{Bedingungsabhängige Visualisierung deskriptiver Statistiken}
\vspace{1mm}

\tiny
\setstretch{.7}
```{r, eval = F}
# Abbildungsparameter
par(                                          # für Details siehe ?par
mfcol       = c(1,2),                         # 1 x 2 Panelstruktur
family      = "sans",                         # Serif-freier Fonttyp
pty         = "m",                            # Maximale Abbildungsregion
bty         = "l",                            # L förmige Box
las         = 1,                              # Horizontale Achsenbeschriftung
xaxs        = "i",                            # x-Achse bei y = 0
yaxs        = "i",                            # y-Achse bei x = 0
font.main   = 1,                              # Non-Bold Titel
cex         = 1,                              # Textvergrößerungsfaktor
cex.main    = 1.5)                            # Titeltextvergrößerungsfaktor

# Linkes Panel: Balkendiagramm mit Fehlerbalken
mw          = S$Mean                          # Gruppenmittelwert
sd          = S$Std                           # Gruppenstandardabweichung
names(mw)   = tp                              # barplot braucht x-Werte als names
x = barplot(                                  # Ausgabe der x-Ordinaten (?barplot für Details)
mw,                                           # Mittelwerte = Balkenhöhe
col         = "gray90",                       # Balkenfarbe
ylim        = c(0,12),                        # y-Achsenbegrenzung
xlim        = c(0,3),                         # x-Achsenbegrenzung 
xlab        = "Bedingung",                    # x-Achsenbeschriftung    
main        = TeX("$\\Delta BDI$"))           # Titel
arrows(                                       # arrows() für Fehlerbalken (siehe ?arrows)
x0          = x,                              # arrow start x-ordinate
y0          = mw - sd,                        # arrow start y-ordinate
x1          = x,                              # arrow end   x-ordinate
y1          = mw + sd,                        # arrow end   y-ordinate
code        = 3,                              # Pfeilspitzen beiderseits
angle       = 90,                             # Pfeilspitzenwinkel -> Linie
length      = 0.05)                           # Linielänge

# Rechtes Panel: Boxplot
boxplot(
D$Delta.BDI ~ D$Bedingung,                    # Gruppierung der Delta.BDI Daten nach D$Bedingung
ylim        = c(0,12),                        # y-Achsenbegrenzung
col         = "gray90",                       # Boxfarbe
ylab        = "",                             # y-Achsenbeschriftung
xlab        = "Bedingung",                    # x-Achsenbeschriftung    
main        = TeX("$\\Delta BDI$"))           # Titel
```

```{r, echo = F, eval = F}
# PDF Speicherung
dev.copy2pdf(
file        = file.path(getwd(), "11_Abbildungen", "pds_11_deskriptiv.pdf"),
width       = 8,
height      = 5)
```

# Deskriptive Statistiken
\textcolor{darkblue}{Bedingungsabhängige Visualisierung deskriptiver Statistiken}
\vspace{1mm}

```{r, echo = FALSE, out.width = "90%"}
knitr::include_graphics("11_Abbildungen/pds_11_deskriptiv.pdf")
```

#
\vfill
\large
\setstretch{2}
Beispieldatensatz

Visualisierung

Deskriptive Statistiken

**Parameterschätzung**

Konfidenzintervalle

Hypothesentests
\vfill


# Parameterschätzung
\textcolor{darkblue}{Modellannahmen für Parameterschätzung und Konfidenzintervalle}

\small
Motiviert durch die therapieabhängige Visualisierung der $\Delta\mbox{BDI}$ Daten
und unseren wissenschaftssoziologischen Kontext legen wir nun das Normalverteilungsmodell
zugrunde.
\vspace{2mm}

Wir nehmen also an, dass die $\Delta$ BDI Werte Realisierungen von unabhängig
verteilten Zufallsvariablen
\begin{equation}
X_{ij} \sim N\left(\mu_{i},\sigma^2_i\right), i = 1,2, j = 1,...,50
\end{equation}
sind, wobei $i$ die Therapiebedingung (1 = Klassisch, 2 = Online) und $j$
den Proband:innen Index in der $i$ten experimentellen Bedingung bezeichnen.
Innerhalb einer Bedingung sind diese Zufallsvariablen also unabhängig und identisch
verteilt.
\vspace{2mm}

Dies entspricht der Annahme, dass sich der $\Delta \mbox{BDI}$ Wert einer Proband:in
durch Addition einer normalverteilten Fehlervariable mit Erwartungswertparameter
$0$ und Varianzparameter $\sigma^2_i$ zu den innerhalb einer Therapiebedingung
identischen Wert $\mu_{i}$ ergibt.

# Parameterschätzung
\small
\setstretch{1.2}
Zur Parameterschätzung im vorliegenden Modell nutzen wir
\vspace{-1mm}

* den Maximum Likelihood Schätzer für $\mu_i$
* den Varianzschätzer für $\sigma^2$

\vspace{2mm}
\tiny
\setstretch{1}
```{r}
# Initialisierung eines Dataframes
tp                = c("Klassisch", "Online")                  # Therapiebedingungen
ntp               = length(tp)                                # Anzahl Therapiebedingungen
S                 = data.frame(                               # Dataframeerzeugung
                    mu_ML      = rep(NaN,ntp),                # ML Schätzer für \mu_i
                    sigsqr_VAR = rep(NaN,ntp))                # Varianzschätzer für \sigma^2_i

# Iterationen über Therapiebedingungen
for(i in 1:ntp){
  data            = D$Delta.BDI[D$Bedingung == tp[i]]         # Daten
  S$mu_ML[i]      = mean(data)                                # ML Schätzer für \mu_i
  S$sigsqr_VAR[i] = var(data)                                 # Varianzschätzer für \sigma_2^_i
}

# Ausgabe
print.AsIs(S)
```

\small
Tipps für $\mu_i$ und $\sigma^2_i$ auf Grundlage dieser unverzerrten Schätzer sind also
\begin{equation}
\hat{\mu}_1 = 6.16, \quad \hat{\mu}_2 = 4.92, \quad \hat{\sigma}^2_1 = 7.08, \quad \hat{\sigma}^2_2 = 3.91.
\end{equation}
Die mit diesen Tipps assoziierte Unsicherheit ist hier nicht angegeben.

#
\vfill
\large
\setstretch{2}
Beispieldatensatz

Visualisierung

Deskriptive Statistiken

Parameterschätzung

**Konfidenzintervalle**

Hypothesentest
\vfill

# Konfidenzintervalle

\textcolor{darkblue}{Konfidenzintervalle für die Erwartungswertparameterschätzer}
\vspace{1mm}

\tiny
\setstretch{1}
```{r}
# Analyseparameter
t       = c("Klassisch", "Online")                 # Therapiebedingungen
ntp     = length(tp)                               # Anzahl an Therapiebedingungen
n       = 50                                       # Anzahl von Beobachtungen pro Therapiebedingung
C       = data.frame(                              # Dataframeerzeugung
          G_u       = rep(NaN,ntp),                # untere KI Grenze
          mu_hat    = rep(NaN,ntp),                # Erwartungswertparameterschätzer
          G_o       = rep(NaN,ntp),                # obere KI Grenze
          row.names = tp)                          # Therapiebedingungen


# Konfidenzintervallparameter
delta   = 0.95                                     # Konfidenzlevel
psi_inv = qt((1+delta)/2,n-1)                      # \psi^-1((\delta + 1)/2, n-1)

# Konfidenzintervallevaluation
for(i in 1:ntp){
   data        = D$Delta.BDI[D$Bedingung == t[i]]  # Stichprobenrealisierung
   X_bar       = mean(data)                        # Stichprobenmittel
   S           = sd(data)                          # Stichprobenstandardabweichung
   C$G_u[i]    = X_bar - (S/sqrt(n))*psi_inv       # untere KI Grenze
   C$mu_hat[i] = X_bar                             # Erwartungswertparameterschätzer
   C$G_o[i]    = X_bar + (S/sqrt(n))*psi_inv       # obere KI Grenze
}

# Ausgabe
print.AsIs(C)
```

# Konfidenzintervalle

\textcolor{darkblue}{Konfidenzintervalle für die Varianzparameterschätzer}
\vspace{1mm}

\tiny
\setstretch{1}
```{r}
# Analyseparameter
t       = c("Klassisch", "Online")                    # Therapiebedingungen
ntp     = length(tp)                                  # Anzahl an Therapiebedingungen
n       = 50                                          # Anzahl von Beobachtungen pro Therapiebedingung
C       = data.frame(                                 # Dataframeerzeugung
          G_u        = rep(NaN,ntp),                  # untere KI Grenze
          sigsqr_hat = rep(NaN,ntp),                  # Varianzparameterschätzer
          G_o        = rep(NaN,ntp),                  # obere KI Grenze
          row.names  = tp)                            # Therapiebedingungen


# Konfidenzintervallparameter
delta   = 0.95                                        # Konfidenzlevel
xi_1    = qchisq((1-delta)/2, n - 1)                  # \Xi^2((1-\delta)/2; n - 1)
xi_2    = qchisq((1+delta)/2, n - 1)                  # \Xi^2((1+\delta)/2; n - 1)

# Konfidenzintervallevaluation
for(i in 1:ntp){
   data            = D$Delta.BDI[D$Bedingung == t[i]] # Stichprobenrealisierung
   S2              = var(data)                        # Stichprobenvarianz
   C$G_u[i]        = (n-1)*S2/xi_2                    # untere KI Grenze
   C$sigsqr_hat[i] = S2                               # Varianzparameterschätzer
   C$G_o[i]        = (n-1)*S2/xi_1                    # obere KI Grenze
}

# Ausgabe
print.AsIs(C)
```
#
\vfill
\large
\setstretch{2}
Beispieldatensatz

Visualisierung

Deskriptive Statistiken

Parameterschätzung

Konfidenzintervalle

**Hypothesentest**
\vfill

# Hypothesentest
\textcolor{darkblue}{Anwendungsszenario, Modellannahmen und Hypothese}
\vspace{2mm}

\small
Es liegen zwei Stichproben experimenteller Einheiten (Klassische Bedingung,
Online Bedingung) vor. Wir nehmen unabhängige identische Normalverteilungen
$N(\mu_1,\sigma^2)$ und $N(\mu_2,\sigma^2)$ an, wobei die Parameter $\mu_1,\mu_2,\sigma^2$
unbekannt sind. Wir beabsichtigen das Quantifizieren der Unsicherheit beim
inferentiellen Vergleich von $\mu_1$ mit $\mu_2$.
\vspace{2mm}

Wir führen also einen Zweistichproben-T-Test bei unabhängigen Stichproben unter
Annahme identischer Varianz durch und wollen die Hypothesen $H_0:\mu_1 = \mu_2$
und $H_1:\mu_1 \neq \mu_2$ mit einem Signifikanzniveau von $\alpha_0 = 0.05$ testen.



# Hypothesentest
\textcolor{darkblue}{Manueller Zweistichproben-T-Test}
\vspace{2mm}

\setstretch{1.2}
\tiny
```{r}
# Datenauswahl
x_1       = D$Delta.BDI[D$Bedingung == "Klassisch"]             # \Delta.BDI Daten Klassische Therapie
x_2       = D$Delta.BDI[D$Bedingung == "Online"]                # \Delta.BDI Daten Klassische Therapie
n_1       = length(x_1)                                         # Stichprobengröße n_1
n_2       = length(x_2)                                         # Stichprobengröße n_2
alpha_0   = 0.05                                                # Signifikanzniveau
k_alpha_0 = qt(1 - (alpha_0/2), n_1+n_2-2)                      # kritischer Wert
x_bar_1   = mean(x_1)                                           # x_bar_1
x_bar_2   = mean(x_2)                                           # x_bar_2
s_12      = sqrt((sum((x_1-x_bar_1)^2)+sum((x_2-x_bar_2)^2))/   # gepoolte Standardabweichung s_12
                 (n_1+n_2-2))
t       = sqrt((n_1*n_2)/(n_1+n_2))*((x_bar_1-x_bar_2)/s_12)    # Zweistichproben-T-Teststatistik
if(abs(t) >= k_alpha_0){                                        # Test 1_{|T(X) >= k_alpha_0|}
    phi = 1                                                     # Ablehnen von H_0
} else {
    phi = 0                                                     # Nicht Ablehnen von H_0
}
pval      = 2*(1 - pt(abs(t), n_1+n_2-2))                       # p-Wert
```
# Hypothesentest
\textcolor{darkblue}{Manueller Zweistichproben-T-Test}
\vspace{2mm}

\setstretch{1}
\tiny


```{r}
# Ausgabe
cat("\nx_bar_1   = ", x_bar_1,
    "\nx_bar_2   = ", x_bar_2,
    "\nfg        = ", n_1 + n_2 - 2,
    "\nalpha_0   = ", alpha_0,
    "\nk_alpha_0 = ", k_alpha_0,
    "\nt         = ", t,
    "\nphi       = ", phi,
    "\np-Wert    = ", pval)
```

\small
$\Rightarrow$ Wir lehnen die Nullhypothese $H_0: \mu_1 = \mu_2$ ab.


# Hypothesentest

\textcolor{darkblue}{R Implementation des Zweistichproben-T-Tests}

\vspace{2mm}
\setstretch{1}
\tiny
```{r}
# Automatischer Zweistichproben-T-Test
varphi    = t.test(                           # ?t.test für Details
            x_1,                              # Datensatz x_1
            x_2,                              # Datensatz x_2
            var.equal   = TRUE,               # \sigma_1^2 = \sigma_2^2
            alternative = c("two.sided"),     # H_1: \mu_1 \neq \mu_2
            conf.level  = 1-alpha_0)          # \delta = 1 - \alpha_0 (sic!)

# Ausgabe
print(varphi)

# Genauere Ausgabe t
paste(varphi[1])

# Genauere Ausgabe p
paste(varphi[3])
```


# References
\footnotesize