Zuallererst: Nach meinem Verständnis funktioniert das Bootstrapping von Residuen wie folgt:
- Modell an Daten anpassen
- Berechnen Sie die Residuen
- Probieren Sie die Residuen erneut aus und addieren Sie sie zu 1.
- Modell an neuen Datensatz von 3 anpassen.
- Wiederholen Sie die
n
Zeiten, aber fügen Sie immer die neu abgetasteten Residuen zur Anpassung von 1 hinzu.
Ist das soweit richtig?
Was ich tun möchte, ist etwas anderes:
Ich möchte die Parameter- und Vorhersageunsicherheit für einen Algorithmus schätzen, der eine Umgebungsvariable schätzt.
Was ich habe, ist eine fehlerfreie Zeitreihe (aus einer Simulation) dieser Variablen x_true
, zu der ich etwas Rauschen hinzufüge x_noise
, um einen synthetischen Datensatz zu generieren x
. Ich versuche dann, optimale Parameter zu finden, indem ich meinen Algorithmus mit der Summe der Quadrate sum((x_estimate - x_true)^2)
(! Nicht x_estimate - x
!) Als Zielfunktion anpasse. Um zu sehen, wie mein Algorithmus funktioniert, und um Beispiele für die Verteilungen meiner Parameter zu erstellen, möchte ich ein Resample durchführen x_noise
, es hinzufügen x_true
, mein Modell erneut anpassen , spülen und wiederholen. Ist das ein gültiger Ansatz zur Bewertung der Parameterunsicherheit? Kann ich die Anpassungen an die Bootstrap-Datensätze als Vorhersageunsicherheit interpretieren oder muss ich das oben beschriebene Verfahren befolgen?
/ edit: Ich glaube, ich habe nicht wirklich klar gemacht, was mein Modell macht. Stellen Sie sich das im Wesentlichen als eine Art Entrauschungsmethode vor. Es ist kein Vorhersagemodell, sondern ein Algorithmus, der versucht, das zugrunde liegende Signal einer verrauschten Zeitreihe von Umgebungsdaten zu extrahieren.
/ edit ^ 2: Für die MATLAB-Benutzer da draußen habe ich ein schnelles und schmutziges lineares Regressionsbeispiel für das, was ich meine, aufgeschrieben.
Dies ist, was ich glaube, "gewöhnliches" Bootstrapping von Residuen ist (bitte korrigieren Sie mich, wenn ich falsch liege ): http://pastebin.com/C0CJp3d1
Folgendes möchte ich tun: http://pastebin.com/mbapsz4c
quelle
Antworten:
Hier ist der allgemeine Algorithmus (semi-parametrischer Bootstrap) im Detail:
das Modell:
y=xβ+ϵ
Sei die Residuenϵ^
quelle
Ich bin mir nicht sicher, ob mein Verständnis richtig ist. Aber hier ist mein Vorschlag, Ihren Code ("gewöhnliches Bootstrapping von Residuen", Zeilen 28-34) in Folgendes zu ändern:
Die Idee ist, dass jedes Mal, wenn Sie Residuen verwenden, nicht vom ersten Lauf, sondern vom vorherigen Bootstrap-Fit. Was mich betrifft, scheint alles andere gültig zu sein.
Dies ist eine überarbeitete Version, die in MATLAB überprüft wurde. Zwei Fehler wurden behoben.
quelle
Um zu sehen, wie sich ein Algorithmus in Bezug auf Vorhersagegenauigkeit / mittleren quadratischen Fehler verhält, benötigen Sie wahrscheinlich den Efron-Gong-Bootstrap "Optimismus". Dies ist für die einfache Verwendung im R-
rms
Paket implementiert. Siehe Funktionenols
,validate.ols
,calibrate
.quelle