Bootstrapping

Fragen, die sich auf kein spezielles Verfahren beziehen.

Re: Bootstrapping

Beitragvon Andiego » Mo 24. Mär 2014, 14:42

Und wieder oben :)
Andiego
Beobachter
Beobachter
 
Beiträge: 19
Registriert: Mo 22. Apr 2013, 16:54
Danke gegeben: 2
Danke bekommen: 2 mal in 2 Posts

Re: Bootstrapping

Beitragvon bele » Mo 24. Mär 2014, 16:40

Andiego hat geschrieben: Der Mittelwert der Bootstrapverteilung sollte doch Erwartungsgemäß dem des Samples entsprechen. Das ist doch der Kern der Inferenzstatistik. Wie entsteht hier diese Verzerrung?


Hallo Andiego,

ich versuch mich mal. Gefischt werden 60 Fische, von denen 13 markiert sind. Lass uns bootstrappen, wieviele Fische im Schnitt markiert sind.

Code: Alles auswählen
bootstrap.mittel <- function(n=10000){
    gefischt <- c(rep.int(0,60-13), rep.int(1,13))
    markierte <- replicate(n, sum(
                     sample(x=gefischt,size=60,replace=TRUE)
                     ))
    return(mean(markierte))
}


Jeder Aufruf dieser Funktion führt dazu, dass aus 60 Fischen, davon 13 markierte, n Bootstrapping-Samples gezogen werden. Du kannst Dich glanz leicht davon überzeugen, dass die Zahl der jeweils gefangenen markierten Fische um 13 schwankt und annähernd normalverteilt ist, wie dies der Grenzwertsatz fordert (hier ist natürlich nur eine Annäherung an die Normalverteilung durch ganzzahlige Werte möglich). Dazu fügen wir in die Funktion drei Zeilen ein um ein Histogramm und einen QQ-Plot zu zeichnen:

Code: Alles auswählen
bootstrap.mittel <- function(n=10000){
    gefischt <- c(rep.int(0,60-13), rep.int(1,13))
    markierte <- replicate(n, sum(
                     sample(x=gefischt,size=60,replace=TRUE)
                     ))
    par(mfrow=c(2,1))
    hist(markierte)
    qqnorm(markierte)
    return(mean(markierte))
}
bootstrap.mittel()


Der gebootstrapte Mittelwert ist also normalverteilt und entspricht dem Mittel der ursprünglichen Verteilung, so wie Du das erwartet hast.

Das Problem taucht auf, weil in dem von Dir verlinkten Beispiel nicht die Zahl der markierten Fische, sondern deren Kehrwert in dargestellt wird. Durch diese Kehrwertbildung wird aus dem normalverteilten Bootstrap-Sample eine nicht mehr normalverteilte Größe und deren Mittelwert macht dann eben die Sachen, die Du oben beobachtet hast: Der Kehrwert einer symmetrischen Verteilung ist nicht mehr symmetrisch verteilt:
Code: Alles auswählen
plot(density(1/rnorm(100000,10)))


LG,
Bernhard
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 5928
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 16
Danke bekommen: 1403 mal in 1389 Posts

Vorherige

Zurück zu Allgemeine Fragen

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 6 Gäste

cron