%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{\tr{Bootstrap Methods}{Bootstrap Methoden}}

Beim Bootstrap erzeugt man sich die Verteilung von Statistiken durch Resampling
aus der Stichprobe. Das hat mehrere Vorteile:
\begin{itemize}
\item Weniger Annahmen (z.B. muss eine Stichprobe nicht normalverteilt sein).
\item H\"ohere Genauigkeit als klassische Methoden.
\item Allgemeing\"ultigkeit: Bootstrap Methoden sind sich sehr
  \"ahnlich f\"ur viele verschiedene Statistiken und ben\"otigen nicht
  f\"ur jede Statistik eine andere Formel.
\end{itemize}

\begin{figure}[tp]
  \includegraphics[width=0.8\textwidth]{2012-10-29_16-26-05_771}\\[2ex]
  \includegraphics[width=0.8\textwidth]{2012-10-29_16-41-39_523}\\[2ex]
  \includegraphics[width=0.8\textwidth]{2012-10-29_16-29-35_312}
  \titlecaption{\label{statisticalpopulationfig} Warum k\"onnen wir
    nur eine Stichprobe der Grundgesamtheit messen?}{}
\end{figure}

Zur Erinnerung: In der Statistik interessieren wir uns f\"ur
Eigenschaften einer Grundgesamtheit. z.B. die mittlere L\"ange von
sauren Gurken (\figref{statisticalpopulationfig}). Aus der
Grundgesamtheit wird eine Stichprobe (simple random sample, SRS)
gezogen, da niemals die gesamte Grundgesamtheit gemessen werden kann.
Dann wird aus dieser einzigen Stichprobe die gew\"unschte Gr\"o{\ss}e
berechnet (die mittlere Gr\"o{\ss}e der sauren Gurken) und man hofft,
dass die erhaltene Zahl an der entsprechenden unbekannten Gr\"o{\ss}e
der Grundgesamtheit (der Populationsparameter) m\"oglichst nah dran
ist. Eine Aufgabe der Statistik ist es, herauszubekommen wie gut der
Populationsparameter abgesch\"atzt worden ist.

Wenn wir viele Stichproben ziehen w\"urden, dann k\"onnte man f\"ur
jede Stichprobe den gew\"unschten Parameter berechnen, und von diesen
die Wahrscheinlichkeitsverteilung \"uber ein Histogramm bestimmen ---
die ``Stichprobenverteilung'' (sampling distribution,
\subfigref{bootstrapsamplingdistributionfig}{a}).

\begin{figure}[tp]
  \includegraphics[height=0.2\textheight]{srs1}\\[2ex]
  \includegraphics[height=0.2\textheight]{srs2}\\[2ex]
  \includegraphics[height=0.2\textheight]{srs3}
  \titlecaption{\label{bootstrapsamplingdistributionfig}Bootstrap der
    Stichprobenverteilung}{(a) Von der Grundgesamtheit (population) mit
    unbekanntem Parameter (z.B. Mittelwert $\mu$) zieht man
    Stichproben (SRS: simple random samples).  Die Statistik (hier
    Bestimmung von $\bar x$) kann f\"ur jede Stichprobe berechnet
    werden. Die erhaltenen Werte entstammen der
    Stichprobenverteilung. Meisten wird aber nur eine Stichprobe
    gezogen!  (b) Mit bestimmten Annahmen und Theorien kann man auf
    die Stichprobenverteilung schlie{\ss}en ohne sie gemessen zu
    haben.  (c) Alternativ k\"onnen aus der einen Stichprobe viele
    Bootstrap-Stichproben generiert werden (resampling) und so
    Eigenschaften der Stichprobenverteilung empirisch bestimmt
    werden. Aus Hesterberg et al. 2003, Bootstrap Methods and
    Permuation Tests}
\end{figure}

In Wirklichkeit haben wir aber nur eine Stichprobe. Wir behelfen uns
dann mit Theorien, die meistens bestimmte Annahmen \"uber die Daten
machen (z.B. Normalverteilung), und uns erlauben etwas \"uber die
Genaugigkeit unserer Sch\"atzung aus der Stichprobe auszusagen
(z.B. die Formel $\sigma/\sqrt{n}$ f\"ur den Standardfehler des
Mittelwerts, die uns die Standardabweichung angibt, mit dem die
Mittelwerte der Stichproben um den Populationsmittelwert streuen
\subfigref{bootstrapsamplingdistributionfig}{b}).

Wir k\"onnen aber auch aus der einen Stichprobe die wir haben durch
Resampling viele neue Stichproben generieren (Bootstrap). Von diesen
k\"onnen wir jeweils die gew\"unschte Gr\"o{\ss}e berechnen und ihre
Verteilung bestimmen (Bootstrap Verteilung,
\subfigref{bootstrapsamplingdistributionfig}{c}). Diese Verteilung ist
interessanterweise in ihrer Breite und Form der Stichprobenverteilung
sehr \"ahnlich. Nur streut sie nicht um den Populationswert sonder um
die Sch\"atzung aus der Stichprobe. Wir k\"onnen die
Bootstrapverteilung aber benutzen um Aussagen \"uber die Genauigkeit
unserer Sch\"atzung zu treffen (z.B. Standardfehler,
Konfidenzintervalle).

Beim Bootstrap erzeugen wir durch Resampling neue Stichproben und
benutzen diese, um die Stichprobenverteilung einer Statistik zu
berechnen. Die Bootstrap Stichproben haben jeweils den gleichen Umfang
wie die urspr\"unglich gemessene Stichprobe und werden durch Ziehen
mit Zur\"ucklegen gewonnen. Jeder Wert der urspr\"unglichen Stichprobe
kann also einmal, mehrmals oder gar nicht in einer Bootstrap
Stichprobe vorkommen.


\section{Bootstrap des Standardfehlers}

Am besten l\"asst sich die Bootstrap Methode am Beispiel des
Standardfehlers des Mittelwertes veranschaulichen. Aus der Stichprobe
k\"onnen wir den Mittelwert berechnen. Der Standardfehler des
Mittelwerts gibt die Standardabweichung an, mit der wir erwarten, dass
der gemessene Mittelwert um den Populationsmittelwert streut.

\begin{figure}[tp]
  \includegraphics[width=1\textwidth]{bootstrapsem}
  \titlecaption{\label{bootstrapsemfig}Bootstrap des Standardfehlers des
    Mittelwertes.}{Die --- normalerweise unbekannte ---
    Stichprobenverteilung des Mittelwerts (rot) ist um den
    Populationsmittelwert bei $\mu=0$ zentriert.  Die
    Bootstrap-Verteilung (blau), die durch Resampling aus einer
    Stichprobe gewonnen worden ist, hat die gleiche Form und Breite
    wie die Stichprobenverteilung, ist aber um den Mittelwert der
    Stichprobe zentriert. Die Standardabweichung der
    Bootstrapverteilung kann also als Sch\"atzer f\"ur den
    Standardfehler des Mittelwertes verwendet werden.}
\end{figure}

Durch Bootstrap k\"onnen wir unsere Stichprobe resamplen und dadurch
eine ganze Verteilung von Mittelwerten generieren
(\figref{bootstrapsemfig}). Die Standardabweichung dieser Verteilung
ist dann der gesuchte Standardfehler des Mittelwerts.

\begin{exercise}{bootstrapsem.m}{bootstrapsem.out}
  Erzeuge die Verteilung der Mittelwerte einer Stichprobe durch Bottstrapping,
  um daraus den Standardfehler des Mittelwerts zu bestimmen.
  \begin{enumerate}
  \item Ziehe 1000 normalverteilte Zufallszahlen und berechne deren
    Mittelwert, Standardabweichung und Standardfehler
    ($\sigma/\sqrt{n}$).
  \item Resample die Daten 1000 mal (Ziehen mit Zur\"ucklegen) und
    berechne jeweils den Mittelwert.
  \item Plotte ein Histogramm dieser Mittelwerte, berechne deren
    Mittelwert und Standardabweichung und vergleiche mit den Werten
    der Grundgesamtheit und der Stichprobe.
  \end{enumerate}
\end{exercise}


\section{Permutationstests}
Bei statistischen Tests wird nach der Wahrscheinlichkeit, ob die
beobachtete Me{\ss}gr\"o{\ss}e einer Stichprobe aus der Nullhypothese
kommt, gefragt. Ist diese Wahrscheinlichkeit kleiner als das
Signifikanzniveau, kann die Nullhypothese verworfen werden.

Traditionell werden diese Wahrscheinlichkeiten \"uber theoretisch
hergeleitete Wahrscheinlichkeitsverteilungen berechnet. Dabei gehen
immer gewisse Annahmen \"uber die Daten ein und es mu{\ss} der zu den
Daten passende Test ausgew\"ahlt werden.

Alternativ kann die Wahrscheinlichkeits(dichte)verteilung der
Nullhypothese aus den Daten selbst gewonnen werden. Dabei m\"ussen die
Daten entsprechend der Nullhypothese neu aus der Stichprobe gezogen
werden.

Diese ``Permutationstests'' haben den Vorteil, dass nur die
Eigenschaft von Interesse zerst\"ort wird, um die Nullhypothese zu
generieren. Alle anderen Eigenschaften der Daten bleiben erhalten.

\begin{figure}[tp]
  \includegraphics[width=1\textwidth]{permutecorrelation}
  \titlecaption{\label{permutecorrelationfig}Permutationstest f\"ur
    Korrelationen.}{Der Korrelationskoeffizient eines Datensatzes mit
    200 Datenpaaren ist $\rho=0.21$. Die Nullhypothesenverteilung der
    aus den permutierten, unkorrelierten Datens\"atzen berechneten
    Korrelationskoeffizienten ergibt die gelbe Verteilung, die um Null
    streut.  Der gemessene Korrelationskoeffizient ist deutlich
    gr\"o{\ss}er als das 95\,\%-Perzentil der
    Nullhypoothesenverteilung und darum eine signifikante
    Korrelation.}
\end{figure}

Sehr sch\"on lassen sich Permutationstest am Beispiel von
Korrelationen veranschaulichen. Gegeben sind Datenpaare $(x_i, y_i)$.
Daraus k\"onnen wir den Korrelationskoeffizienten berechnen. Wir
wissen dann aber noch nicht, ob der berechnete Wert tats\"achlich eine
Korrelation anzeigt.  Die Nullhypothese ist, dass die Daten nicht
miteinander korreliert sind. Indem wir die $x$-Werte und die $y$-Werte
unabh\"angig voneinander permutieren (ihre Reihenfolge zuf\"allig neu
anordnen), werden die Korrelationen der Datenpaare zerst\"ort. Wenn
wir das viele Male wiederholen, bekommen wir die Verteilung der
Korrelationskoeffizienten f\"ur nichtkorrelierte Daten. Aus dieser
Verteilung der Nullhypothese k\"onnen wir dann dann die Signifikanz
der tats\"achlich gemessenen Korrelation bestimmen.

\begin{exercise}{correlationsignificance.m}{correlationsignificance.out}
Bestimme die Signifikanz eines Korrelationskoeffizienten.
\begin{enumerate}
\item Erzeuge korrelierte Daten indem zu zuf\"allig gezogenen
  $x$-Werten $y$-Werte gem\"a{\ss} $y=0.2 \cdot x$ berechnet werden,
  zu denen weitere normalverteilte Zufallszahlen addiert werden.
\item Berechne den Korrelationskoeffizient dieser Datenpaare.
\item Generiere die Verteilung der Nullhypothese ``unkorrelierte
  Daten'' indem die $x$- und $y$-Daten 1000-mal unabh\"angig
  permutiert werden \matlabfun{randperm} und jeweils der
  Korrelationskoeffizient berechnet wird.
\item Bestimme aus den Nullhypothesendaten das 95\,\%-Perzentil und
  vergleiche es mit dem tats\"achlichen Korrelationskoeffizienten.
\end{enumerate}
\end{exercise}

