Código - Estadística Bayesiana: Sensibilidad a la prior

Compara tres priors beta para la misma muestra binomial y evalúa cómo cambian la media y el intervalo creíble posteriores. Requiere solo R base.

Scripts reproducibles en R

Sensibilidad a la prior

Compara tres priors beta para la misma muestra binomial y evalúa cómo cambian la media y el intervalo creíble posteriores. Requiere solo R base.

# R base. La misma muestra se analiza con tres priors explícitas.
set.seed(2026)
y <- rbinom(20, size = 1, prob = 0.65)
n <- length(y)
exitos <- sum(y)

priors <- data.frame(
  nombre = c("Uniforme", "Optimista", "Escéptica"),
  a = c(1, 8, 8),
  b = c(1, 2, 8)
)
resultado <- data.frame(
  prior = priors$nombre,
  a_post = priors$a + exitos,
  b_post = priors$b + n - exitos
)
resultado$media <- with(resultado, a_post / (a_post + b_post))
resultado$li_95 <- with(resultado, qbeta(0.025, a_post, b_post))
resultado$ls_95 <- with(resultado, qbeta(0.975, a_post, b_post))
print(resultado, row.names = FALSE)

# Con menos datos las diferencias entre priors suelen ser más visibles.
grid <- seq(0, 1, length.out = 400)
colores <- c("steelblue", "darkorange", "purple")
plot(grid, dbeta(grid, resultado$a_post[1], resultado$b_post[1]),
     type = "l", lwd = 2, col = colores[1],
     xlab = "Probabilidad de éxito", ylab = "Densidad")
for (i in 2:nrow(resultado)) {
  lines(grid, dbeta(grid, resultado$a_post[i], resultado$b_post[i]),
        lwd = 2, col = colores[i])
}
legend("topright", legend = resultado$prior, col = colores, lwd = 2)
Lenguaje: RDescargar script
    Sensibilidad a la prior - Estadística Bayesiana