p_grid <- seq( from=0 , to=1 , length.out=1000 ) # Gitterwerte
prior <- rep( 1 , 1000 ) # Priori-Gewichte
set.seed(42)
likelihood <- dbinom( 6 , size=9 , prob=p_grid )
unstandardisierte_posterior <- likelihood * prior
posterior <- unstandardisierte_posterior / sum(unstandardisierte_posterior)ReThink3m4
bayes
ppv
probability
string
Aufgabe
Nehmen wir an, wir haben 8 (Wasser-)“Treffer” (\(W=8\)) bei 15 Würfen (\(N=15\)) erhalten (wieder im Globusversuch).
Berechnen Sie auf Basis dieser Posteriori-Verteilung (8 Treffer bei 15 Würfen) die Wahrscheinlichkeit für 6 Wasser bei 9 Würfen (\(W=6, N=9\)).
Hinweise:
- Berechnen Sie eine Bayes-Box (Gittermethode).
- Verwenden Sie 1000 Gitterwerte.
- Fixieren Sie die Zufallszahlen mit dem Startwert 42, d.h.
set.seed(42). - Gehen Sie von einem gleichverteilten Prior aus.
Quelle: McElreath, R. (2020). Statistical rethinking: A Bayesian course with examples in R and Stan (2. Aufl.). Taylor and Francis, CRC Press.
Lösung
Erstellen wir zuerst wieder die Posteriori-Verteilung für den Globusversuch.
Dann ziehen wir unsere Stichproben daraus:
# um die Zufallszahlen festzulegen, damit alle die gleichen Zufallswerte bekommen:
set.seed(42)
# Stichproben ziehen aus der Posteriori-Verteilung
samples <-
tibble(
p = sample( p_grid , prob=posterior, size=1e4, replace=TRUE)) Jetzt erstellen wir die PPV für einen anderen Versuch, nämlich mit 9 Zügen:
PPV <-
samples %>%
mutate(anzahl_wasser2 = rbinom(1e4, size = 9, prob = p))Schließlich zählen wir, wie oft 6 Treffer beobachtet werden:
PPV %>%
count(anzahl_wasser2 == 6) # A tibble: 2 × 2
`anzahl_wasser2 == 6` n
<lgl> <int>
1 FALSE 7972
2 TRUE 2028
Categories:
- bayes
- ppv
- probability
- string