Aan de slagBegin gratis

Een conditionele shortcut

Mooi, je hebt nu wat Bayesiaanse berekeningen gedaan, zonder te simuleren! De plot die je hebt gemaakt zou lijken op de posterior verdeling die je in hoofdstuk 3 hebt berekend. Maar je ziet ook dat het behoorlijk veel code kostte. Kunnen we niets schrappen?

Ja hoor! Je kunt direct conditioneren op de data, je hoeft de gezamenlijke verdeling niet eerst te maken.

Deze oefening maakt deel uit van de cursus

Basisprincipes van Bayesiaanse data-analyse in R

Bekijk cursus

Oefeninstructies

  • Stel n_visitors direct in op 6; vervang gewoon de seq-instructie.
  • Nu kun je de regel verwijderen die conditioneert op de data, en de regel erna die pars$probability normaliseert.
  • Kijk nog eens goed naar de uiteindelijke code en overtuig jezelf ervan dat het resultaat van deze aangepaste code hetzelfde is als eerst. :)

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

# 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")
Code bewerken en uitvoeren