Eine konditionale Abkürzung
Super, du hast jetzt Bayes'sche Berechnungen durchgeführt – ganz ohne Simulation! Die von dir erzeugte Grafik sollte der posterioren Verteilung aus Kapitel 3 ähneln. Wie du siehst, war dafür allerdings eine Menge Code nötig. Geht das nicht auch schlanker?
Ja! Du kannst direkt auf den Daten konditionieren – es ist nicht nötig, zuerst die gemeinsame Verteilung zu erstellen.
Diese Übung ist Teil des Kurses
<Kurs>Grundlagen der Bayes'schen Datenanalyse in R</Kurs>Übungsanweisungen
- Setze
n_visitorsdirekt auf6, ersetze dafür einfach dasseq-Statement. - Jetzt kannst du die Zeile entfernen, die auf den Daten konditioniert, sowie die darauffolgende Zeile, die
pars$probabilitynormalisiert. - Schau dir den finalen Code noch einmal genau an und überzeuge dich, dass das Ergebnis identisch zum vorherigen ist. :)
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# Simplify the code below by directly conditioning on the data
n_ads_shown <- 100
proportion_clicks <- seq(0, 1, by = 0.01)
n_visitors <- seq(0, 100, by = 1)
pars <- expand.grid(proportion_clicks = proportion_clicks,
n_visitors = n_visitors)
pars$prior <- dunif(pars$proportion_clicks, min = 0, max = 0.2)
pars$likelihood <- dbinom(pars$n_visitors,
size = n_ads_shown, prob = pars$proportion_clicks)
pars$probability <- pars$likelihood * pars$prior
pars$probability <- pars$probability / sum(pars$probability)
pars <- pars[pars$n_visitors == 6, ]
pars$probability <- pars$probability / sum(pars$probability)
plot(pars$proportion_clicks, pars$probability, type = "h")