Regresión bayesiana para analistas: intuición y código
Nota: Artículo de prueba para validar el render de MDX. No publicar.
El problema con los p-valores
El p-valor mide la probabilidad de observar los datos asumiendo que la hipótesis nula es cierta, no la probabilidad de que la hipótesis sea cierta dados los datos1. Esta confusión tiene consecuencias reales en análisis de marketing y política pública.
El marco bayesiano invierte la pregunta. En lugar de , calcula la distribución posterior:
donde son los parámetros del modelo y el prior que codifica el conocimiento previo.
Ejemplo mínimo con PyMC
import pymc as pm
import numpy as np
# Datos simulados: y = 2x + 1 + ruido gaussiano
rng = np.random.default_rng(42)
x = rng.uniform(0, 10, size=50)
y = 2 * x + 1 + rng.normal(0, 1.5, size=50)
with pm.Model() as modelo:
# Priors vagos
alpha = pm.Normal("alpha", mu=0, sigma=10)
beta = pm.Normal("beta", mu=0, sigma=10)
sigma = pm.HalfNormal("sigma", sigma=5)
# Verosimilitud
mu = alpha + beta * x
pm.Normal("y_obs", mu=mu, sigma=sigma, observed=y)
# Muestreo MCMC
traza = pm.sample(1000, tune=1000, return_inferencedata=True)
Distribución posterior
Tras el muestreo MCMC, la distribución posterior de concentra su masa alrededor del valor verdadero con incertidumbre cuantificada. La media posterior y el intervalo de credibilidad del 94 % ofrecen más información que un coeficiente puntual y su p-valor.
Footnotes
-
Gelman et al. (2020), Bayesian Data Analysis, 3.ª ed. Chapman & Hall/CRC. Capítulo 1. ↩