Seltsames Muster bei der Schätzung des Standardabweichungs-Konfidenzintervalls über Bootstrapping

8

Ich wollte das Konfidenzintervall für die Standardabweichung für einige Daten schätzen. Der R-Code sieht wie folgt aus:

library(boot)
sd_boot <- function (x, ind) {                
        res <- sd(x$ReadyChange[ind], na.rm = TRUE)
        return(res)            
}
data_boot <- boot::boot(data, statistic = sd_boot, R = 10000)
plot(data_boot)

Und ich habe die nächste Handlung: Geben Sie hier die Bildbeschreibung ein

Ich kann dieses Histogramm der Bootstraps nicht richtig interpretieren. Jeder andere Satz ähnlicher Daten zeigt Normalverteilungen von Bootstrap-Schätzungen ... Aber nicht dies. Dies sind übrigens tatsächliche Rohdaten:

> data$ReadyChange
 [1] 27.800000  8.985046 11.728021  8.830856  5.738600 12.028310  7.771528  9.208924 11.778611  6.024259  5.969931  6.063484  4.915764
[14] 12.027639  9.111146 13.898171 12.921377  6.916667 10.764479  6.875000 12.875000  7.017917  9.750000  7.921782 12.911551  6.000000

Können Sie mir bitte bei der Interpretation dieses Bootstrap-Musters helfen?

user16
quelle
1
Ich kann Ihre Ergebnisse nicht reproduzieren, selbst wenn Sie den Code kopieren und einfügen. Ich bekomme ein sehr normalverteiltes Histogramm.
Jwimberley
1
@jwimberley, es gab einen falschen Datenvektor ... Vielen Dank für Ihre Zeit, ihn zu entdecken. Die tatsächlichen Daten befinden sich in der Post unter EDIT.
Benutzer16
2
Muster für neue Daten bestätigt. Ich vermute, dass dies durch den Datenpunkt 27.800000 verursacht wird, der viel größer ist als alle anderen.
Psarka
2
@psarka Das bestätigen. Durch Entfernen dieses Punktes wird das seltsame Verhalten beseitigt. Die Standardabweichung von sd ohne diesen Punkt beträgt 3,02, aber 4,24 mit diesem Punkt. Dies erklärt die Peaks bei 3.02 und 4.24 (Punkt nicht im Bootstrap enthalten; Punkt im Bootstrap enthalten). Die höheren Resonanzen treten auf, wenn dieser Punkt mehrmals enthalten ist.
Jwimberley
1
@mdewey Dies beruhte auf einer Beobachtung von Psarka, die ich nicht würdigen möchte.
Jwimberley

Antworten:

21

Möglicherweise liegt ein Fehler in Ihrem Code vor, oder die Bootstrap-Bibliothek führt etwas anderes als erwartet aus.

Bearbeiten:

Nachdem korrigierte Daten bereitgestellt worden waren, stellte sich heraus, dass das Muster durch einen Ausreißer verursacht wurde, wobei jeder Peak der unterschiedlichen Häufigkeit entsprach, mit der der Ausreißer in eine Probe ausgewählt wurde.

Geben Sie hier die Bildbeschreibung ein

Psarka
quelle
1
Das Gleiche gilt für R: Nachdem Sie die 21-Elemente-Vektordaten auf offensichtliche Weise erstellt haben, erstellen Sie eine Indexmatrix mit inds <- matrix(sample(21,10000*21,replace=TRUE),10000,21)und suchen Sie dann die Datenelemente aus jeder Spalte und ermitteln Sie die Standardabweichung mit hist(apply(inds,1,function(ind){sd(data[ind])})). Es gibt nicht mehrere Spitzen.
Jwimberley
1
Diese Antwort erklärt und veranschaulicht das Problem sehr gut, bietet jedoch keine Anleitung oder Ratschläge, was in der Praxis dagegen zu tun ist.
Amöbe
8

Ich zögere, dies als Antwort aufzuschreiben, aber für mich scheint dies auf die geringe Anzahl von Datenpunkten zurückzuführen zu sein, auf die Sie Ihren Bootstrap stützen (21, korrigieren Sie mich, wenn ich falsch liege).

Genauer gesagt scheinen mir diese spezifischen 21 Werte, von denen Sie eine Stichprobe machen, nur wenige häufig mögliche Standardabweichungen zu haben (die Peaks in Ihrem Histogramm). Wenn die Basisprobe größer und vielfältiger wäre, wäre das resultierende Histogramm viel glatter (und wahrscheinlich ähnlicher als die erwartete Normalverteilung).

Allgemein gesagt und unter der Annahme, dass ich hier rechts bin, ist dies ein gutes Beispiel dafür, dass Bootstrapping die Probleme einer kleinen Stichprobe nicht löst.

IWS
quelle
3
Ich mag solche Erklärungen, aber ich kann das Ergebnis nicht reproduzieren!
Nick Cox
1
@ NickCox Sie sind absolut richtig, um darauf hinzuweisen. Ich habe diese Antwort eingegeben, ohne zu versuchen, diese Ergebnisse zu replizieren. Wie aus Psarkas Antwort (die ich sofort positiv bewertet habe) hervorgeht, muss ein Codierungsfehler aufgetreten sein. Daher habe ich auch etwas gelernt (um zu versuchen, ein solches Problem zu replizieren).
IWS
Es ist auch wichtig, dass Bootstrap unbedingt von den Originaldaten abhängt.
Nick Cox
Natürlich ist es, welchen Punkt machst du?
IWS
1
Ich unterstütze dich! Es wird nämlich argumentiert, dass Artefakte möglich sind und dass Wachsamkeit erforderlich ist.
Nick Cox