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