MGF de distribuciones comunes
- Bernoulli(p):
- Binomial(n, p):
- Poisson(λ):
- Gaussiana(μ, σ²):
- Exponencial(λ):
Capítulo 5
MGF, desigualdades de probabilidad, ley de grandes números y el teorema central del límite — las herramientas que justifican casi todo lo que hacemos en data science.
Una función para gobernarlos a todos
La MGF es una función que encapsula todos los momentos de una distribución:
Los momentos se obtienen derivando la MGF en :
Si X e Y son independientes, la MGF de la suma es el producto:
Esto simplifica enormemente encontrar la distribución de sumas.
import numpy as np
from scipy import stats
# Verificar momentos con MGF
# Para Poisson(λ): E[X] = λ, E[X²] = λ + λ²
lam = 3.0
X = stats.poisson(lam)
print(f"E[X] = {X.mean():.2f} (teórico: {lam})")
print(f"E[X²] = {X.moment(2):.2f} (teórico: {lam + lam**2})")
# Suma de Poisson: si X~Pois(λ1), Y~Pois(λ2) → X+Y~Pois(λ1+λ2)
Y = stats.poisson(2.0)
# Simular la suma
muestras = X.rvs(10000) + Y.rvs(10000)
print(f"Media suma: {muestras.mean():.2f} (teórico: 5.0)")Cotas cuando no conocemos la distribución exacta
Para X ≥ 0 y a > 0. Cota débil pero solo requiere E[X].
Usa media y varianza. Válida para cualquier distribución.
Cota exponencial, mucho más ajustada. Requiere la MGF.
para g convexa.
Para variables acotadas en [a, b].
# Comparación de cotas: Binomial(n=100, p=0.5)
# P(|X - np| >= 20) = P(|X - 50| >= 20)
import numpy as np
from scipy import stats
n, p = 100, 0.5
X = stats.binom(n, p)
prob_real = 1 - X.cdf(70) + X.cdf(29)
print(f"Probabilidad real: {prob_real:.6f}")
# Markov: P(X >= 70)
media = n * p
print(f"Cota Markov: {media/70:.6f}")
# Chebyshev: P(|X - 50| >= 20)
var = n * p * (1 - p)
k = 20 / np.sqrt(var)
print(f"Cota Chebyshev: {1/k**2:.6f}")
# Chernoff: cota exponencial para Binomial
epsilon = 0.2 # 20% de desviación
cota = np.exp(-2 * n * epsilon**2)
print(f"Cota Hoeffding: {cota:.6f}")La media muestral converge a la media poblacional
Ley Débil (WLLN): . La media muestral converge en probabilidad a la media poblacional.
Ley Fuerte (SLLN): . Convergencia casi segura — un resultado más fuerte.
Justifica usar la media muestral como estimador de la media poblacional. Es la base de la estadística inferencial: con suficientes datos, el promedio de la muestra se acerca al valor real.
El resultado más importante de la estadística
El CLT dice que la suma (o media) de muchas variables independientes e idénticamente distribuidas tiende a una distribución Gaussiana, sin importar la distribución original:
Selecciona una distribución y aumenta n para ver cómo la media muestral se vuelve aproximadamente normal (curva amarilla).
# CLT en acción: Bernoulli(p=0.3), n=50
import numpy as np
import matplotlib.pyplot as plt
p, n, N = 0.3, 50, 10000
medias = [np.random.binomial(n, p) / n for _ in range(N)]
# Teórico: media=p, var=p(1-p)/n
mu = p
se = np.sqrt(p * (1 - p) / n)
plt.hist(medias, bins=40, density=True, alpha=0.6)
xs = np.linspace(mu - 4*se, mu + 4*se, 200)
plt.plot(xs, 1/(se*np.sqrt(2*np.pi)) * np.exp(-(xs-mu)**2/(2*se**2)))
plt.title(f"CLT: Bernoulli(p={p}), n={n}")
plt.show()