Skip to content
Statistical RethinkingStatistical Rethinking

9.3 Priors de máxima entropía

La entropía máxima también puede guiar la elección de las distribuciones a priori. Una distribución a priori de entropía máxima es la menos informativa compatible con lo que realmente sabemos, evitando que introduzcamos supuestos injustificados.

9.3.1 El principio para las distribuciones a priori

Al elegir una distribución a priori, debemos usar la distribución de entropía máxima consistente con lo que sabemos:

p(θ)=arg⁡max⁡qH(q)s.a.Eq[f(θ)]=fˉp(\theta) = \arg\max_{q} H(q) \quad \text{s.a.} \quad \mathbb{E}_q[f(\theta)] = \bar{f}

  • Si solo conocemos el rango [a,b][a, b]: distribución a priori uniforme (entropía máxima en un intervalo acotado).
  • Si solo conocemos la media: distribución a priori exponencial (entropía máxima en [0,∞)[0, \infty) con media fija).
  • Si conocemos media y varianza: distribución a priori gaussiana (entropía máxima en R\mathbb{R} con momentos fijos).
# Demonstrate maximum entropy priors
# Compare different priors for a probability parameter

# Uniform prior (maxent for known range only)

p_grid <- seq(0.001, 0.999, length.out = 200)
prior_uniform <- dunif(p_grid, 0, 1)

# Beta(1, 1) = uniform

prior_beta11 <- dbeta(p_grid, 1, 1)

# Beta(2, 2) (slightly informative, symmetric)

prior_beta22 <- dbeta(p_grid, 2, 2)

# Beta(5, 5) (more informative)

prior_beta55 <- dbeta(p_grid, 5, 5)

# Compute entropies (via numerical integration)

compute*entropy_continuous <- function(p, x) {
dx <- x[2] - x[1]
p <- p / sum(p * dx) # normalize
-sum(p _ log(p) * dx)
}

cat("Entropy of priors:\n")
cat(" Uniform [0,1]:", round(compute_entropy_continuous(prior_uniform, p_grid), 4), "\n")
cat(" Beta(1,1): ", round(compute_entropy_continuous(prior_beta11, p_grid), 4), "\n")
cat(" Beta(2,2): ", round(compute_entropy_continuous(prior_beta22, p_grid), 4), "\n")
cat(" Beta(5,5): ", round(compute_entropy_continuous(prior_beta55, p_grid), 4), "\n")

cat("\nUniform has the highest entropy (least informative)\n")
cat("More concentrated priors have lower entropy\n")

# Plot

plot(p_grid, prior_uniform, type = "l", lwd = 2, col = "steelblue",
main = "Maximum entropy priors for a probability",
xlab = "p", ylab = "density", ylim = c(0, max(prior_beta55) * 1.1))
lines(p_grid, prior_beta22, lwd = 2, col = "firebrick")
lines(p_grid, prior_beta55, lwd = 2, col = "darkgreen")
legend("top", legend = c("Uniform / Beta(1,1)", "Beta(2,2)", "Beta(5,5)"),
col = c("steelblue", "firebrick", "darkgreen"), lwd = 2)
Click Run to execute this code in your browser with WebR

9.3.2 Cuándo usar distribuciones a priori maxent

Las distribuciones a priori de entropía máxima son apropiadas cuando:

  • Tiene ignorancia genuina sobre el parámetro.
  • Quiere evitar introducir supuestos injustificados.
  • Necesita una distribución a priori por defecto que sea principiada, no arbitraria.

Sin embargo, cuando tiene información a priori real (de estudios previos, teoría o conocimiento del dominio), debe usarla. El principio de entropía máxima es una línea base, no una restricción.

# Demonstrate the effect of prior choice on the posterior
# Model: y ~ Bernoulli(p), observe 3 successes in 10 trials

set.seed(42)
n <- 10
successes <- 3
failures <- n - successes

p_grid <- seq(0.001, 0.999, length.out = 500)

# Different priors

priors <- list(
"Uniform" = dunif(p_grid, 0, 1),
"Beta(2,2)" = dbeta(p_grid, 2, 2),
"Beta(5,5)" = dbeta(p_grid, 5, 5),
"Beta(1,10)" = dbeta(p_grid, 1, 10) # skeptical prior
)

# Compute posteriors

cat("Effect of prior on posterior (3/10 successes):\n")
for (name in names(priors)) {
prior <- priors[[name]]
likelihood <- dbinom(successes, n, p_grid)
posterior <- likelihood * prior
posterior <- posterior / sum(posterior)

# Posterior mean

post_mean <- sum(p_grid * posterior)

# 95% CI

cum <- cumsum(posterior) / sum(posterior)
lower <- p_grid[which(cum >= 0.025)[1]]
upper <- p_grid[which(cum >= 0.975)[1]]

cat(sprintf(" %-12s: posterior mean = %.3f, 95%% CI = [%.3f, %.3f]\n",
name, post_mean, lower, upper))
}

cat("\nAll priors give similar posteriors with enough data.\n")
cat("With little data, the prior matters more.\n")
Click Run to execute this code in your browser with WebR
Rethinking

Las distribuciones a priori no son subjetivas — son supuestos. El principio de entropía máxima nos da una forma principiada de elegir distribuciones a priori que codifican solo lo que sabemos. Pero "lo que sabemos" es en sí mismo un juicio. Si sabemos que el parámetro está acotado, debemos usar una distribución a priori acotada. Si sabemos que es positivo, debemos usar una distribución a priori positiva. Si no sabemos nada, debemos usar la distribución a priori de entropía máxima. La clave es ser explícito sobre lo que sabemos y dejar que la distribución a priori lo refleje. Una distribución a priori plana en [−∞,∞][-\infty, \infty] no es "objetiva" — es una afirmación de que todos los valores son igualmente plausibles, lo cual rara vez es cierto.

Resumen de la Sección 9.3

  • Las distribuciones a priori de entropía máxima codifican solo lo que sabemos — ni más, ni menos.
  • Rango conocido → uniforme; media conocida → exponencial; media y varianza conocidas → gaussiana.
  • Las distribuciones a priori maxent son una línea base para ignorancia genuina.
  • Cuando tiene información a priori real, úcela — maxent no es una restricción.
  • Las distribuciones a priori son supuestos — sea explícito sobre lo que sabe.