Kann Bootstrap als "Heilung" für die kleine Stichprobengröße angesehen werden?


71

Diese Frage wurde durch etwas ausgelöst, das ich in diesem Statistiklehrbuch für Hochschulabsolventen gelesen und (unabhängig) während dieser Präsentation auf einem statistischen Seminar gehört habe. In beiden Fällen lautete die Aussage wie folgt: "Da die Stichprobengröße ziemlich klein ist, haben wir beschlossen, die Schätzung über Bootstrap anstelle (oder zusammen mit) dieser parametrischen Methode durchzuführen ."X

Sie haben nicht auf die Details eingegangen, aber wahrscheinlich lautete die Begründung wie folgt: Methode geht davon aus, dass die Daten einer bestimmten parametrischen Verteilung D folgen . In Wirklichkeit ist die Verteilung nicht genau D , aber es ist in Ordnung, solange die Stichprobengröße groß genug ist. Da in diesem Fall die Stichprobengröße zu klein ist, wechseln wir zu dem (nicht parametrischen) Bootstrap, bei dem keine Verteilungsannahmen getroffen werden. Problem gelöst!XDD

Meiner Meinung nach ist das nicht der Zweck von Bootstrap. Das sehe ich so: Bootstrap kann einen Vorteil bringen, wenn es mehr oder weniger offensichtlich ist, dass es genügend Daten gibt, aber es gibt keine geschlossene Lösung, um Standardfehler, p-Werte und ähnliche Statistiken zu erhalten. Ein klassisches Beispiel ist die Ermittlung eines CI für den Korrelationskoeffizienten bei einer Stichprobe aus einer bivariaten Normalverteilung: Die Lösung in geschlossener Form existiert, ist jedoch so verschlungen, dass das Bootstrapping einfacher ist. Nichts impliziert jedoch, dass Bootstrap einem irgendwie helfen kann, mit einer kleinen Stichprobengröße davonzukommen.

Ist meine Wahrnehmung richtig?

Wenn Sie diese Frage interessant finden, gibt es eine andere, spezifischere Bootstrap-Frage von mir:

Bootstrap: das Problem der Überanpassung

PS Ich kann nicht anders, als ein ungeheures Beispiel für den "Bootstrap-Ansatz" zu nennen. Ich verrate den Namen des Autors nicht, aber er ist einer der „Quants“ der älteren Generation, die 2004 ein Buch über quantitative Finanzen geschrieben haben. Das Beispiel stammt von dort.

Stellen Sie sich das folgende Problem vor: Nehmen Sie an, Sie haben 4 Assets und 120 monatliche Ertragsbeobachtungen für jedes. Ziel ist es, das gemeinsame 4-dimensionale cdf der jährlichen Renditen zu erstellen. Selbst für einen einzelnen Vermögenswert scheint die Aufgabe mit nur 10 jährlichen Beobachtungen kaum erreichbar zu sein, geschweige denn mit der Schätzung von 4-dimensionalem cdf. Aber keine Sorge, der „Bootstrap“ hilft Ihnen dabei: Nehmen Sie alle verfügbaren vierdimensionalen Beobachtungen, nehmen Sie das Ersetzen von 12 erneut vor und fügen Sie sie zusammen, um einen einzigen vierdimensionalen „Bootstrap“ -Vektor der jährlichen Renditen zu erstellen. Wiederholen Sie das 1000-mal und, siehe da, Sie haben sich ein „Bootstrap-Beispiel“ von 1000 jährlichen Erträgen besorgt. Verwenden Sie dies als Beispiel für eine CDF-Schätzung der Größe 1000 oder eine andere Folgerung, die aus einer 1000-jährigen Geschichte gezogen werden kann.


18
Ich höre oder lese ähnliche Gefühle zu Ihrem ersten Absatz, bin aber eher anderer Meinung. Ich sehe Bootstrapping normalerweise nicht unbedingt als nützlich in kleinen Samples an. Seine Rechtfertigung ist asymptotisch / große Stichprobe, und in der Praxis ist die Leistung bei kleinen Stichproben in vielen Fällen problematisch. Die Abdeckung von Intervallen zum Beispiel weicht häufig stark von der Nominalrate ab. Es ist ein weiteres nützliches Werkzeug, aber wie viele andere, die im Laufe der Jahre angekündigt wurden, ist es nicht das Allheilmittel, das sich manche Menschen vorstellen. Ich glaube wirklich nicht, dass es eine Lösung für sehr kleine Proben ist.
Glen_b

In Simon Sheathers Buch (Abbildung 3.40) gibt es ein Flussdiagramm für die Regression, das den Bootstrap als Inferenz vorschlägt, wenn die Stichprobengröße nicht groß und die Fehler nicht normal verteilt sind.
Tony Ladson

2
Die Antwort auf die Frage im vierten Absatz lautet "Ja" (oder zumindest würden Sie eine Anerkennung für Ihr Argument erhalten, wenn Sie diese Antwort bei einem Test in meiner Klasse geben würden). Hast du diese Diskussion überprüft ? In meiner Antwort gab ich eine Erklärung zu den Annäherungen, die der Bootstrap anstellt, und einen Verweis auf das irrsinnige Papier, das jeder Bootstrapper lesen sollte, um die Einschränkungen der Methode zu kennen. Es wäre schön, Hinweise auf die Bücher / Papiere / Präsentationen zu sehen, die Ihre Frage ausgelöst haben
StasK

Gibt Ihnen das Bootstrap nicht einfach eine zusätzliche Laufzeit in einer Edgeworth-Erweiterung - wie eine normale Annäherung mit einer Korrekturlaufzeit?
Wahrscheinlichkeitslogik

Antworten:


34

nn1nn

simfun <- function(n=5) {
    x <- rnorm(n)
    m.x <- mean(x)
    s.x <- sd(x)
    z <- m.x/(1/sqrt(n))
    t <- m.x/(s.x/sqrt(n))
    b <- replicate(10000, mean(sample(x, replace=TRUE)))
    c( t=abs(t) > qt(0.975,n-1), z=abs(z) > qnorm(0.975),
        z2 = abs(t) > qnorm(0.975), 
        b= (0 < quantile(b, 0.025)) | (0 > quantile(b, 0.975))
     )
}

out <- replicate(10000, simfun())
rowMeans(out)

Meine Ergebnisse für einen Lauf sind:

     t      z     z2 b.2.5% 
0.0486 0.0493 0.1199 0.1631 

α


6
Ihr letzter Satz hat mich neugierig gemacht, also habe ich das mit Ihrem Beispiel ausprobiert. Ich habe das bootPaket verwendet und es alle möglichen Intervalle bereitstellen lassen: das normale Annäherungsintervall erster Ordnung, das grundlegende Bootstrap-Intervall, das studentisierte Bootstrap-Intervall, das Bootstrap-Perzentil-Intervall (das Ihr Code bereits bereitstellt) und das angepasste Bootstrap-Perzentil (BCa). Intervall. Die Ergebnisse waren im Wesentlichen alle gleich (Ablehnungsraten zwischen 0,16 und 0,17), mit Ausnahme des studentisierten Intervalls, das eine nominelle Ablehnungsrate (0,05) aufwies (was sinnvoll ist, da es eher dem Standard-t-Test entspricht).
Wolfgang

2
@Wolfgang, danke für die zusätzlichen Simulationen. Ich bin ein wenig überrascht, dass die anderen Intervalle nicht ein bisschen besser abschnitten, aber nicht überrascht, dass sie das 0,05-Niveau nicht erreichten.
Greg Snow

1
Ja, ich war auch ein bisschen überrascht! Manchmal versagt unsere Intuition. Das ist der Grund, warum es so wunderbar ist, in wenigen Minuten ein kleines Skript in R zu schreiben, 10,000 \times 10,000Iterationen ausführen zu lassen (die noch ein paar Minuten dauerten) und Dinge überprüfen zu können. Und Ihr Beispiel zeigt deutlich, dass der Bootstrap mit kleinen Samples ziemlich schlecht abschneiden kann, auch wenn die Dinge "nett" sind (dh die Daten sind tatsächlich normal).
Wolfgang

Tatsächlich ist das Problem in dieser Simulation genau das, worüber ich gerade hier gefragt und in den Kommentaren von @whuber geantwortet habe: stats.stackexchange.com/questions/323455/… . Ich denke daher nicht, dass das Problem die Stichprobengröße ist, sondern die Verletzung der Unabhängigkeit für parametrische Inferenz innerhalb jeder Stichprobe.
Half-Pass

2
zt

14

Wenn Sie eine kleine Stichprobengröße haben (was "klein" ist, scheint als Hintergrundbeleuchtung von einer zugrunde liegenden Regel in jedem Forschungsbereich abzuhängen), wird kein Bootstrap die Magie auslösen. Angenommen, eine Datenbank enthält drei Beobachtungen für jede der beiden untersuchten Variablen, ist kein Rückschluss sinnvoll. Nach meiner Erfahrung kann nicht-parametrisches Bootstrap (1.000 oder 10.000 Replikationen) den T-Test gut ersetzen, wenn die Probenverteilungen (jeweils mindestens 10-15 Beobachtungen) verzerrt sind und daher die Voraussetzungen für den üblichen T-Test nicht erfüllt sind. Unabhängig von der Anzahl der Beobachtungen kann außerdem ein nicht-parametrischer Bootstrap eine obligatorische Wahl sein, wenn die Daten positiv verzerrt sind, wie dies für die Kosten des Gesundheitswesens immer der Fall ist.


1
Bootstrap kann eine obligatorische Wahl sein, wenn Daten positiv verzerrt sind - warum nicht stattdessen lognormal oder eine ähnliche verzerrte Verteilung verwenden? SAS und R haben viele Möglichkeiten.
James

1
James 'Antwort ist eine Überlegung wert. Das übliche Problem bei der Protokollierung von Kostendaten ist jedoch die Rücktransformation zur ursprünglichen Metrik, bevor die Ergebnisse den Entscheidungsträgern präsentiert werden. Sie können dieses Problem mit einem nicht parametrischen Bootstrap vermeiden.
Carlo Lazzaro

Carlo, da Sie Erfahrung mit der Protokolltransformation haben, möchten Sie vielleicht eine andere Frage von mir beantworten (es gibt eine 50-Punkte-Prämie): stats.stackexchange.com/a/111932/54099
James

James, ich habe vor einigen Minuten eine verlockende Antwort auf deine Frage gegeben.
Carlo Lazzaro

tχ12

13

Andere Antworten kritisieren die Leistung von Bootstrap-Konfidenzintervallen , nicht das Bootstrap selbst. Das ist ein anderes Problem.

Wenn Ihr Kontext die Regelmäßigkeitsbedingungen für die Konvergenz der Bootstrap-Verteilung erfüllt (Konvergenz in Bezug auf die Anzahl der Bootstrap-Beispiele), funktioniert die Methode, wenn Sie ein ausreichend großes Bootstrap-Beispiel verwenden.

Falls Sie wirklich Probleme mit der Verwendung von nichtparametrischem Bootstrap haben möchten, gibt es zwei Probleme:

(1) Probleme mit dem Resampling.

Eines der Probleme beim Bootstrap für kleine oder große Samples ist der Resampling-Schritt. Es ist nicht immer möglich, eine Neuabtastung durchzuführen, während die Struktur (Abhängigkeit, zeitlich, ...) der Probe erhalten bleibt. Ein Beispiel hierfür ist ein überlagerter Prozess .

Angenommen, es gibt eine Reihe unabhängiger Quellen, bei denen von Zeit zu Zeit Ereignisse auftreten. Die Intervalle zwischen aufeinanderfolgenden Ereignissen an einer Quelle werden als unabhängige Zufallsvariablen mit derselben Verteilung angenommen, so dass jede Quelle einen Erneuerungsprozess eines bekannten Typs darstellt. Die Ausgänge der Quellen werden zu einem zusammengefassten Ausgang zusammengefasst.

Wie würden Sie resampling unter Beibehaltung der unbekannten Abhängigkeitsstruktur ?

(2) Enge Bootstrap-Samples und Bootstrap-Konfidenzintervalle für kleine Samples .

In kleinen Stichproben können das Minimum und das Maximum der Schätzer für jede Teilstichprobe ein enges Intervall definieren. In einigen Modellen sind dann der rechte und der linke Endpunkt aller Konfidenzintervalle sehr eng (was angesichts der kleinen Stichprobe nicht intuitiv ist!).

x1,x2Exp(λ)λ>0

set.seed(1)
x <- rexp(2,1)
# Maximum likelihood estimator
1/mean(x)

# Profile likelihood: provides a confidence interval with right-end point beyond the maximum inverse of the mean
Rp <- Vectorize(function(l) exp(sum(dexp(x,rate=l,log=T))-sum(dexp(x,rate=1/mean(x),log=T))))

curve(Rp,0,5)
lines(c(0,5),c(0.147,0.147),col="red")

λλ^=2/(x1+x2)

library(boot)
set.seed(1)
x <- rexp(2,1)
1/mean(x)
# Bootstrap interval: limited to the maximum inverse of the mean
f.boot <- function(data,ind) 1/mean(data[ind])
b.b <- boot(data=x, statistic=f.boot, R=100000)
boot.ci(b.b, conf = 0.95, type = "all")
hist(b.b$t)

x1x2


6

Bootstrap funktioniert gut in kleinen Probengrößen durch die Richtigkeit der Tests zu gewährleisten (zB , dass das nominale 0,05 Signifikanzniveau nahe an die tatsächlichen Größe des Tests), aber die Bootstrap ist nicht Sie auf magische Weise gewährt zusätzliche Leistung. Wenn Sie eine kleine Stichprobe haben, haben Sie wenig Kraft, Ende der Geschichte.

Parametrische (lineare Modelle) und semiparametrische (GEE) Regressionen neigen dazu, schlechte Eigenschaften bei kleinen Stichproben zu haben ... erstere als Folge einer großen Abhängigkeit von parametrischen Annahmen, letztere aufgrund der Vergrößerung robuster Standardfehlerschätzungen bei kleinen Stichproben. Bootstrapping (und andere Resampling-basierte Tests) funktionieren unter diesen Umständen sehr gut .

Zur Vorhersage bietet Bootstrapping bessere (ehrlichere) Schätzungen der internen Gültigkeit als die Validierung aufgeteilter Stichproben.

n


2
(zB dass das nominelle Signifikanzniveau von 0,05 nahe an der tatsächlichen Größe des Tests liegt), - aber im obigen R-Code haben wir gerade gesehen, dass der Bootstrap die Testgröße nicht beibehält, oder?
James

Ich sehe, Sie beziehen sich auf die Antwort von Greg Snow. Dieses Ergebnis hat mich überrascht. Ich muss meine Fakten überprüfen und meine Antwort bearbeiten. Vielen Dank.
AdamO
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.