2.2 Construyendo un modelo
Un modelo bayesiano se construye a partir de tres ingredientes: una historia sobre cómo surgen los datos, los parámetros que aparecen en esa historia, y distribuciones a priori que codifican lo que sabemos antes de ver los datos. Usando el ejemplo del lanzamiento del globo de la Sección 2.1, esta sección muestra cómo combinar estos ingredientes en una distribución a posteriori.
2.2.1 Los tres ingredientes de un modelo bayesiano
Todo modelo bayesiano tiene tres componentes:
- La verosimilitud: Una función que especifica la plausibilidad de los datos, dados los parámetros. Nos dice cómo los datos podrían surgir del modelo.
- Los parámetros: Las cantidades desconocidas que queremos estimar. Indexan la familia de posibles procesos generadores de datos.
- La distribución a priori: Una distribución sobre los parámetros que codifica lo que sabemos (o creemos) antes de ver los datos.
La distribución a posteriori combina los tres:
La proporcionalidad es suficiente para la mayoría de los cálculos, porque siempre podemos normalizar al final.
2.2.2 El modelo de lanzamiento del globo
Para el ejemplo del lanzamiento del globo, el modelo es:
- Verosimilitud: — el número de aguas en lanzamientos sigue una distribución binomial con probabilidad .
- Parámetro: — la proporción del globo cubierta por agua.
- Distribución a priori: — todos los valores de son igualmente plausibles antes de ver los datos.
Combinando estos, la posterior es:
# Build the globe-tossing model from its three ingredients
# 1. Parameter grid
p_grid <- seq(from = 0, to = 1, length.out = 100)
# 2. Prior: uniform over [0, 1]
prior <- rep(1, length(p_grid))
# 3. Likelihood: binomial probability of 6 waters in 9 tosses
likelihood <- dbinom(6, size = 9, prob = p_grid)
# 4. Posterior: multiply and normalize
unstd_posterior <- likelihood * prior
posterior <- unstd_posterior / sum(unstd_posterior)
# Summarize
cat("Posterior mean:", round(sum(p_grid * posterior), 4), "\n")
cat("Posterior mode:", round(p_grid[which.max(posterior)], 4), "\n")
cat("95% credible interval: [",
round(p_grid[which(cumsum(posterior) >= 0.025)[1]], 4), ",",
round(p_grid[which(cumsum(posterior) >= 0.975)[1]], 4), "]\n")La media a posteriori es aproximadamente , que coincide con la proporción observada . El intervalo de credibilidad del 95% nos da un rango de valores plausibles para .
2.2.3 Una malla más refinada
Con 100 puntos de malla en lugar de 20, la posterior es mucho más suave. Comparemos:
# Compare 20-point and 100-point grid approximations
par(mfrow = c(1, 2))
# 20-point grid
p20 <- seq(0, 1, length.out = 20)
post20 <- dbinom(6, 9, p20) / sum(dbinom(6, 9, p20))
plot(p20, post20, type = "b", pch = 16, col = "steelblue",
xlab = "p", ylab = "posterior", main = "20 grid points", lwd = 2)
# 100-point grid
p100 <- seq(0, 1, length.out = 100)
post100 <- dbinom(6, 9, p100) / sum(dbinom(6, 9, p100))
plot(p100, post100, type = "l", col = "firebrick",
xlab = "p", ylab = "posterior", main = "100 grid points", lwd = 2)
par(mfrow = c(1, 1))La malla de 20 puntos produce una posterior dentada, mientras que la de 100 puntos es suave. En la práctica, usamos suficientes puntos de malla para capturar la forma de la posterior sin cálculo excesivo. Para modelos con muchos parámetros, la aproximación por malla se vuelve impracticable, y pasamos a la aproximación cuadrática o MCMC (Capítulo 8).
2.2.4 De la historia al modelo
El paso más importante al construir un modelo bayesiano es escribir la historia de los datos. La historia describe cómo surgen los datos, paso a paso. Para el ejemplo del lanzamiento del globo:
- La verdadera proporción de agua en el globo es .
- Cada lanzamiento es independiente, y la probabilidad de aterrizar sobre agua es .
- El número de aguas en lanzamientos sigue una distribución binomial.
Esta historia se traduce directamente en la función de verosimilitud. Los parámetros surgen naturalmente de la historia, y la distribución a priori codifica lo que sabemos sobre ellos.
# Simulate data from the globe-tossing story
# True proportion of water
p_true <- 0.7
# Simulate 9 tosses
set.seed(42)
tosses <- rbinom(9, size = 1, prob = p_true)
cat("Simulated tosses (1=water, 0=land):", tosses, "\n")
cat("Number of waters:", sum(tosses), "\n")
# Now infer p from the simulated data
p_grid <- seq(0, 1, length.out = 100)
likelihood <- dbinom(sum(tosses), size = 9, prob = p_grid)
posterior <- likelihood / sum(likelihood)
cat("Posterior mean:", round(sum(p_grid * posterior), 3), "\n")
cat("True p:", p_true, "\n")Note que la media a posteriori no es exactamente igual al verdadero. Esto es esperado — la posterior refleja lo que podemos aprender de los datos, no la verdad. Con más lanzamientos, la posterior se concentraría alrededor del valor verdadero.
2.2.5 Las distribuciones a priori como modelos
Una distribución a priori no es solo una necesidad técnica. Es un modelo de lo que sabemos. Diferentes distribuciones a priori representan diferentes estados de conocimiento:
- Distribución uniforme: No sabemos nada sobre ; todos los valores son igualmente plausibles.
- Distribución informativa: Tenemos conocimiento de fondo que restringe .
- Distribución escéptica: Concentramos probabilidad cerca de un valor nulo (ej., ).
# Compare priors as models of knowledge
p_grid <- seq(0, 1, length.out = 200)
likelihood <- dbinom(6, size = 9, prob = p_grid)
# Uniform: "I know nothing"
prior_unif <- rep(1, 200)
# Beta(2,2): "I weakly believe p is near 0.5"
prior_beta22 <- dbeta(p_grid, 2, 2)
# Beta(5,5): "I strongly believe p is near 0.5"
prior_beta55 <- dbeta(p_grid, 5, 5)
# Beta(1,1) = Uniform (for reference)
prior_beta11 <- dbeta(p_grid, 1, 1)
par(mfrow = c(2, 2))
for (prior in list(prior*unif, prior_beta22, prior_beta55, prior_beta11)) {
post <- (likelihood * prior) / sum(likelihood _ prior)
plot(p_grid, post, type = "l", lwd = 2, col = "steelblue",
xlab = "p", ylab = "posterior",
main = sprintf("Posterior mean: %.3f", round(sum(p_grid * post), 3)))
abline(v = 6/9, lty = 2, col = "gray50")
}
par(mfrow = c(1, 1))La línea discontinua en cada panel muestra la proporción observada . La distribución uniforme deja que los datos hablen libremente. La distribución Beta(2,2) atrae suavemente la posterior hacia 0.5. La distribución Beta(5,5) atrae más fuertemente. Esto es regularización — la distribución a priori previene que el modelo sobreajuste a muestras pequeñas.
Las distribuciones a priori no son sesgos subjetivos. Una crítica común a la inferencia bayesiana es que las distribuciones a priori introducen subjetividad. Pero todo modelo estadístico tiene supuestos — la pregunta es si son explícitos u ocultos. Una distribución uniforme no es "objetiva"; es una afirmación específica de que todos los valores del parámetro son igualmente plausibles, lo cual a menudo es irreal. Una distribución a priori informativa hace visibles y verificables los supuestos del modelo. El peligro real no está en tener distribuciones a priori, sino en no saber qué implican.
Overthinking
Distribuciones a priori conjugadas para la binomial. La distribución Beta es la distribución a priori conjugada para la verosimilitud binomial. Esto significa que si la distribución a priori es y los datos son aguas en lanzamientos, la posterior también es una distribución Beta:
Para el ejemplo del lanzamiento del globo con una distribución uniforme y datos , :
La media a posteriori de una distribución es , que es ligeramente inferior a la proporción cruda debido a la influencia de la distribución a priori.
Las distribuciones a priori conjugadas son convenientes porque la posterior tiene una forma cerrada. Sin embargo, en la mayoría de los modelos reales, la conjugación no está disponible, y dependemos de métodos numéricos.
Resumen de la Sección 2.2
- Un modelo bayesiano tiene tres ingredientes: verosimilitud, parámetros y distribución a priori.
- La historia de los datos traduce una narrativa sobre cómo surgen los datos en un modelo matemático.
- La posterior es proporcional a la verosimilitud por la distribución a priori: .
- La aproximación por malla calcula la posterior en valores discretos del parámetro; más puntos de malla producen una posterior más suave.
- Las distribuciones a priori son modelos de conocimiento, no sesgos subjetivos. Diferentes distribuciones representan diferentes estados de información.
- La distribución Beta es la distribución a priori conjugada para la verosimilitud binomial, produciendo una posterior de forma cerrada.