Skip to content
Statistical RethinkingStatistical Rethinking

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.

Practice

Problemas fáciles

2E1. ¿Cuál de las siguientes es una expresión válida del teorema de Bayes?

(a) P(H∣D)=P(D∣H)⋅P(H)P(D)P(H \mid D) = \frac{P(D \mid H) \cdot P(H)}{P(D)}

(b) P(H∣D)=P(D∣H)⋅P(D)P(H)P(H \mid D) = \frac{P(D \mid H) \cdot P(D)}{P(H)}

(c) P(H∣D)=P(H∣D)⋅P(D)P(D∣H)P(H \mid D) = \frac{P(H \mid D) \cdot P(D)}{P(D \mid H)}

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 p<0.5p < 0.5.

# 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")
Click Run to execute this code in your browser with WebR

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: p∼Uniform(0,1)p \sim \text{Uniform}(0, 1)

(b) Distribución escalonada: p(θ)=0p(\theta) = 0 si θ<0.5\theta < 0.5, sino 11

(c) Distribución triangular: p(θ)=2(1−∣1−2θ∣)p(\theta) = 2(1 - |1 - 2\theta|), con pico en θ=0.5\theta = 0.5

# 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)
Click Run to execute this code in your browser with WebR

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 p=0.5p = 0.5 y otra con p=0.7p = 0.7. 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 p=0.7p = 0.7.

# 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")
Click Run to execute this code in your browser with WebR

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.