2.6 Práctica
Los problemas de práctica del Capítulo 2 refuerzan el jardín de los datos que bifurcan y la mecánica de la actualización bayesiana. Le piden calcular posteriors a mano, explorar el efecto de diferentes distribuciones a priori y comparar la aproximación por malla con soluciones analíticas.
Problemas fáciles
2E1. ¿Cuál de las siguientes es una expresión válida del teorema de Bayes?
(a)
(b)
(c)
2E2. Reescriba el teorema de Bayes en términos de la verosimilitud, la distribución a priori y la posterior. ¿Cuál es el papel de cada componente?
2E3. Usando la aproximación por malla para el problema del lanzamiento del globo (6 aguas en 9 lanzamientos), calcule la probabilidad a posteriori de que .
# 2E3: Compute the posterior probability that p < 0.5
p_grid <- seq(0, 1, length.out = 1000)
prior <- rep(1, 1000)
likelihood <- dbinom(6, size = 9, prob = p_grid)
posterior <- (likelihood * prior) / sum(likelihood * prior)
# Probability that p < 0.5
prob_less_than_half <- sum(posterior[p_grid < 0.5])
cat("P(p < 0.5) =", round(prob_less_than_half, 4), "\n")2E4. Suponga que observa 3 aguas en 3 lanzamientos. Usando una distribución uniforme a priori, ¿cuál es la distribución a posteriori? ¿Cómo difiere del caso con 6 aguas en 9 lanzamientos?
Problemas medios
2M1. Calcule la distribución a posteriori para el problema del lanzamiento del globo con cada una de las siguientes distribuciones a priori. Grafique las tres posteriors en el mismo gráfico.
(a) Distribución uniforme:
(b) Distribución escalonada: si , sino
(c) Distribución triangular: , con pico en
# 2M1: Compare posteriors with different priors
p_grid <- seq(0, 1, length.out = 500)
likelihood <- dbinom(6, size = 9, prob = p_grid)
# (a) Uniform
prior*a <- rep(1, 500)
post_a <- (likelihood * prior*a) / sum(likelihood * prior_a)
# (b) Step: 0 if p < 0.5, 1 otherwise
prior*b <- ifelse(p_grid < 0.5, 0, 1)
post_b <- (likelihood * prior*b) / sum(likelihood * prior_b)
# (c) Triangular: peaked at 0.5
prior*c <- 1 - abs(p_grid - 0.5) * 2
post*c <- (likelihood * prior_c) / sum(likelihood * prior_c)
# Plot
plot(p_grid, post_a, type = "l", lwd = 2, col = "steelblue",
xlab = "p", ylab = "Posterior density",
main = "2M1: Posteriors with different priors")
lines(p_grid, post_b, lwd = 2, col = "firebrick")
lines(p_grid, post_c, lwd = 2, col = "darkgreen")
legend("topright",
legend = c("(a) Uniform", "(b) Step", "(c) Triangular"),
col = c("steelblue", "firebrick", "darkgreen"), lwd = 2)2M2. Para cada una de las distribuciones a priori en 2M1, calcule la media a posteriori y el intervalo de credibilidad del 95%. ¿Cuánto importa la elección de la distribución a priori con 9 puntos de datos?
2M3. Suponga que observa 8 aguas en 15 lanzamientos. Usando una distribución uniforme a priori, calcule la posterior usando aproximación por malla. ¿Cómo difiere la posterior del caso de 6 en 9?
Problemas difíciles
2H1. Suponga que hay dos especies de globo: una con y otra con . No sabe qué especie tiene. Lanza el globo 3 veces y obtiene W, W, W. Usando una distribución uniforme a priori sobre las dos especies, calcule la probabilidad a posteriori de que tenga la especie con .
# 2H1: Two species of globe
# Species A: p = 0.5, Species B: p = 0.7
# Prior: P(A) = P(B) = 0.5
# Data: W, W, W (3 waters in 3 tosses)
p_A <- 0.5
p_B <- 0.7
prior_A <- 0.5
prior_B <- 0.5
# Likelihood: P(WWW | species) = p^3
likelihood_A <- p_A^3
likelihood_B <- p_B^3
# Unnormalized posterior
unstd*A <- likelihood_A * prior*A
unstd_B <- likelihood_B * prior_B
# Normalized posterior
post_A <- unstd_A / (unstd_A + unstd_B)
post_B <- unstd_B / (unstd_A + unstd_B)
cat("P(Species A | WWW) =", round(post_A, 4), "\n")
cat("P(Species B | WWW) =", round(post_B, 4), "\n")
cat("\nAfter 3 waters, the p=0.7 species is more likely\n")2H2. Continuando 2H1, ahora lance el globo 3 veces más y obtenga L, W, L. Actualice la posterior. ¿Cuál es la probabilidad a posteriori de cada especie después de los 6 lanzamientos?
2H3. Implemente el algoritmo de actualización secuencial para el problema del lanzamiento del globo. Comience con una distribución uniforme a priori y actualice después de cada lanzamiento: W, L, W, W, W, L, W, L, W. Grafique la posterior después de cada actualización.