Der Bootstrap verständlich erklärt
Sie haben zehn Fahrzeiten zur Arbeit notiert und wollen wissen, wie sicher ihr Durchschnitt ist. Ein Verfahren dafür mischt die vorhandenen Werte immer wieder neu. Diese Seite zeigt, wie das geht und wo es trügt.
Zuletzt aktualisiert:
Ein Wort unbekannt? Das Begriffsverzeichnis erklärt es in wenigen Sätzen.
Zehn Fahrzeiten und eine Frage
Stellen Sie sich vor, Sie haben an 10 Tagen notiert, wie lange Ihre Fahrt zur Arbeit gedauert hat. Sie rechnen den Durchschnitt aus. Nun fragen Sie sich, wie sicher dieser Durchschnitt ist. Eine andere Woche hätte vielleicht einen anderen ergeben.
Sie hätten gern eine Spanne, in der der wahre Durchschnitt wahrscheinlich liegt. Gemeint ist der Durchschnitt aller Fahrten, die Sie je machen werden. Neue Wochen können Sie aber nicht abwarten.
Hier hilft ein Gedankenspiel mit Zetteln. Sie schreiben jede der 10 Fahrzeiten auf einen Zettel und legen alle in einen Hut. Dann ziehen Sie einen Zettel, notieren die Zahl und legen den Zettel zurück. Das tun Sie 10 Mal. Weil jeder Zettel zurückkommt, kann einer mehrfach vorkommen und ein anderer gar nicht.
Aus den 10 gezogenen Zahlen rechnen Sie einen neuen Durchschnitt aus. Danach wiederholen Sie das ganze Spiel sehr oft. Jedes Mal kommt ein etwas anderer Durchschnitt heraus. Sie sortieren alle Durchschnitte und streichen unten und oben je einen kleinen Teil. Der Bereich, den die übrigen 95 von 100 überdecken, ist Ihre Spanne (Fachwort: Intervall). Das ganze Verfahren heißt Bootstrap.
Der Gedanke dahinter: Ihre Zettel sind alles, was Sie von der Wirklichkeit wissen. Das Verfahren tut so, als wäre der Stapel die ganze Wirklichkeit, und spielt damit neue Wochen durch. Die sonst übliche Formel (Fachwort: t-Intervall) rechnet die Spanne aus Durchschnitt und Streuung der Werte. Der Bootstrap kommt ohne sie aus und lässt sich auch auf andere Kennzahlen anwenden.
Ob die Spanne stimmt, lässt sich messen
Zu dieser Seite gehört ein Programm zum Ausprobieren. Der erste Knopf unten öffnet es, der zweite führt zum zweiten Teil für Fachleute. Zum Verstehen brauchen Sie das Programm nicht.
Es erzeugt erfundene Fahrzeiten mit bekanntem wahren Durchschnitt und wendet das Verfahren an. Bei sehr vielen Datensätzen zählt es die Treffer, also wie oft die Spanne den wahren Wert enthält.
Eine Spanne soll in 95 von 100 Fällen den wahren Wert enthalten. Der Anteil der Treffer heißt Abdeckung. Alle Messwerte in diesem Teil stammen aus erfundenen Datensätzen, einem vereinfachten Rechenbild (Fachwort: Modell).
Fünf Stellen, an denen die Spanne trügt
Die Messung zeigt fünf Stellen, an denen die Spanne ihr Versprechen nicht hält. Bei vier davon zeigt der Zettelstapel die Wirklichkeit nicht richtig, bei der fünften wird zu selten gezogen.
- Wenige Werte und seltene Ausreißer. Fahrzeiten sind meist kurz und selten sehr lang (Fachwort: schiefe Verteilung). Unter 10 Zetteln fehlt der Stautag oft. Dann wirkt der Stapel harmloser als die Wirklichkeit, und die Spanne liegt zu niedrig. In der Messung enthielt sie den wahren Durchschnitt bei 10 Werten nur in gut acht von zehn Fällen.
- Der größte Wert. Sie wollen wissen, wie lang Ihre längste Fahrt überhaupt werden kann. Aus dem Stapel holen Sie nie mehr heraus als den größten Zettel. Das ist die längste Fahrt, die Sie schon erlebt haben. Jede gespielte Woche bleibt darunter. Die wirklich längste Fahrt kann länger sein. Gemessen wurde das an Zufallszahlen zwischen null und eins, deren größter möglicher Wert eins ist. Diese Spanne enthielt die Eins nie.
- Seltene Ereignisse. Sie zählen an 30 Tagen, wie oft Ihr Zug ausfällt. Fällt er nur an etwa 1 von 100 Tagen aus, sehen Sie oft keinen einzigen Ausfall. Dann tragen alle Zettel „kein Ausfall“, jedes Spiel ergibt null, und die Spanne schrumpft auf einen Punkt bei null. Gemessen wurde derselbe Gedanke an einem erfundenen Straßennetz, das selten auseinanderfällt: Bei 30 Beobachtungen hatten sieben von zehn Stichproben keinen Ausfall. Die Spanne traf den wahren Wert nur in drei von zehn Fällen.
- Zu seltenes Ziehen. Wer das Zettelspiel nur wenige Male spielt, bekommt eine Spanne, deren Ränder vom Zufall wackeln. Die Ränder liegen bei den seltensten Durchschnitten, und die erwischt man in wenigen Spielen nur zufällig. Mit sehr vielen Spielen traf die Spanne in der Messung in etwa 90 von 100 Fällen. Mit nur 19 Spielen traf sie um knapp 5 von 100 seltener.
- Werte mit Gedächtnis. Staus können mehrere Tage andauern: Auf einen langen Tag folgt eher wieder ein langer. Das Mischen der Zettel zerstört diese Reihenfolge und tut so, als wäre jeder Tag unabhängig. Zusammenhängende Tage enthalten weniger Neues als unabhängige. Zwei Zeugen, die voneinander abgeschrieben haben, zählen auch weniger als zwei unabhängige. Gemessen wurde mit langen Reihen von Tagen und starkem Zusammenhang von Tag zu Tag. Die Spanne enthielt den wahren Durchschnitt nur in etwa jedem zweiten Fall.
Was hilft?
- Bei schiefen Werten vorsichtiger rechnen. Eine Abwandlung des Verfahrens rechnet die Schiefe ausdrücklich mit (Fachwort: Bootstrap-t). Sie traf bei 10 Werten in etwa neun von zehn Fällen. Der Preis: Die Spanne war mehr als doppelt so breit. Sie muss den seltenen langen Tag einplanen.
- Bei seltenen Ereignissen eine andere Formel. Sie rechnet damit, dass ein Ereignis, das man nicht sah, trotzdem möglich bleibt (Fachwort: Wilson-Intervall). In derselben Messung mit 30 Beobachtungen traf sie in etwa 95 von 100 Fällen.
- Bei Gedächtnis Streifen statt Zettel. Man zieht nicht einzelne Tage, sondern ganze Streifen aufeinanderfolgender Tage (Fachwort: Blockbootstrap). Im Streifen bleibt der Zusammenhang erhalten. In der Messung traf die Spanne mit langen Streifen statt in etwa jedem zweiten Fall in neun von zehn. Auch hier wurde die Spanne mehr als doppelt so breit.
Häufige Missverständnisse
- „Mehr Spiele machen die Spanne zuverlässiger.“ Nur bis zu einem Punkt. Jedes Spiel benutzt dieselben Zettel, und was dort fehlt, fehlt in jedem Spiel. In der Messung brachten sehr viele statt 99 Spiele nur gut 1 von 100 Treffern mehr. Mit 100 statt 10 echten Werten waren es etwa 9 von 100 mehr (bei schiefen Fahrzeiten wie oben).
- „Eine schmale Spanne ist eine sichere Spanne.“ Nein. Im Zugbeispiel war die Spanne am schmalsten, wenn kein Ausfall vorkam, nämlich ein Punkt. Sie verfehlte den wahren Wert dann immer.
- „Der Bootstrap ist besser als die übliche Formel.“ Nicht allgemein. Bei 10 schiefen Werten traf in der Messung die übliche Formel öfter als die Bootstrap-Spanne. Sein Vorteil: Er passt auch bei Kennzahlen ohne einfache Formel, etwa dem mittleren Wert einer geordneten Reihe (Fachwort: Median), wo er in der Messung in etwa 95 von 100 Fällen traf.
Woran Sie das im Alltag erkennen
- Eine Spanne oder Fehlerangabe, etwa bei einer Umfrage, wird genannt, aber nicht, wie viele Werte dahinterstehen.
- Eine Aussage lautet „bisher ist nie etwas passiert, also ist das Risiko null“. Bei wenigen Beobachtungen fehlt ein seltenes Ereignis ohnehin oft.
- Die Werte stammen aus aufeinanderfolgenden Tagen oder Messungen, und ein Wert beeinflusst den nächsten. Dann ist eine Spanne verdächtig, die jeden Wert wie neu behandelt.
Wie ernst ist das Rechenbild zu nehmen?
Die Messung zeigt, wo das Verfahren trügt, nicht wie oft es bei Ihren Daten trügt.
Was Sie mitnehmen:
- Fragen Sie bei jeder Spanne, was in den Zetteln fehlen könnte.
- Neu mischen kann nur, was schon da ist.
- Prüfen Sie ein Verfahren an einem Fall, dessen Antwort Sie kennen, bevor Sie ihm bei einem unbekannten Fall trauen.
Hinweis: Alle Demos rechnen mit synthetischen oder frei verfügbaren Beispieldaten und laufen auf einem externen Anbieter (Datenschutz). Bitte geben Sie darin keine vertraulichen oder personenbezogenen Daten ein. Die Ergebnisse gelten für die jeweilige Demo-Instanz und lassen sich nicht ungeprüft auf reale Fälle übertragen; für darauf gestützte Entscheidungen übernehme ich keine Gewähr.
Modell und Annahmen
Dieser Teil ist eigenständig lesbar. Gegenstand ist die Frage, wann das Bootstrap-Intervall für eine Kennzahl einer Stichprobe sein Niveau hält: Ein Intervall zum Niveau \(1-\alpha = 0{,}95\) soll die Wahrheit in 95 % der Fälle enthalten. Dieser Anteil heißt Abdeckung. In allen Messreihen sind die Daten erfunden und die Wahrheit ist exakt bekannt, die Abdeckung wird also gemessen, nicht angenommen. Kurzfassung der Befunde: Das Perzentil-Intervall hält das Niveau nur, wenn die Stichprobe die Verteilung genügend kennt (genug Werte bei schiefen Daten, eine glatte Kennzahl, genug Ereignisse, genug Ziehungen, unabhängige Daten); wo Abwandlungen die Abdeckung heben, kostet das Breite.
- Bootstrap: Aus Beobachtungen \(x_1,\dots,x_n\) mit der empirischen Verteilung \(F_n\) (Gewicht \(1/n\) je Beobachtung) werden \(B\) Stichproben vom Umfang \(n\) mit Zurücklegen gezogen. Jede liefert \(\theta^{*b} = \theta(x^{*b})\); \(\hat\theta\) ist die Kennzahl der Originalstichprobe. Die Verteilung der \(\theta^{*b}\) soll die unbekannte Stichprobenverteilung von \(\hat\theta\) ersetzen. Mit \(q_\gamma\) ist das \(\gamma\)-Quantil der \(\theta^{*b}\) bezeichnet.
- Log-normale Dauern: \(X = e^{\sigma Z}\) mit \(Z \sim \mathcal N(0,1)\) und \(\sigma \in \{0{,}5;\ 1{,}0;\ 1{,}5\}\); größeres \(\sigma\) heißt schiefer. Die Wahrheiten sind in geschlossener Form bekannt: Mittelwert \(e^{\sigma^2/2}\), Median 1, 90-%-Quantil \(e^{1{,}2816\,\sigma}\), Standardabweichung \(\sqrt{e^{\sigma^2}(e^{\sigma^2}-1)}\).
- Ausfälle eines Netzes (Bernoulli-Daten): Jede Kante eines Netzes hält unabhängig mit Wahrscheinlichkeit \(p\); das Netz fällt aus, wenn nicht mehr alle Knoten verbunden sind. Die Ausfallwahrscheinlichkeit \(\pi\) ist aus der Aufzählung aller Kantenmengen exakt bekannt; für den Bootstrap zählt nur \(\pi\), das Netz liefert die exakte Wahrheit. Zur Wahl stehen drei Netze: das Gitter 3×3, das Gitter 3×4 und die Hantel (zwei Dreiecke, durch eine Brücke verbunden). Ausgewertet sind unten \(\pi = 0{,}01184\) (Gitter 3×3, \(p = 0{,}95\)), \(\pi = 0{,}05302\) (Gitter 3×3, \(p = 0{,}9\)), \(\pi = 0{,}14969\) (Hantel, \(p = 0{,}9\)) und \(\pi = 0{,}48901\) (Gitter 3×3, \(p = 0{,}7\)). Eine Stichprobe sind \(n\) unabhängige Beobachtungen „Netz ausgefallen oder nicht“; \(S\) ist die Zahl der Ausfälle, \(\hat\pi = S/n\) die geschätzte Rate.
- Daten mit Gedächtnis: AR(1)-Prozess \(x_t = \varphi\,x_{t-1} + \varepsilon_t\) mit Rauschvarianz 1, \(n = 500\), Wahrheit \(\mu = 0\) für den Mittelwert, \(\varphi \in \{0;\ 0{,}5;\ 0{,}8;\ 0{,}95\}\). Für \(\varphi = 0\) sind die Daten unabhängig.
- Kennzahlen: Mittelwert, Median, 90-%-Quantil und Standardabweichung der log-normalen Daten; das Maximum einer Gleichverteilung auf \((0,1)\) (Wahrheit 1); der Anteil \(\hat\pi\) bei Bernoulli-Daten.
- Intervalle: t-Intervall (nur Mittelwert), Perzentil, basic (umgekehrtes Perzentil), Bootstrap-t (nur Mittelwert) und BCa; bei Bernoulli-Daten zusätzlich Wilson und Wald; bei abhängigen Daten der gleitende Blockbootstrap mit Blocklänge \(\ell\): \(\lceil n/\ell\rceil\) Blöcke aufeinanderfolgender Werte werden mit Zurücklegen gezogen, aneinandergesetzt und auf \(n\) gekürzt. Die Formeln stehen im nächsten Abschnitt.
- Fünf Messreihen: (1) Abdeckung des Mittelwerts gegen \(n = 10\) bis 200, je \(n\) 500 Datensätze, \(B = 499\). (2) Die übrigen Kennzahlen bei \(n = 50\), 500 Wiederholungen, \(B = 499\) bzw. 999. (3) Seltene Ereignisse für \(n = 30\) bis 3.000, exakt gerechnet ohne Simulation. (4) Zahl der Ziehungen \(B = 19\) bis 999 bei 500 Wiederholungen; die Streuung der Endpunkte über 40 Datensätze mit je 10 Bootstrap-Läufen. (5) AR(1) mit \(n = 500\), 200 Wiederholungen, \(B = 299\) und den Blocklängen 5, 10, 25 und 50.
- Zufallszahlen: Die Ziehungen kommen aus festen, nummerierten Zufallsströmen (SplitMix64); jede Messreihe hat ihren eigenen Strom. Ein anderer Strom verschiebt einzelne Zellen (siehe Grenzen).
- Alles erfunden: Daten, Netze und Prozesse stehen für keine Messdaten.
Die Formeln
Für den Mittelwert ist die Bootstrap-Verteilung in geschlossener Form bekannt: Mit \(s_n^2 = \frac1n\sum_i (x_i-\bar x)^2\) gilt \(\mathbb E^*\bar x^* = \bar x\) und \(\operatorname{Var}^*\bar x^* = s_n^2/n\). Der Stern bezeichnet Erwartung und Varianz über die Ziehungen bei festen Daten. Gegenüber der üblichen Varianzschätzung mit \(n-1\) im Nenner ist \(s_n^2\) um den Faktor \((n-1)/n\) kleiner (Rechnung dieser Seite).
Das Perzentil-Intervall zum Niveau \(1-\alpha\) nimmt die mittleren Quantile der Bootstrap-Werte:
\[[q_{\alpha/2},q_{1-\alpha/2}]\]
Das umgekehrte Perzentil-Intervall (basic) spiegelt sie am Schätzwert, bei schiefer Bootstrap-Verteilung also zur anderen Seite:
\[[2\hat\theta-q_{1-\alpha/2},2\hat\theta-q_{\alpha/2}]\]
Bootstrap-t (nur Mittelwert) bootstrappt die studentisierte Größe. Dabei ist \(\mathrm{SE}^*\) der Standardfehler der jeweils gezogenen Stichprobe (ihre Stichprobenstandardabweichung durch \(\sqrt n\)):
\[t^*=(\theta^*-\hat\theta)/\mathrm{SE}^*\]
Mit dem Standardfehler \(\widehat{\mathrm{SE}}\) der Originalstichprobe und dem \(\gamma\)-Quantil \(t^*_\gamma\) der \(t^*\) lautet das Intervall (die Quantile werden wie beim basic-Intervall vertauscht):
\[[\hat\theta-t^*_{1-\alpha/2}\widehat{\mathrm{SE}},\hat\theta-t^*_{\alpha/2}\widehat{\mathrm{SE}}]\]
BCa ersetzt die Niveaus \(\alpha/2\) und \(1-\alpha/2\) des Perzentil-Intervalls durch korrigierte Niveaus \(\gamma_1\) und \(\gamma_2\); das Intervall ist \([q_{\gamma_1}, q_{\gamma_2}]\). Mit der Verteilungsfunktion \(\Phi\) der Standardnormalverteilung, ihrem \(\gamma\)-Quantil \(z_\gamma\), der Verzerrungskorrektur \(z_0\) und der Beschleunigung \(a\) ist
\[\gamma_1=\Phi\bigl(z_0+\frac{z_0+z_{\alpha/2}}{1-a(z_0+z_{\alpha/2})}\bigr)\]
und \(\gamma_2\) entsprechend mit \(z_{1-\alpha/2}\) statt \(z_{\alpha/2}\). Die Verzerrungskorrektur misst, wie weit der Schätzwert in der Bootstrap-Verteilung von der Mitte entfernt liegt. Ohne Gleichstände ist sie:
\[z_0=\Phi^{-1}\bigl(\#\{\theta^*<\hat\theta\}/B\bigr)\]
Bei Gleichständen \(\theta^* = \hat\theta\) (etwa beim Maximum) zählt jeder mit halbem Gewicht: Im Zähler steht dann \(\#\{\theta^*<\hat\theta\} + \tfrac12\,\#\{\theta^*=\hat\theta\}\). Der Anteil wird außerdem auf das Intervall von \(1/(B+1)\) bis \(1-1/(B+1)\) begrenzt. Die Beschleunigung kommt aus dem Jackknife: \(\theta_{(i)}\) ist die Kennzahl ohne die \(i\)-te Beobachtung, \(\bar\theta_{(\cdot)}\) ihr Mittel über \(i\).
\[a=\frac{\sum(\bar\theta_{(\cdot)}-\theta_{(i)})^3}{6\,(\sum(\bar\theta_{(\cdot)}-\theta_{(i)})^2)^{3/2}}\]
Bei Bernoulli-Daten ist der Bootstrap ohne Simulation rechenbar. Bei \(S\) Ausfällen in \(n\) Beobachtungen ist die Ausfallzahl einer gezogenen Stichprobe binomialverteilt, die Perzentil-Grenzen sind Quantile dieser Verteilung geteilt durch \(n\) (jeweils der kleinste Wert, dessen Verteilungsfunktion das Niveau erreicht):
\[S^*\sim\mathrm{Binomial}(n,S/n)\]
Mit \(S\sim\mathrm{Binomial}(n,\pi)\) und dem Intervall \(I_s\), das zu \(S=s\) gehört, ist die Abdeckung exakt:
\[\sum_s\mathbb P(S=s)\,\mathbf 1[\pi\in I_s]\]
Für das Maximum einer Stichprobe ist die Wahrscheinlichkeit, dass eine Bootstrap-Stichprobe dasselbe Maximum enthält:
\[\mathbb P(\max x^*=\max x)=1-(1-1/n)^n\to1-e^{-1}\approx0{,}632\]
Bei Daten mit Gedächtnis ist die Varianz des Mittels nicht \(c_0/n\) mit der Varianz \(c_0\) eines Werts, sondern ungefähr \(\frac1n\sum_h c_h\) mit den Autokovarianzen \(c_h\) (Langzeitvarianz). Beim AR(1)-Prozess mit Rauschvarianz 1 ist sie:
\[\frac1n(1-\varphi)^{-2}\]
Herleitungen Schritt für Schritt
Die folgenden Rechnungen sind Rechnungen dieser Seite, keine Messungen. Wo eine Messung dieselbe Größe liefert, steht der Vergleich dabei.
Warum das Perzentil-Intervall beim Maximum nie trifft.
- Schritt 1: Jede der \(n\) Ziehungen einer Bootstrap-Stichprobe verfehlt den größten Wert der Stichprobe mit Wahrscheinlichkeit \(1-1/n\).
- Schritt 2: Alle \(n\) unabhängigen Ziehungen verfehlen ihn mit \((1-1/n)^n\) (bei stetigen Daten, in denen der größte Wert nur einmal vorkommt). Das Gegenereignis hat Wahrscheinlichkeit \(1-(1-1/n)^n\), mit dem Grenzwert \(1-e^{-1}\) für großes \(n\).
- Schritt 3: Für \(n = 50\) liefert die Formel einen Wert, der auf 63,6 % rundet. Die Demo weist genau diesen Wert aus derselben Formel aus, gezählt ist er dort nicht; eine Simulation bestätigt dort etwa 63 %.
- Schritt 4: Jeder Wert einer Bootstrap-Stichprobe ist ein Wert der Originalstichprobe. Also gilt \(\max x^* \le \max x\), und jedes Quantil der Bootstrap-Maxima liegt höchstens bei \(\max x\). Liegen alle Beobachtungen unter dem wahren Maximum 1, was bei stetig verteilten Daten auf \((0,1)\) mit Wahrscheinlichkeit 1 gilt, liegt die Wahrheit über der oberen Grenze. Die Abdeckung des Perzentil-Intervalls ist dann 0, für jedes \(B\) und jedes Niveau.
- Schritt 5: Das basic-Intervall spiegelt am Schätzwert \(\max x\) nach oben und kann die 1 deshalb treffen. So ist die gemessene Abdeckung von 0,860 möglich.
Warum ein Intervall bei null Ereignissen versagt.
- Schritt 1: Ist \(S=0\), besteht die Stichprobe nur aus Nullen, und jede Bootstrap-Stichprobe auch: \(S^*\equiv 0\). Alle Quantile sind 0, das Perzentil-Intervall ist \([0,0]\) mit Breite 0 und enthält \(\pi>0\) nicht.
- Schritt 2: Dieser Fall hat die Wahrscheinlichkeit \(\mathbb P(S=0) = (1-\pi)^n\). Für \(\pi = 0{,}01184\) und \(n = 30\) rundet sie auf den Tabellenwert der Spalte „ohne Ereignis“.
- Schritt 3: Die Abdeckung 0,300 des Perzentil-Intervalls bei \(n = 30\) ist innerhalb der Rundung gleich 1 minus diesem Anteil. Fast alle Stichproben mit mindestens einem Ausfall treffen hier also; die Ausnahmen sind Stichproben mit sehr vielen Ausfällen, deren Intervall über \(\pi\) liegt, weniger als ein Promille (Rechnung dieser Seite mit der oben abgesetzten Abdeckungssumme). Alle ohne Ausfall verfehlen.
- Schritt 4: Das Wald-Intervall \(\hat\pi \pm z\sqrt{\hat\pi(1-\hat\pi)/n}\) (mit dem Normalquantil \(z = z_{1-\alpha/2}\)) hat bei \(S=0\) ebenfalls die Breite 0.
- Deutung: Die Bootstrap-Verteilung \(S^*/n\) hat den Mittelwert \(\hat\pi\) und die Varianz \(\hat\pi(1-\hat\pi)/n\), also die Streuung, auf der das Wald-Intervall beruht. Das macht plausibel, dass beide Intervalle bei kleinem \(n\) nahe beieinander liegen. Bewiesen ist das hier nicht.
Warum der Bootstrap bei Daten mit Gedächtnis zu schmal ist.
- Schritt 1: Beim AR(1)-Prozess mit Rauschvarianz 1 ist \(c_h = \varphi^{|h|}/(1-\varphi^2)\), und es gilt \(\sum_h \varphi^{|h|} = (1+\varphi)/(1-\varphi)\). Die Summe aller \(c_h\) ist damit \(1/(1-\varphi)^2\), die abgesetzte Formel oben.
- Schritt 2: Der iid-Bootstrap mischt die Werte, zerstört die Abhängigkeit und trifft nur \(c_0/n\) (die Varianz der Einzelwerte durch \(n\)).
- Schritt 3: Das Verhältnis der beiden Varianzen ist \((1+\varphi)/(1-\varphi)\). Das Verhältnis der Streuungen und damit der Intervallbreiten ist die Wurzel daraus, für \(\varphi = 0{,}8\) gleich 3.
- Vergleich: Gemessen ist die mittlere Breite beim iid-Bootstrap 0,284 und beim Blockbootstrap der Länge 25 gleich 0,751, das 2,6-Fache. Das liegt unter dem Faktor 3: Die Blöcke holen die Breite fast, aber nicht ganz zurück, passend zur Abdeckung unter dem Niveau.
Warum die Fehltreffer auf einer Seite liegen (Deutung). Bei rechtsschiefen Daten fehlen in kleinen Stichproben oft die seltenen großen Werte. Dann liegt der Stichprobenmittelwert eher unter dem wahren Mittel, und ein Intervall, das sich um die Stichprobe herum aufbaut, endet eher unter der Wahrheit. Das passt zur gemessenen Einseitigkeit, ist aber eine Deutung dieser Seite: Gemessen sind nur die beiden Fehltrefferanteile.
Befunde
Alle simulierten Zellen sind Anteile aus 500 Wiederholungen (abhängige Daten: 200). Zuerst der Mittelwert log-normaler Daten, \(B = 499\), Niveau 0,95:
| σ | n | t-Intervall | Perzentil | basic | Bootstrap-t | BCa |
|---|---|---|---|---|---|---|
| 1,0 | 10 | 0,862 | 0,826 | 0,802 | 0,902 | 0,844 |
| 1,0 | 20 | 0,886 | 0,872 | 0,836 | 0,920 | 0,876 |
| 1,0 | 50 | 0,878 | 0,880 | 0,850 | 0,906 | 0,884 |
| 1,0 | 100 | 0,916 | 0,916 | 0,890 | 0,934 | 0,918 |
| 1,0 | 200 | 0,938 | 0,924 | 0,924 | 0,944 | 0,928 |
| 1,5 | 10 | 0,754 | 0,716 | 0,672 | 0,876 | 0,772 |
| 1,5 | 20 | 0,760 | 0,750 | 0,708 | 0,872 | 0,798 |
| 1,5 | 50 | 0,800 | 0,804 | 0,770 | 0,866 | 0,822 |
| 1,5 | 100 | 0,846 | 0,854 | 0,814 | 0,898 | 0,880 |
| 1,5 | 200 | 0,882 | 0,892 | 0,858 | 0,920 | 0,896 |
- Perzentil gegen t: Bei σ = 1,0 und \(n = 10\) liegt das Perzentil-Intervall unter dem t-Intervall, der Abstand ist mehr als doppelt so groß wie die Genauigkeit einer Zelle. Ab \(n = 50\) sind beide innerhalb der Messgenauigkeit gleichauf. Die Vermutung, das Perzentil-Intervall rette schiefe Daten bei kleinem \(n\), stimmt in dieser Messung nicht. Bootstrap-t liegt dagegen in jeder Zeile über dem t-Intervall, kostet aber Breite (unten).
- Rangfolge: Die Intervalle einer Zeile werden auf denselben Datensätzen berechnet; Vergleiche innerhalb einer Zeile sind deshalb schärfer als die Genauigkeit einer einzelnen Zelle. Einzelne Abstände von nur 0,006 bis 0,016 bleiben trotzdem Rauschen. Dass sich dieselbe Rangfolge in zehn Zeilen wiederholt, ist ein stärkerer Beleg. In allen zehn Zeilen liegt Bootstrap-t am nächsten am Niveau und BCa zwischen Perzentil und Bootstrap-t. Das basic-Intervall ist in allen Zeilen am niedrigsten, in einer (σ = 1,0, \(n = 200\)) gleichauf mit dem Perzentil-Intervall.
- Niveau: Keine Zelle liegt über 0,95. Der höchste Wert (Bootstrap-t, σ = 1,0, \(n = 200\)) liegt innerhalb der Messgenauigkeit am Niveau.
- Schiefe: Jedes Intervall deckt bei σ = 1,5 in jeder Zeile schlechter als bei σ = 1,0 mit gleichem \(n\). Bei σ = 0,5 und \(n = 10\) deckt das Perzentil-Intervall 0,880 und das t-Intervall 0,922.
- Fehltreffer: Für das Perzentil-Intervall bei σ = 1,0 und \(n = 10\) liegt die Wahrheit in 16,4 % der Läufe über dem Intervall und in 1,0 % darunter. Die beiden Anteile stammen aus denselben Läufen wie die Abdeckung der Tabelle.
- Breite: Bootstrap-t kostet Breite. Bei \(n = 10\) ist die mittlere Breite für σ = 1,0 beim Bootstrap-t 4,58 gegen 1,94 beim Perzentil-Intervall (2,4-fach), für σ = 1,5 sind es 29,26 gegen 5,22 (5,6-fach). Bei σ = 1,5 und \(n = 20\) ist es etwa das 2,9-Fache.
Andere Kennzahlen: Mittelwert, Median, 90-%-Quantil und Standardabweichung log-normaler Daten (σ = 1,0, \(n = 50\), \(B = 499\)) und das Maximum einer Gleichverteilung auf \((0,1)\), Abdeckung des Niveaus 0,95. „–“ bedeutet: nicht ausgewiesen.
| Kennzahl | Perzentil | basic | BCa |
|---|---|---|---|
| Mittelwert | 0,882 | 0,856 | 0,910 |
| Median | 0,946 | 0,854 | 0,944 |
| 90-%-Quantil | 0,884 | 0,748 | 0,926 |
| Standardabweichung | 0,586 | 0,614 | 0,670 |
| Maximum (Gleichverteilung) | 0,000 | 0,860 | – |
Der Median ist nahe am Niveau, die Standardabweichung weit darunter. Auch BCa hebt sie nicht in die Nähe des Niveaus, beim 90-%-Quantil dagegen deutlich näher ans Niveau (0,926 gegen 0,884 beim Perzentil-Intervall). Bei σ = 1,5 und \(n = 10\) deckt das Perzentil-Intervall die Standardabweichung mit 0,238, den Median mit 0,966. Gegen \(n\) (σ = 1,0, \(B = 999\), Perzentil):
| Kennzahl | n = 10 | n = 20 | n = 50 | n = 100 | n = 200 |
|---|---|---|---|---|---|
| Standardabweichung | 0,412 | 0,536 | 0,582 | 0,682 | 0,742 |
| 90-%-Quantil | 0,688 | 0,860 | 0,880 | 0,928 | 0,932 |
Seltene Ereignisse: Exakt gerechnet, ohne Simulationsrauschen; Anteil der Stichproben ohne Ereignis in der letzten Spalte („–“: nicht ausgewiesen).
| π | n | Perzentil | Wilson | Wald | ohne Ereignis |
|---|---|---|---|---|---|
| 0,01184 | 30 | 0,300 | 0,951 | 0,300 | 70,0 % |
| 0,01184 | 100 | 0,695 | 0,969 | 0,695 | 30,4 % |
| 0,01184 | 300 | 0,861 | 0,972 | 0,868 | 2,8 % |
| 0,01184 | 1.000 | 0,933 | 0,945 | 0,941 | – |
| 0,01184 | 3.000 | 0,942 | 0,958 | 0,948 | – |
| 0,05302 | 30 | 0,801 | 0,928 | 0,801 | 19,5 % |
| 0,05302 | 100 | 0,898 | 0,956 | 0,898 | 0,4 % |
| 0,05302 | 300 | 0,941 | 0,949 | 0,948 | – |
| 0,05302 | 1.000 | 0,948 | 0,944 | 0,948 | – |
| 0,05302 | 3.000 | 0,948 | 0,954 | 0,948 | – |
- Kleines n: Perzentil und Wald stimmen bei kleinem \(n\) überein oder liegen nahe beieinander, und beide fallen weit unter das Niveau, weil Stichproben ohne Ereignis ein Intervall der Breite 0 liefern. Wilson liegt außer bei \(\pi = 0{,}05302\), \(n = 30\) im Bereich 0,944 bis 0,972.
- Genug Ereignisse: Bei häufigeren Ausfällen funktioniert der Bootstrap: Hantel mit \(p = 0{,}9\) (\(\pi = 0{,}14969\)), \(n = 30\): Abdeckung 0,942; Gitter 3×3 mit \(p = 0{,}7\) (\(\pi = 0{,}48901\)), \(n = 30\): 0,933 (jeweils Perzentil, nicht in der Tabelle). Eine Schwelle für „genug Ereignisse“ ist nicht gemessen; bei diesen beiden Netzen liegt die erwartete Ausfallzahl in 30 Beobachtungen bei mehreren (Rechnung dieser Seite).
Zahl der Ziehungen: Mittelwert, σ = 1,0, \(n = 50\), 500 Wiederholungen. Die Streuung der Endpunkte ist die Standardabweichung des Endpunkts über 10 Bootstrap-Läufe mit denselben Daten, geteilt durch die mittlere Breite und gemittelt über 40 Datensätze.
| B | Abdeckung Perzentil | Abdeckung BCa | Streuung unterer Endpunkt | Streuung oberer Endpunkt |
|---|---|---|---|---|
| 19 | 0,852 | 0,802 | 0,103 | 0,154 |
| 99 | 0,886 | 0,892 | 0,045 | 0,076 |
| 999 | 0,900 | 0,898 | 0,015 | 0,026 |
Mit \(B = 19\) verliert das Perzentil-Intervall gegenüber \(B = 999\) rund 0,05 Abdeckung, die Endpunkte wackeln um 10 bis 15 % der Breite. Zwischen \(B = 99\) und \(B = 999\) liegt der Unterschied der Abdeckung in der Größenordnung der Messgenauigkeit. Die Streuung des unteren Endpunkts fällt von \(B = 19\) auf \(B = 999\) auf etwa ein Siebtel; die Wurzel aus dem Verhältnis der Ziehungszahlen ist ebenfalls etwa 7 (Rechnung dieser Seite, passend zu einem Abfall wie \(1/\sqrt B\)).
Abhängige Daten: AR(1), \(n = 500\), 200 Wiederholungen, \(B = 299\), Abdeckung des Mittelwert-Intervalls (Niveau 0,95):
| φ | t-Intervall | iid-Bootstrap | Blocklänge 5 | Blocklänge 10 | Blocklänge 25 | Blocklänge 50 |
|---|---|---|---|---|---|---|
| 0 | 0,960 | 0,950 | 0,960 | 0,950 | 0,915 | 0,900 |
| 0,5 | 0,695 | 0,695 | 0,905 | 0,900 | 0,905 | 0,870 |
| 0,8 | 0,535 | 0,510 | 0,810 | 0,855 | 0,900 | 0,890 |
| 0,95 | 0,230 | 0,230 | 0,465 | 0,615 | 0,760 | 0,815 |
- iid-Bootstrap gegen t: Bei Abhängigkeit deckt der iid-Bootstrap so schlecht wie das t-Intervall; beide fallen mit wachsendem φ.
- Blöcke: Blöcke helfen deutlich. Die beste Blocklänge wächst tendenziell mit φ (bei φ = 0,5 sind die Längen 5 und 25 gleichauf, die Rangfolge liegt dort innerhalb der Messgenauigkeit), und bei φ = 0,95 bleibt auch Länge 50 weit unter dem Niveau. Bei φ = 0 kosten lange Blöcke etwas Abdeckung gegenüber dem iid-Bootstrap.
- Breite: Bei φ = 0,95 beträgt die mittlere Breite beim iid-Bootstrap 0,528 gegen 2,457 bei Blocklänge 50 (4,65-fach).
Grenzen und was die Messung zeigt
- Messgenauigkeit: Die Abdeckungen sind Anteile aus 500 Wiederholungen (abhängige Daten: 200) und auf etwa ±0,015 (±0,03) genau. Das ist ungefähr ein Standardfehler (Rechnung dieser Seite); ein 95-%-Bereich ist etwa doppelt so breit. Ein anderer Zufallsstrom verschiebt einzelne Zellen um bis zu etwa 0,025: Der Mittelwert bei \(n = 50\), σ = 1,0 deckte in einer Vormessung 0,906 gegen 0,883 bei anderem Strom. Dieselbe Zelle erscheint oben für das Perzentil-Intervall als 0,880, 0,882 und 0,900 und für BCa als 0,884 und 0,910, bei verschiedener Ziehungszahl und verschiedenem Strom. Einzelne Unterschiede unter etwa 0,03 sind deshalb keine Befunde; belastbar sind Muster über mehrere Zeilen.
- Fehltreffer: Die Anteile oberhalb und unterhalb stammen aus denselben Läufen wie die Abdeckung und sind keine zweite, unabhängige Messung.
- Kennzahlen: Gemessen sind nur Mittelwert, Median, 90-%-Quantil, Standardabweichung und das Maximum einer Gleichverteilung; Quotienten, Regressionen und Differenzen zweier Gruppen fehlen. Bootstrap-t gibt es nur für den Mittelwert, mit der Stichprobenstandardabweichung der Ziehung als Standardfehler.
- Verfahren: Es gibt keinen parametrischen Bootstrap, keinen Bayes-Bootstrap, keinen Doppel-Bootstrap und keine Kalibrierung der Intervalle, keinen stationären Bootstrap und keine automatische Blocklänge. Standardverfahren für abhängige Daten (etwa korrigierte Standardfehler) und eine Faustregel für die Blocklänge sind nicht verglichen.
- Daten: Es gibt eine schiefe Familie (log-normal, σ bis 1,5), einen abhängigen Prozess (AR(1)) und drei Netze. Aussagen über andere Verteilungen, andere Formen der Abhängigkeit und andere Netze sind nicht gemessen; alle Daten sind erfunden.
- Exakt statt simuliert: Die Abdeckung bei Bernoulli-Daten ist exakt gerechnet (Bootstrap mit unendlich vielen Ziehungen, Quantile der diskreten Verteilung). Ein Bootstrap mit endlich vielen Ziehungen hätte zusätzlich das Rauschen der Messreihe zur Ziehungszahl, und die Quantilregel der simulierten Messreihen (lineare Interpolation) ist eine andere als die der exakten.
- Abdeckung ist nicht Güte: Ein Intervall mit höherer Abdeckung kann das Niveau durch Breite erkaufen, wie Bootstrap-t und der Blockbootstrap zeigen. Breiten sind nur für die Messreihen zum Mittelwert und zu abhängigen Daten ausgewiesen.
- Deutungen: Warum die Fehltreffer einseitig liegen und warum Perzentil und Wald bei seltenen Ereignissen zusammenfallen, ist oben gedeutet; gemessen sind nur die Anteile.
- Implementierung: Laut der Prüfung der Demo stimmen Perzentil- und BCa-Intervall mit der Bootstrap-Funktion von SciPy überein (Endpunkte bis auf 4 % der Breite, der Rest ist Monte-Carlo-Rauschen). Das ist eine Prüfung der Rechnung, keine Aussage über echte Daten.
Erweiterungen und Verweise
Was diese Demo auslässt, behandeln andere Demos dieser Website:
- Intervalle für seltene Ausfälle: Die Demo „Der Monte-Carlo-Schätzer und sein Fehler“ misst für Gitternetze die Überdeckung von Wald-, Wilson- und Clopper–Pearson-Intervall und zeigt, wie das übliche Intervall bei keinem beobachteten Ausfall auf einen Punkt schrumpft.
- Zwischenblicke und Konfidenzfolgen: Die Demo „Abbruchregeln: wann man aufhören darf“ zeigt Intervalle, die auch beim jederzeitigen Anhalten halten.
- Vergleich zweier Gruppen: Die Demo „Permutationstest und Co.“ stellt unter anderem einen Bootstrap bei Ausreißern neben Permutations- und Rangtest.
Quellen
- Efron (1979): Bootstrap methods: another look at the jackknife. Annals of Statistics.
- Efron und Tibshirani (1993): An Introduction to the Bootstrap; Davison und Hinkley (1997): Bootstrap Methods and their Application; Hall (1992): The Bootstrap and Edgeworth Expansion.
- Künsch (1989): The jackknife and the bootstrap for general stationary observations. Annals of Statistics, zu Blöcken.
- Quelltext, Messreihen und Tests der Demo: github.com/sebastian-hanisch/bootstrap-demo.
Die genannten Arbeiten wurden für diese Seite nicht nachgeschlagen (aus dem Gedächtnis, nicht geprüft). Die Herleitungen sind Rechnungen dieser Seite und keine Messungen der Demo.