%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{\tr{Bootstrap methods}{Bootstrap Methoden}} \label{bootstrapchapter} \selectlanguage{ngerman} Beim \determ{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 \determ{Grundgesamtheit}. z.B. die mittlere L\"ange von sauren Gurken (\figref{statisticalpopulationfig}). Aus der Grundgesamtheit wird eine \determ{Stichprobe} (\enterm{simple random sample}, \enterm[SRS|see{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 \determ{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 \determ{Stichprobenverteilung} (\enterm{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 \determ{Resampling} viele neue Stichproben generieren (Bootstrap). Von diesen k\"onnen wir jeweils die gew\"unschte Gr\"o{\ss}e berechnen und ihre Verteilung bestimmen (\determ{Bootstrapverteilung}, \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 \determ{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. \pagebreak[4] \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 \determ{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 \determ[Korrelationskoeffizient]{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} \selectlanguage{english}