Skip to content
Statistical RethinkingStatistical Rethinking

9.1 Entropía máxima

El principio de entropía máxima selecciona la distribución más consistente con las restricciones que conocemos mientras hace los fewer supuestos adicionales. Justifica muchas distribuciones comunes, incluyendo la gaussiana, la binomial y la de Poisson.

9.1.1 El principio

Dado un conjunto de restricciones (ej., media y varianza conocidas), la distribución de entropía máxima es la de mayor entropía entre todas las distribuciones que satisfacen esas restricciones:

H(p)=−∑xp(x)log⁡p(x)H(p) = -\sum_x p(x) \log p(x)

Maximice H(p)H(p) sujeto a las restricciones. Esto da la distribución menos informativa consistente con lo que sabemos — no añade supuestos injustificados.

# Demonstrate maximum entropy distributions
# For a discrete variable with fixed mean, the maxent distribution is exponential

# Case 1: Fixed mean = 3, values 0:10

x <- 0:10
lambda <- 3 # mean constraint
p_exp <- exp(-x / lambda) / sum(exp(-x / lambda))

cat("Maximum entropy distribution (fixed mean = 3):\n")
cat(" x p(x)\n")
for (i in seq_along(x)) {
cat(sprintf(" %2d %.4f\n", x[i], p_exp[i]))
}

cat(sprintf("\n Mean of distribution: %.3f\n", sum(x _ p_exp)))
cat(sprintf(" Entropy: %.4f\n", -sum(p_exp _ log(p_exp))))

# Compare with a uniform distribution (same support)

p_unif <- rep(1/length(x), length(x))
cat(sprintf("\n Uniform entropy: %.4f\n", -sum(p_unif * log(p_unif))))
cat(" The exponential has lower entropy (more information)\n")
cat(" but satisfies the mean constraint.\n")

# Plot

barplot(p_exp, names.arg = x, col = "steelblue",
main = "Maximum entropy: fixed mean = 3",
xlab = "x", ylab = "p(x)")
Click Run to execute this code in your browser with WebR

9.1.2 La gaussiana como entropía máxima

La distribución gaussiana es la distribución de entropía máxima para una variable continua con media y varianza conocidas. Por esto es el valor por defecto natural — no asume nada más allá de los dos primeros momentos.

# Demonstrate that the Gaussian is maximum entropy
# for fixed mean and variance

# Compare Gaussian with other distributions with same mean and variance

set.seed(42)
n <- 1e5
mu <- 0
sigma <- 1

# Gaussian

x_gauss <- rnorm(n, mu, sigma)

# Uniform with same mean and variance

# Uniform(a, b): mean = (a+b)/2, var = (b-a)^2/12

a <- mu - sqrt(3) _ sigma
b <- mu + sqrt(3) _ sigma
x_unif <- runif(n, a, b)

# Compute entropy (via histogram approximation)

compute_entropy <- function(x, breaks = 100) {
h <- hist(x, breaks = breaks, plot = FALSE)
p <- h$counts / sum(h$counts)
p <- p[p > 0]
-sum(p * log(p))
}

H_gauss <- compute_entropy(x_gauss)
H_unif <- compute_entropy(x_unif)

cat("Entropy comparison (same mean and variance):\n")
cat(" Gaussian:", round(H_gauss, 4), "\n")
cat(" Uniform: ", round(H_unif, 4), "\n")
cat("\nThe Gaussian has higher entropy\n")
cat("(among smooth distributions with fixed mean and variance)\n")

# Plot

par(mfrow = c(1, 2))
hist(x_gauss, breaks = 80, col = adjustcolor("steelblue", 0.5),
main = "Gaussian", xlab = "x", freq = FALSE, ylim = c(0, 0.45))
curve(dnorm(x, mu, sigma), add = TRUE, lwd = 2, col = "firebrick")
hist(x_unif, breaks = 80, col = adjustcolor("steelblue", 0.5),
main = "Uniform (same mean/var)", xlab = "x", freq = FALSE, ylim = c(0, 0.45))
par(mfrow = c(1, 1))
Click Run to execute this code in your browser with WebR

9.1.3 Binomial y Poisson como entropía máxima

  • Binomial: Entropía máxima para resultados binarios con un conteo esperado fijo.
  • Poisson: Entropía máxima para conteos con una tasa esperada fija.
# Demonstrate binomial and Poisson as maximum entropy
set.seed(42)

# Binomial: n=10, p=0.3

n <- 10
p <- 0.3
x_bin <- 0:n
p_bin <- dbinom(x_bin, n, p)

cat("Binomial distribution (n=10, p=0.3):\n")
cat(" Mean:", n _ p, "\n")
cat(" Entropy:", round(-sum(p_bin _ log(p_bin)), 4), "\n")

# Poisson: lambda = 3

lambda <- 3
x_pois <- 0:20
p_pois <- dpois(x_pois, lambda)

cat("\nPoisson distribution (lambda=3):\n")
cat(" Mean:", lambda, "\n")
cat(" Entropy:", round(-sum(p_pois * log(p_pois)), 4), "\n")

# Plot

par(mfrow = c(1, 2))
barplot(p_bin, names.arg = x_bin, col = "steelblue",
main = "Binomial (n=10, p=0.3)", xlab = "k", ylab = "p(k)")
barplot(p_pois, names.arg = x_pois, col = "firebrick",
main = "Poisson (lambda=3)", xlab = "k", ylab = "p(k)")
par(mfrow = c(1, 1))
Click Run to execute this code in your browser with WebR
Rethinking

La entropía máxima es ignorancia honesta. El principio de entropía máxima no se trata de ser "objetivo" o "no informativo" en un sentido filosófico. Se trata de ser honesto: usar solo la información que realmente tiene y no pretender saber más de lo que sabe. Si conoce la media y la varianza, la gaussiana es la elección más honesta. Si conoce la tasa, la Poisson es la elección más honesta. Cualquier otra distribución introduciría supuestos que no puede justificar. Esta es la base de todo el marco GLM — la elección de la verosimilitud no es arbitraria; es la distribución de entropía máxima para el tipo de resultado que está modelando.

Overthinking

Multiplicadores de Lagrange y la solución maxent. La distribución de entropía máxima se encuentra maximizando H(p)=−∑pilog⁡piH(p) = -\sum p_i \log p_i sujeto a las restricciones ∑pi=1\sum p_i = 1 y ∑pifk(xi)=fˉk\sum p_i f_k(x_i) = \bar{f}_k. Usando multiplicadores de Lagrange:

L=−∑pilog⁡pi−λ0(∑pi−1)−∑kλk(∑pifk(xi)−fˉk)\mathcal{L} = -\sum p_i \log p_i - \lambda_0 \left(\sum p_i - 1\right) - \sum_k \lambda_k \left(\sum p_i f_k(x_i) - \bar{f}_k\right)

Tomando la derivada e igualándola a cero se obtiene:

pi=1Zexp⁡(−∑kλkfk(xi))p_i = \frac{1}{Z} \exp\left(-\sum_k \lambda_k f_k(x_i)\right)

donde ZZ es la constante de normalización. Esta es una distribución de la familia exponencial. La gaussiana, la binomial, la Poisson y la exponencial son todas miembros de la familia exponencial — son todas distribuciones de entropía máxima para diferentes restricciones.

Resumen de la Sección 9.1

  • La entropía máxima selecciona la distribución menos informativa consistente con las restricciones conocidas.
  • Gaussiana: maxent para resultados continuos con media y varianza conocidas.
  • Binomial: maxent para resultados binarios con conteo esperado conocido.
  • Poisson: maxent para conteos con tasa esperada conocida.
  • Todas son distribuciones de la familia exponencial.
  • La entropía máxima es ignorancia honesta — use solo lo que sabe.