Un atajo con condicionamiento
¡Genial! Ya has hecho algo de cómputo bayesiano sin necesidad de ninguna simulación. La gráfica que generaste debería parecerse a la distribución posterior que calculaste en el capítulo 3. Sin embargo, puedes ver que requiere bastante código. ¿No hay algo que podamos recortar?
¡Sí! Puedes condicionar directamente en los datos; no hace falta crear primero la distribución conjunta.
Este ejercicio forma parte del curso
Fundamentos del Análisis de Datos Bayesiano en R
Instrucciones del ejercicio
- Establece
n_visitorsdirectamente en6; simplemente sustituye la sentenciaseq. - Ahora puedes eliminar la línea que condiciona en los datos y, justo después, la línea que normaliza
pars$probability. - Revisa el código final y convéncete de que el resultado de este código modificado será el mismo que antes. :)
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# 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")