Was ist die .632+ -Regel beim Bootstrapping?


107

Hier verweist @gung auf die Regel .632+. Eine schnelle Google-Suche liefert keine leicht verständliche Antwort darauf, was diese Regel bedeutet und für welchen Zweck sie verwendet wird. Würde jemand bitte die .632+ -Regel erläutern?

Antworten:


115

Ich werde zum 0.632-Schätzer kommen, aber es wird eine etwas lange Entwicklung sein:

Angenommen, wir wollen mit Verwendung der Funktion vorhersagen , wobei von einigen Parametern abhängen kann, die unter Verwendung der Daten geschätzt werden , z. B.X f f ( Y , X ) f ( X ) = X βYXff(Y,X)f(X)=Xβ

Eine naive Schätzung des Vorhersagefehlers ist wobei eine Verlustfunktion ist, zB quadratischer Fehlerverlust. Dies wird oft als Trainingsfehler bezeichnet. Efron et al. nennt es offensichtliche Fehlerrate oder Resubstitutionsrate. Es ist nicht sehr gut, da wir unsere Daten , um zu passen . Dies führt dazu, dass nach unten vorgespannt ist. Sie möchten wissen, wie gut Ihr Modell neue Werte vorhersagt.L(xi,yi)f¯errf

err¯=1Ni=1NL(yi,f(xi))
L(xi,yi)ferr¯f

Oft verwenden wir die Kreuzvalidierung als einfache Methode, um den erwarteten Vorhersagefehler für zusätzliche Stichproben abzuschätzen (wie gut funktioniert unser Modell mit Daten, die nicht in unserem Trainingssatz enthalten sind?).

Err=E[L(Y,f(X))]

Ein beliebter Weg, dies zu tun, ist die fache Kreuzvalidierung. Teilen Sie Ihre Daten in Gruppen auf (zB 10). Passen Sie für jede Gruppe Ihr Modell an die verbleibenden Gruppen an und testen Sie es an der ten Gruppe. Unser Vorhersagefehler für zusätzliche Stichproben ist nur der durchschnittliche wobei eine Indexfunktion ist, die die Partition angibt, der die Beobachtung ist, und der vorhergesagte Wert von wobei Daten verwendet werden, die nicht in der -ten Menge enthalten sind.K K K - 1 k E r r C V = 1KKkK1kkif-k(i)(xi)xik(i)

ErrCV=1Ni=1NL(yi,fκ(i)(xi))
κifκ(i)(xi)xiκ(i)

Dieser Schätzer ist für den wahren Vorhersagefehler, wenn ist, ungefähr unverzerrt und weist eine größere Varianz auf und ist für größere rechenintensiver . Wir sehen also wieder einmal den Kompromiss zwischen Voreingenommenheit und Varianz.KK=NK

Anstelle einer Kreuzvalidierung könnten wir den Bootstrap verwenden, um den Vorhersagefehler für zusätzliche Stichproben abzuschätzen. Bootstrap-Resampling kann verwendet werden, um die Stichprobenverteilung einer Statistik zu schätzen. Wenn unsere Trainingsdaten , können wir uns vorstellen, Bootstrap-Samples (mit Ersetzung) aus dieser Menge zu nehmen wobei jedes eine Menge von Abtastwerten ist. Jetzt können wir unsere Bootstrap-Beispiele verwenden, um den Vorhersagefehler für zusätzliche Stichproben zu schätzen: wobei der vorhergesagte Wert bei aus der Modellanpassung an istB Z 1 , ... , Z B Z i N E r r B o o t = 1X=(x1,,xN)BZ1,,ZBZiN

Errboot=1Bb=1B1Ni=1NL(yi,fb(xi))
fb(xi)xib Bootstrap-Datensatz. Leider ist dies kein besonders guter Schätzer weil Bootstrap - Proben verwendet produzieren enthalten kann . Der Leave-one-out - Bootstrap - Schätzer bietet eine Verbesserung durch die Nachahmung von Kreuzvalidierung und ist definiert als: wobei die Menge von Indizes für die Bootstrap-Beispiele ist, die Enthält keine Beobachtung undist die Anzahl solcher Proben. fb(xi)xi
Errboot(1)=1Ni=1N1|Ci|bCiL(yi,fb(xi))
Cii|Ci|Errboot(1)löst das Überanpassungsproblem, ist aber immer noch voreingenommen (dieses ist nach oben voreingenommen). Die Verzerrung ist auf nicht eindeutige Beobachtungen in den Bootstrap-Samples zurückzuführen, die sich aus dem Sampling mit Ersetzung ergeben. Die durchschnittliche Anzahl unterschiedlicher Beobachtungen in jeder Stichprobe beträgt ungefähr (in dieser Antwort wird erklärt, warum im Durchschnitt jede Bootstrap-Stichprobe ungefähr zwei Drittel der Beobachtungen enthält ). Um das Bias-Problem zu lösen, schlugen Efron und Tibshirani den 0.632-Schätzer vor: wobei0.632N
Err.632=0.368err¯+0.632Errboot(1)
err¯=1Ni=1NL(yi,f(xi))
ist die naive Abschätzung des Vorhersagefehlers, die oft als Trainingsfehler bezeichnet wird. Die Idee ist, eine abwärtsgerichtete Schätzung und eine aufwärtsgerichtete Schätzung zu mitteln.

Wenn wir jedoch eine Vorhersagefunktion für eine hohe Überanpassung haben (dh ), ist sogar der .632-Schätzer nach unten vorgespannt. Der Schätzer .632+ ist als weniger voreingenommener Kompromiss zwischen und . mit wobei die No-Information-Fehlerrate ist, geschätzt durch Auswertung des Vorhersagemodells für alle möglichen Kombinationen von Ziele und Prädiktoren .err¯=0err¯Errboot(1)

Err.632+=(1w)err¯+wErrboot(1)
w=0.63210.368RandR=Errboot(1)err¯γerr¯
γyixi

γ=1N2i=1Nj=1NL(yi,f(xj))
.

Hier misst die relative Überpassungsrate. Wenn keine Überanpassung (R = 0, wenn ), entspricht dies dem Schätzer .632.RErrboot(1)=err¯


2
Das sind gute Fragen, @rpierce, aber sie entfernen sich etwas vom zentralen Thema dieses Threads. In Bezug auf den Lebenslauf wäre es besser, sie in einem neuen Thread zu haben, damit die Leute diese Informationen später leichter finden und nutzen können.
gung



1
@rpierce Es tut mir leid, wenn ich meine Frage etwas schwierig zu beantworten habe. vergleicht die Anpassung Ihres Modells mit den dazu verwendeten Daten. Für den quadratischen Fehlerverlust wäre dies also nurerr¯=1Ni=1NL(yi,f(xi))1ni=1n(yiy^i)2
bdeonovic

1
@rpierce, ja! Ich war ein bisschen allgemein, weil ich viel von diesem Material aus einigen Notizen des Unterrichts rezyklierte.
bdeonovic

53

Sie finden weitere Informationen in Abschnitt 3 dieses finden 1 Papier. Aber zusammenzufassen, wenn Sie anrufen eine Stichprobe von Zahlen von gezogen zufällig und mit Ersatz, im Mittel etwa einzigartige Elemente.Sn{1:n}S(1e1)n0.63212056n

Die Argumentation ist wie folgt. Wir füllen indem wir mal (zufällig und mit Ersetzung) aus abtasten . Betrachten Sie einen bestimmten Index . S={s1,,sn}i=1,,n{1:n}m{1:n}

Dann:

P(si=m)=1/n

und

P(sim)=11/n

und das ist wahr (intuitiv, da wir mit Ersatz probieren, hängen die Wahrscheinlichkeiten nicht von )1ini

somit

P(mS)=1P(mS)=1P(i=1nsim)=1i=1nP(sim)=1(11/n)n1e1

Sie können auch diese kleine Simulation durchführen, um die Qualität der Approximation (die von abhängt ) empirisch zu überprüfen :n

n <- 100
fx01 <- function(ll,n){
    a1 <- sample(1:n, n, replace=TRUE)
    length(unique(a1))/n
}
b1 <- c(lapply(1:1000,fx01,n=100), recursive=TRUE)
mean(b1)

1. Bradley Efron und Robert Tibshirani (1997). Verbesserungen bei der Kreuzvalidierung: Die .632+ Bootstrap-Methode . Journal of the American Statistical Association , Bd. 92, Nr. 438, S. 548–560.


3
Hier ist ein Dokument für Sie in Referenz - stat.washington.edu/courses/stat527/s14/readings/…

1
(+1) Sehr gut. Ich würde die Notation nur ein wenig standardisieren. Daten: . IID Zufallsvariablen mit . Ergebnis: . (x1,,xn)S1,,SnP(Si=k)=1nI{1,,n}(k)P(i=1n{Si=k})=1P(i=1n{Sik})=1i=1nP{Sik}=1(11/n)n11/e63.21%
Zen

4
@ rpierce: Richtig. Das "offensichtliche" Bit, das in der Antwort derzeit nicht erwähnt wird, ist . 1e10.63212056
Ilmari Karonen

1
Diese Antwort ist auch in der Tat großartig. Die akzeptierte Antwort plus diese Antwort liefern tatsächlich die vollständige Antwort auf meine Frage - aber zwischen den beiden scheint mir Benjamins näher zu sein, was ich in einer Antwort gesucht habe. Davon abgesehen - ich wünschte wirklich, es wäre möglich, beides zu akzeptieren.
Russellpierce

1
@rpierce: Um Celine Dion zu zitieren: " Geschichte so alt wie Zeit / Lied so alt wie Reim / Die Schöne und das Biest." : P
Nick Stauner

8

Nach meiner Erfahrung, die hauptsächlich auf Simulationen beruhte, wurden die Bootstrap-Varianten 0.632 und 0.632+ nur aufgrund schwerwiegender Probleme benötigt, die durch die Verwendung einer Regel zur Bewertung der falschen Genauigkeit verursacht wurden, nämlich des Anteils, der korrekt "klassifiziert" wurde. Wenn Sie die richtigen (z. B. devianzbasierten oder Brier-Score) oder halb-richtigen (z. B. Index = AUROC) Bewertungsregeln verwenden, funktioniert der standardmäßige Efron-Gong-Optimismus-Bootstrap einwandfrei.c


3
Ich glaube nicht, dass ich die meisten Dinge verstehe, die Sie hier gesagt haben, Frank. Wären Sie bereit zu klären? Es hört sich so an, als hätten Sie etwas Einzigartiges und Wichtiges beizutragen.
Russellpierce

Gerne erweitern, wenn Sie eine bestimmte Frage stellen können.
Frank Harrell

1
Diese Bewertungsregeln waren ... die Beurteilung der Qualität des Bootstrap-Ergebnisses? Könnten Sie einen Link bereitstellen, der die Proportionen beschreibt, die als "klassifiziert" eingestuft wurden, und ich habe Probleme, mir vorzustellen, was für ein Tier das sein könnte. Von den Top-Ergebnissen für "Efron-Gong-Optimismus" bei Google scheint die überwiegende Mehrheit Beiträge von Ihnen zu sein ... Wie unterscheidet sich das von dem, wenn ich "Bootstrap" ohne die Qualifikanten sage? Welchen Effron- und Gong-Artikel soll ich lesen? Es scheint mehrere zu geben.
Russellpierce

3
Siehe das Originalpapier über 0,632, in dem der korrekt klassifizierte Anteil verwendet und definiert wird (Efron & Tibshirani JASA 92: 548; 1997). Der Optimism Bootstrap ist eine Variante des Bootstraps zur Abschätzung der Verzerrung. Es ist beschrieben in Gong: JASA 85:20; 1990.
Frank Harrell

2

Diese Antworten sind sehr nützlich. Ich konnte keine Möglichkeit finden, es mit Mathematik zu demonstrieren, also habe ich etwas Python-Code geschrieben, der allerdings recht gut funktioniert:

    from numpy import mean
    from numpy.random import choice

    N = 3000

    variables = range(N)

    num_loop = 1000
    # Proportion of remaining variables
    p_var = []

    for i in range(num_loop):
        set_var = set(choice(variables, N))
        p=len(set_var)/float(N)
        if i%50==0:
            print "value for ", i, " iteration ", "p = ",p
        p_var.append(p)

    print "Estimator of the proportion of remaining variables, ", mean(p_var)
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.