Skip to content
Statistical RethinkingStatistical Rethinking

6.4 Criterios de información

Los criterios de información como WAIC y PSIS estiman el rendimiento esperado fuera de muestra de un modelo. Combinan la densidad log-predictiva con una penalización por el número efectivo de parámetros.

6.4.1 WAIC

El Criterio de Información Ampliamente Aplicable (WAIC) estima la devianza fuera de muestra:

WAIC=−2(lppd−pWAIC)\text{WAIC} = -2(\text{lppd} - p_\text{WAIC})

donde:

  • lppd (densidad predictiva puntual logarítmica) = ∑ilog⁡1S∑sp(yi∣θs)\sum_i \log \frac{1}{S} \sum_s p(y_i \mid \theta_s)
  • pWAICp_\text{WAIC} (número efectivo de parámetros) = ∑iVars[log⁡p(yi∣θs)]\sum_i \text{Var}_s[\log p(y_i \mid \theta_s)]
# Compute WAIC manually
set.seed(42)
n <- 100
x <- runif(n, 0, 10)
y <- 1 + 2 * x + rnorm(n, sd = 2)

# Fit two models

m1 <- lm(y ~ x) # linear (correct)
m2 <- lm(y ~ x + I(x^2)) # quadratic (slightly overfit)

# Compute AIC for comparison

cat("AIC comparison:\n")
cat(" Linear:", round(AIC(m1), 2), "\n")
cat(" Quadratic:", round(AIC(m2), 2), "\n")
cat(" Difference:", round(AIC(m2) - AIC(m1), 2), "\n")

# Compute WAIC manually

# For Gaussian model: log-likelihood per observation

library(MASS)

compute_waic <- function(fit, y, x) {
post <- mvrnorm(1000, mu = coef(fit), Sigma = vcov(fit))
sigma <- summary(fit)$sigma

# Log-likelihood matrix: [S x N]

ll <- matrix(0, nrow = 1000, ncol = length(y))
for (s in 1:1000) {
if (ncol(post) == 2) {
mu <- post[s, 1] + post[s, 2] _ x
} else {
mu <- post[s, 1] + post[s, 2] _ x + post[s, 3] * x^2
}
ll[s, ] <- dnorm(y, mean = mu, sd = sigma, log = TRUE)
}

# lppd

lppd <- sum(log(colMeans(exp(ll))))

# p_WAIC

p_waic <- sum(apply(ll, 2, var))

# WAIC

waic <- -2 * (lppd - p_waic)

return(list(waic = waic, lppd = lppd, p_waic = p_waic))
}

w1 <- compute_waic(m1, y, x)
w2 <- compute_waic(m2, y, x)

cat("\nWAIC comparison:\n")
cat(" Linear: WAIC =", round(w1$waic, 2),
  " (lppd =", round(w1$lppd, 2), ", p_WAIC =", round(w1$p_waic, 2), ")\n")
cat("  Quadratic: WAIC =", round(w2$waic, 2),
" (lppd =", round(w2$lppd, 2), ", p_WAIC =", round(w2$p_waic, 2), ")\n")
cat(" Difference:", round(w2$waic - w1$waic, 2), "\n")
Click Run to execute this code in your browser with WebR

6.4.2 PSIS y validación cruzada deja-uno-fuera

PSIS (muestreo de importancia suavizado por Pareto) proporciona una estimación robusta de la validación cruzada deja-uno-fuera (LOO-CV). LOO-CV reajusta el modelo NN veces, cada vez dejando fuera una observación. PSIS aproxima esto sin reajustar.

# Demonstrate leave-one-out cross-validation
set.seed(42)
n <- 50
x <- runif(n, 0, 10)
y <- 1 + 2 * x + rnorm(n, sd = 2)

# LOO-CV for linear model

loo_error <- numeric(n)
for (i in 1:n) {
fit <- lm(y[-i] ~ x[-i])
loo_error[i] <- (y[i] - predict(fit, data.frame(x = x[i])))^2
}

cat("Leave-one-out CV (linear model):\n")
cat(" Mean squared prediction error:", round(mean(loo_error), 3), "\n")
cat(" This estimates out-of-sample performance.\n")
Click Run to execute this code in your browser with WebR

6.4.3 Interpretación de las diferencias de WAIC

El modelo con el WAIC más bajo es el preferido. Las diferencias de WAIC entre modelos indican la evidencia relativa:

  • dWAIC < 2: Los modelos son prácticamente equivalentes.
  • 2 < dWAIC < 4: Evidencia débil a favor del mejor modelo.
  • dWAIC > 4: Evidencia fuerte a favor del mejor modelo.
Rethinking

Los criterios de información son estimaciones, no verdades. WAIC y PSIS son estimaciones del rendimiento fuera de muestra. Tienen incertidumbre — el dWAIC tiene un error estándar. Cuando el dWAIC es pequeño (menos de 2-4), los modelos son prácticamente indistinguibles. No trate el modelo con el WAIC más bajo como "el modelo verdadero". En su lugar, use WAIC para identificar un conjunto de modelos que son todos razonables, y luego use juicio científico para elegir entre ellos.

Overthinking

El número efectivo de parámetros. La penalización de WAIC pWAICp_\text{WAIC} es el número efectivo de parámetros, no el número real. Con distribuciones a priori fuertes, el número efectivo de parámetros es menor que el número real porque las distribuciones a priori restringen la distribución a posteriori. Por esto WAIC tiene en cuenta la regularización: un modelo con muchos parámetros pero distribuciones a priori fuertes puede tener un pWAICp_\text{WAIC} menor que un modelo con menos parámetros pero distribuciones a priori planas. Por esto también WAIC es más general que AIC, que usa el número real de parámetros como penalización.

Resumen de la Sección 6.4

  • WAIC = −2(lppd−pWAIC)-2(\text{lppd} - p_\text{WAIC}) estima la devianza fuera de muestra.
  • lppd mide el ajuste dentro de muestra; pWAICp_\text{WAIC} penaliza la complejidad efectiva.
  • PSIS aproxima la validación cruzada deja-uno-fuera sin reajustar.
  • dWAIC < 2: modelos equivalentes; dWAIC > 4: evidencia fuerte.
  • El número efectivo de parámetros tiene en cuenta la regularización — las distribuciones a priori fuertes reducen pWAICp_\text{WAIC}.