1. Motivación: del mejor ajuste a la distribución de los parámetros

El periodograma nos dio un periodo candidato; ahora queremos los parámetros orbitales con sus incertidumbres y correlaciones: ¿cuánto vale y con qué error? ¿Está realmente distinta de cero? ¿Hay un segundo planeta? Mínimos cuadrados responde a la primera pregunta solo si el modelo es casi lineal y los errores gaussianos; la inferencia bayesiana responde a todas y lo hace con un único objeto, la distribución posterior de los parámetros, que explora con cadenas de Markov. En exoplanetas es la metodología estándar (Gregory 2005; Foreman-Mackey et al. 2013), y se aplica igual a curvas de luz de tránsito, a cosmología o a ondas gravitacionales.
2. Teorema de Bayes y verosimilitud gaussiana

Para parámetros y datos ,
con la verosimilitud , el prior y la evidencia (una constante para estimar parámetros; esencial para comparar modelos). Si cada dato tiene error gaussiano independiente de desviación conocida y el modelo predice ,
Con prior uniforme, el máximo a posteriori coincide con el mínimo de : mínimos cuadrados es el caso particular bayesiano de priors planos y errores gaussianos (problema 1). Si sospechamos que los errores están subestimados (ruido estelar), se añade un término de jitter : , con un parámetro más (y entonces ya no es constante).
Priors
El prior codifica lo que sabemos antes de ver los datos y debe declararse. Para un parámetro de posición (como o ) el prior uniforme es natural; para un parámetro de escala positivo que abarca órdenes de magnitud (, ) es más honesto el prior de Jeffreys (uniforme en ), que no favorece ninguna década (problema 6). Para y se suele muestrear en , que da prior uniforme en y evita la singularidad de en . Si el prior es informativo (p. ej. de una isocrona) se incluye como gaussiana.
3. Metropolis–Hastings

Queremos muestras distribuidas según sin conocer la constante de normalización. El algoritmo de Metropolis–Hastings (Metropolis et al. 1953; Hastings 1970):
- Desde el estado actual , proponer con una densidad de propuesta .
- Calcular .
- Con probabilidad aceptar (); si no, repetir el estado ().
Con propuesta gaussiana simétrica (paseo aleatorio), y :
siempre se sube, y se baja con probabilidad igual al cociente. En logaritmos: aceptar si
con . Es lo que implementa metropolisHastings en src/lib/math/mcmc.ts.
Por qué funciona: balance detallado
Teorema. La cadena de Metropolis–Hastings tiene a como distribución estacionaria.
Demostración. El núcleo de transición para es . Supongamos (el otro caso es simétrico). Entonces y , de modo que
Esta igualdad es el balance detallado. Integrando en : , es decir, si el estado actual se distribuye según , el siguiente también: es estacionaria. (Los rechazos, que dejan , satisfacen el balance trivialmente.)
Que la cadena converja a desde cualquier punto exige además irreducibilidad y aperiodicidad, garantizadas por una propuesta gaussiana con soporte en todo el espacio. Lo que el teorema no dice es cuánto tarda: de eso tratan los diagnósticos.
La escala de la propuesta
Con pasos muy pequeños casi todo se acepta pero la cadena avanza como un paseo aleatorio lentísimo; con pasos muy grandes casi todo se rechaza. Para blancos gaussianos de dimensión la tasa de aceptación óptima es (0.44 en ), con escala (Roberts, Gelman & Gilks 1997). En nuestro ejemplo (§5), multiplicar la escala por 0.2, 1 y 5 da aceptaciones de 0.90, 0.56 y 0.045, y tiempos de autocorrelación de de 203, 23 y 36 pasos: el centro gana.
4. Diagnósticos de convergencia

Gelman–Rubin
Se corren cadenas desde puntos iniciales dispersos, de longitud tras descartar el calentamiento (burn-in). Para cada parámetro escalar, sean la media de las varianzas intracadena y la varianza entre cadenas. El estimador de la varianza de la posterior
sobrestima si las cadenas no se han mezclado (cada una explora una región distinta: grande), mientras que
la subestima; ambos convergen y . Criterio práctico: (1.01 en trabajos exigentes). Un
no demuestra convergencia (todas las cadenas pueden estar atrapadas en el mismo modo), pero sí demuestra lo
contrario. Implementación: gelmanRubin.
Autocorrelación y tamaño efectivo
Las muestras consecutivas están correlacionadas. Para una cadena con función de autocorrelación normalizada , el tiempo de autocorrelación integrado es
y la varianza de la media muestral es : una cadena de pasos vale como muestras
independientes. La suma se trunca con la ventana automática de Sokal (parar en el primer , ; es lo que
hace emcee) porque los de retardo grande son puro ruido. Para un proceso AR(1) con coeficiente ,
(test con : ). Regla práctica: correr al menos pasos por cadena, y
descartar unos pocos como calentamiento. Implementación: tiempoAutocorrelacion, tamanoEfectivo.
emcee: el muestreador de conjunto
El paseo aleatorio requiere elegir una escala por parámetro, y falla con correlaciones fuertes. Goodman & Weare (2010)
propusieron evolucionar un conjunto de caminantes donde cada uno se mueve a lo largo de la recta que lo une con otro
caminante elegido al azar («stretch move», con de densidad en ,
), aceptando con probabilidad . El algoritmo es invariante afín: su rendimiento es
el mismo para una gaussiana muy alargada y para una esférica, sin ajuste manual. emcee (Foreman-Mackey et al. 2013) es
la implementación de referencia en Python, con estimación de incorporada; en esta lección usamos
Metropolis–Hastings por transparencia, pero en la práctica profesional se usa emcee o muestreo anidado (dynesty,
MultiNest) cuando además se quiere la evidencia.
5. Ejemplo: la curva de velocidad radial de 51 Peg

Datos: las mismas 40 medidas sintéticas de la lección anterior ( d, m s⁻¹, m s⁻¹, m s⁻¹, 61 noches). Modelo circular de cuatro parámetros :
con priors uniformes d, , , d. Cuatro cadenas de
40 000 pasos desde puntos dispersos, escalas de propuesta , calentamiento 5000. Resultados
(mcmc.ts, semillas fijas):
| Parámetro | Verdadero | Media ± σ | [p16, p84] | (pasos) | |
|---|---|---|---|---|---|
| (d) | 4.2293 | [4.2244, 4.2405] | 1.003 | 258 | |
| (m s⁻¹) | 59 | [53.2, 59.2] | 1.000 | 19 | |
| (m s⁻¹) | −33 250 | [−33 252.3, −33 248.1] | 1.000 | 10 | |
| (d) | 0 | [−0.148, −0.001] | 1.003 | 268 |
Aceptación 0.56 en las cuatro cadenas. Comentarios:
- Comparación con la teoría lineal. Para una sinusoide bien muestreada, m s⁻¹ y : la posterior reproduce ambos (3.0 y 2.1). cae a 0.9 σ del valor verdadero: una realización de ruido normal.
- Degeneración –. Cambiar en desplaza la fase en el centro de la campaña en , que se compensa con : la posterior es una «banana» alargada y la cadena de paseo aleatorio la recorre despacio ( frente a 10–20 en los otros). Con 35 000 pasos útiles, por cadena para : suficiente para la media (error de Monte Carlo d) pero escaso para colas. Es el caso típico en que emcee (invariante afín) o reparametrizar ( referido al centro de la campaña) gana mucho.
- Precisión del periodo. d es 25 veces menor que la resolución del periodograma ( d): el periodograma localiza, el ajuste refina.
Comparación de modelos
¿Hay planeta? Comparamos el modelo constante ( parámetro, ) con el circular (, en el máximo). El criterio de información bayesiano da : evidencia abrumadora (umbral habitual ). El BIC es una aproximación a válida para grande y posteriores gaussianas; la comparación rigurosa usa la evidencia, que penaliza automáticamente la complejidad (factor de Occam) y que calculan el muestreo anidado o la integración térmica.
6. Análisis de error

- Error de Monte Carlo. La incertidumbre de cualquier promedio de la cadena es ; para percentiles extremos (p. ej. el límite al 99 % de ) hace falta –.
- Calentamiento. Si se incluye, sesga las medias hacia el punto inicial; se detecta en la traza y con sobre tramos.
- Multimodalidad. Si el periodograma tiene alias comparables (lección anterior), la posterior tiene varios modos y el paseo aleatorio no salta entre ellos: hay que lanzar cadenas desde cada alias o usar muestreo anidado.
- Modelo erróneo. Ningún muestreador corrige un modelo incompleto (segundo planeta, actividad estelar): se ve en los residuos y en un jitter ajustado mucho mayor que .
Problemas
1. (Demostración) Mínimos cuadrados como caso bayesiano. Demuestra que con errores gaussianos independientes y prior uniforme el máximo a posteriori minimiza , y que si el modelo es lineal, , la posterior es gaussiana con media y covarianza , con .
Demostración
con prior uniforme, así que maximizar es minimizar . Para ,
es cuadrático en : desarrollando y completando cuadrados,
con y
. Entonces : gaussiana de
media y covarianza . El test de mcmc.ts comprueba este resultado para una recta: la media y la
desviación de la cadena coinciden con la fórmula.
2. (Demostración) Hastings con propuesta asimétrica. Demuestra que si se usa una propuesta no simétrica (p. ej. lognormal para un parámetro positivo) pero se acepta con sin el cociente , la distribución estacionaria no es . Calcula cuál es para con deriva y blanco uniforme en una caja grande.
Demostración
Con el balance detallado exige ; si , el lado izquierdo es y el derecho , iguales solo si es simétrica. En el ejemplo, dentro de la caja es constante y : la cadena es un paseo aleatorio con deriva por paso, que se acumula en la pared de la caja: la estacionaria es una distribución concentrada en el borde, no la uniforme. La corrección de Hastings, , penaliza los pasos en la dirección de la deriva y restaura la uniformidad.
3. Gelman–Rubin a mano. Tres cadenas de pasos para tienen medias 55.1, 57.8 y 56.4 y varianzas 8.9, 9.4 y 9.1. Calcula , , y . ¿Han convergido? ¿Y si las medias fueran 50, 57 y 63?
Ver solución
; media de medias 56.43, varianza muestral de las medias , ; ; : en el límite, conviene correr más. Con medias 50, 57, 63: varianza , , , : no han convergido (o la posterior es multimodal).
4. (Computacional) Escala de la propuesta. Con el ejemplo de §5 (o con una gaussiana 2D correlacionada, ), corre Metropolis con escalas , , y . Tabula aceptación, y y verifica que el máximo de cae cerca de aceptación 0.2–0.4.
Esquema en Python
import numpy as np
rng = np.random.default_rng(0)
C = np.array([[1, 0.95], [0.95, 1]]); Ci = np.linalg.inv(C)
logp = lambda x: -0.5 * x @ Ci @ x
def tau_int(x, c=5):
x = x - x.mean(); n = len(x); acf = np.correlate(x, x, 'full')[n-1:] / (x @ x)
t = 1.0
for M in range(1, n // 2):
t += 2 * acf[M]
if M >= c * t: return t
return t
for s in (0.1, 1.0, 2.4 / np.sqrt(2), 10.0):
x = np.zeros(2); lp = logp(x); X = []; acc = 0
for _ in range(50000):
xp = x + s * rng.standard_normal(2); lpp = logp(xp)
if np.log(rng.random()) < lpp - lp: x, lp, acc = xp, lpp, acc + 1
X.append(x.copy())
X = np.array(X)[5000:]; t = tau_int(X[:, 0])
print(s, acc / 50000, t, len(X) / t)Con la escala óptima isótropa sigue siendo mala ( de cientos) porque la posterior es una aguja: motivación directa de los muestreadores invariantes afines.
5. (Computacional) Ajuste completo. Reproduce §5 con tu propio Metropolis (o con emcee): cuatro cadenas, trazas, , , histogramas marginales y el diagrama –. Reparametriza con d (centro de la campaña) y compara . Añade después el parámetro de jitter y comprueba que su posterior es compatible con cero.
Ver solución
Con referido al centro de la campaña la correlación – casi desaparece (la fase en el centro ya no depende de ) y
baja de a unas decenas de pasos. Con jitter, incluye ; la posterior de se apila en 0
(límite al 84 % de unos pocos m s⁻¹), como debe ser con datos que ya tienen correcto. Con emcee: 32 caminantes, 5000
pasos, get_autocorr_time().
6. (Demostración) Prior de Jeffreys. Demuestra que es el único prior en invariante ante cambios de unidades , y que equivale a un prior uniforme en . Para m s⁻¹, ¿qué fracción de la masa del prior cae por debajo de 1 m s⁻¹ con el prior uniforme y con el de Jeffreys?
Demostración
Invariancia: para todo ⇒ ; con , . Y . Uniforme: por debajo de 1 m s⁻¹ (el prior «sabe» que es grande). Jeffreys: .
7. Occam. Para los datos de §5, un modelo con excentricidad libre () alcanza . Calcula frente al circular y decide. ¿Qué dice el teorema de Wilks sobre con 2 grados de libertad extra?
Ver solución
: el circular es preferible. Wilks: bajo la hipótesis nula () , y : la mejora es la esperada por azar. (En rigor está en la frontera del espacio de parámetros, lo que modifica la distribución; el BIC es más conservador.)
✦ Autoevaluación
Lecturas
- Gregory, P. C. (2005). Bayesian Logical Data Analysis for the Physical Sciences, cap. 3 (fundamentos), cap. 11 (ajuste no lineal) y cap. 12 (MCMC, con el ejemplo de velocidad radial).
- Hogg & Foreman-Mackey (2018). Data analysis recipes: Using MCMC, ApJS 236, 11: guía práctica, breve y honesta sobre qué funciona.
- Foreman-Mackey et al. (2013), PASP 125, 306 (emcee) y Goodman & Weare (2010): el muestreador invariante afín.
- Gelman & Rubin (1992), Stat. Sci. 7, 457; Sokal (1997): diagnósticos de convergencia y autocorrelación.
- Perryman (2018). The Exoplanet Handbook, §2.3 y §6.4: inferencia de órbitas por velocidad radial y tránsitos.
🍎 Guía para el profesor
- Tiempo
- 2 clases de 90 min
- Resultado de aprendizaje
- Al finalizar, el estudiante formula un ajuste orbital como inferencia bayesiana, implementa Metropolis–Hastings, diagnostica la convergencia con R̂ y τ, e interpreta la posterior y la comparación de modelos.
- Evidencia de aprendizaje
- Entrega del problema 5 (ajuste completo con trazas, R̂, τ, marginales y reparametrización) y del problema 2 (demostración de Hastings).
Materiales
- Python 3 con NumPy; opcionalmente emcee y corner
- src/lib/math/mcmc.ts y velocidadRadial.ts
- Hogg & Foreman-Mackey 2018 (lectura previa, 20 páginas)
Secuencia sugerida
Clase 1. Bayes, verosimilitud gaussiana y priors (§2); Metropolis–Hastings con la demostración del balance detallado (§3); experimento en vivo con la escala de la propuesta.
Clase 2. Diagnósticos (§4) sobre las cadenas del ejemplo; ajuste de 51 Peg (§5) con discusión de la degeneración – y de ΔBIC. Laboratorio: problemas 4 y 5.
Errores frecuentes
- Confundir verosimilitud con posterior y olvidar declarar los priors.
- Tomar R̂ ≈ 1 como prueba de convergencia: solo R̂ ≫ 1 es concluyente.
- Usar la desviación de la cadena sin tener en cuenta τ al estimar errores de Monte Carlo.
- Elegir la escala de propuesta sin mirar la aceptación ni τ; o usar una propuesta asimétrica sin la corrección de Hastings.
- Comparar modelos por χ² sin penalizar parámetros.