4.2 Un lenguaje para describir modelos
Una notación clara del modelo separa la verosimilitud del modelo lineal. Escribir el modelo como una lista de supuestos distribucionales y ecuaciones deterministas facilita comunicar, criticar y extender.
4.2.1 Notación del modelo
La notación estándar para un modelo bayesiano tiene dos partes:
- Enunciados probabilísticos: Describen cómo se distribuyen los datos y las distribuciones a priori de los parámetros.
- Enunciados deterministas: Describen cómo los parámetros de la verosimilitud dependen de los predictores.
Para una regresión lineal simple:
La primera línea es la verosimilitud: cada observación está distribuida normalmente alrededor de con desviación estándar . La segunda línea es el modelo lineal: el valor esperado es una función lineal del predictor . Las líneas restantes son las distribuciones a priori.
4.2.2 Por qué importa esta notación
Esta notación es poderosa porque:
- Transparencia: Cada supuesto es explícito. Puede ver la verosimilitud, el modelo lineal y las distribuciones a priori de un vistazo.
- Modificabilidad: Puede cambiar cualquier componente independientemente. Cambiar la verosimilitud, añadir un predictor, modificar una distribución a priori.
- Generalidad: La misma notación funciona para modelos lineales, modelos lineales generalizados, modelos multinivel y más.
- Comunicación: La notación es compacta e inequívoca, facilitando compartir modelos con otros.
# Model notation in R: the rethinking package uses alist
# A simple linear regression model:
# y_i ~ Normal(mu_i, sigma)
# mu_i = alpha + beta * x_i
# alpha ~ Normal(0, 10)
# beta ~ Normal(0, 10)
# sigma ~ Uniform(0, 50)
# In rethinking notation:
# model <- alist(
# y ~ dnorm(mu, sigma),
# mu <- a + b * x,
# a ~ dnorm(0, 10),
# b ~ dnorm(0, 10),
# sigma ~ dunif(0, 50)
# )
# Demonstrate with simulated data
set.seed(42)
n <- 100
x <- runif(n, 0, 10)
y <- 2 + 1.5 * x + rnorm(n, sd = 2)
# Fit with lm (frequentist equivalent)
fit <- lm(y ~ x)
cat("Intercept (alpha):", round(coef(fit)[1], 3), "\n")
cat("Slope (beta):", round(coef(fit)[2], 3), "\n")
cat("Residual SD (sigma):", round(summary(fit)$sigma, 3), "\n")
# Plot
plot(x, y, pch = 16, col = "steelblue",
main = "Linear regression: y = alpha + beta * x",
xlab = "x", ylab = "y")
abline(fit, lwd = 2, col = "firebrick")4.2.3 Funciones de enlace
Para modelos lineales generalizados (Capítulo 9), añadimos una función de enlace que mapea el modelo lineal al parámetro de la verosimilitud:
Por ejemplo, para un modelo binomial con enlace logit:
La función de enlace asegura que el parámetro permanezca en el rango válido (e.g., para el binomial). Estudiaremos las funciones de enlace en detalle en el Capítulo 9.
# Demonstrate a link function: logit
# logit(p) = log(p / (1 - p))
# inverse logit: p = 1 / (1 + exp(-x))
x <- seq(-5, 5, length.out = 100)
logit_vals <- x
prob_vals <- 1 / (1 + exp(-x))
par(mfrow = c(1, 2))
plot(x, logit_vals, type = "l", lwd = 2, col = "steelblue",
main = "Logit link: logit(p) = alpha + beta * x",
xlab = "Linear predictor", ylab = "logit(p)")
abline(h = 0, lty = 2, col = "gray50")
plot(x, prob_vals, type = "l", lwd = 2, col = "firebrick",
main = "Inverse logit: p = 1/(1+exp(-x))",
xlab = "Linear predictor", ylab = "p")
abline(h = 0.5, lty = 2, col = "gray50")
abline(v = 0, lty = 2, col = "gray50")
par(mfrow = c(1, 1))El modelo es el mapa. La notación del modelo no es solo una forma de escribir código. Es un mapa de sus supuestos. Cada línea codifica una elección: la verosimilitud, el modelo lineal, las distribuciones a priori. Cuando comparte este mapa con otros, pueden ver exactamente qué supuso y pueden criticarlo o extenderlo. Esto es lo opuesto a los procedimientos de caja negra que ocultan los supuestos detrás de una llamada a función. La notación del modelo hace de la estadística una práctica de ingeniería transparente y colaborativa.
Resumen de la Sección 4.2
- La notación del modelo separa verosimilitud, modelo lineal y distribuciones a priori en enunciados explícitos.
- La notación es transparente, modificable, general y comunicable.
- Las funciones de enlace mapean el modelo lineal al parámetro de la verosimilitud para modelos lineales generalizados.
- La notación del modelo hace visible y criticable cada supuesto.