29 votos

Actualización bayesiana con nuevos datos

¿Cómo se calcula una variable a posteriori con una variable a priori N~(a, b) después de observar n puntos de datos? Supongo que tenemos que calcular la media y la varianza muestrales de los puntos de datos y hacer algún tipo de cálculo que combine la posterior con la anterior, pero no estoy muy seguro de cómo es la fórmula de combinación.

41voto

Dipstick Puntos 4869

La idea básica de la actualización bayesiana es que dados unos datos $X$ y anterior sobre el parámetro de interés $\theta$ donde la relación entre los datos y el parámetro se describe mediante probabilidad se utiliza el teorema de Bayes para obtener la función

$$ p(\theta \mid X) \propto p(X \mid \theta) \, p(\theta) $$

Esto se puede hacer secuencialmente, donde después de ver el primer punto de datos $x_1$ anterior $\theta$ se actualiza a posterior $\theta'$ a continuación puede tomar el segundo punto de datos $x_2$ y utilizar posterior obtenido antes de $\theta'$ como su anterior actualizarlo de nuevo, etc.

Le pondré un ejemplo. Imagine que desea estimar la media $\mu$ de distribución normal y $\sigma^2$ es conocido por ti. En tal caso podemos utilizar el modelo normal-normal. Suponemos una previa normal para $\mu$ con hiperparámetros $\mu_0,\sigma_0^2:$

\begin{align} X\mid\mu &\sim \mathrm{Normal}(\mu,\ \sigma^2) \\ \mu &\sim \mathrm{Normal}(\mu_0,\ \sigma_0^2) \end{align}

Dado que la distribución normal es una previo conjugado para $\mu$ de distribución normal, tenemos una solución de forma cerrada para actualizar la prior

\begin{align} E(\mu' \mid x) &= \frac{\sigma^2\mu + \sigma^2_0 x}{\sigma^2 + \sigma^2_0} \\[7pt] \mathrm{Var}(\mu' \mid x) &= \frac{\sigma^2 \sigma^2_0}{\sigma^2 + \sigma^2_0} \end{align}

Desgraciadamente, estas soluciones sencillas de forma cerrada no están disponibles para problemas más sofisticados y hay que recurrir a algoritmos de optimización (para estimaciones puntuales utilizando máximo a posteriori ), o simulación MCMC.

A continuación puede ver un ejemplo de datos:

n <- 1000
set.seed(123)
x     <- rnorm(n, 1.4, 2.7)
mu    <- numeric(n)
sigma <- numeric(n)

mu[1]    <- (10000*x[i] + (2.7^2)*0)/(10000+2.7^2)
sigma[1] <- (10000*2.7^2)/(10000+2.7^2)
for (i in 2:n) {
  mu[i]    <- ( sigma[i-1]*x[i] + (2.7^2)*mu[i-1] )/(sigma[i-1]+2.7^2)
  sigma[i] <- ( sigma[i-1]*2.7^2                  )/(sigma[i-1]+2.7^2)
}

Si representa gráficamente los resultados, verá cómo posterior se aproxima al valor estimado (su valor real está marcado por la línea roja) a medida que se acumulan nuevos datos.

Updating prior in subsequent steps in normal-normal model

Para saber más, consulte esas diapositivas y Análisis bayesiano conjugado de la distribución gaussiana de Kevin P. Murphy. Consulte también ¿Son irrelevantes las priores bayesianas cuando la muestra es grande? También puede consultar esas notas y esta entrada del blog para una introducción accesible, paso a paso, a la inferencia bayesiana.

4voto

Martin Robins Puntos 1893

Si tiene un $P(\theta)$ y una función de verosimilitud $P(x \mid \theta)$ se puede calcular la posterior con:

$$ P(\theta \mid x) = \frac{\sum_\theta P(x \mid \theta) P(\theta)}{P(x)} $$

Desde $P(x)$ es sólo una constante de normalización para hacer que las probabilidades sumen uno, se podría escribir:

$$P(\theta \mid x) \sim \sum_\theta P(x \mid \theta)P(\theta) $$

Dónde $\sim$ significa "es proporcional a".

El caso de priores conjugados (donde a menudo se obtienen bonitas fórmulas cerradas)

Este artículo de Wikipedia sobre priores conjugados puede ser informativo. Sea $\boldsymbol{\theta}$ sea un vector de sus parámetros. Sea $P(\boldsymbol{\theta})$ sea una prior sobre sus parámetros. Sea $P(\mathbf{x} \mid \boldsymbol{\theta})$ sea la función de verosimilitud, la probabilidad de los datos dados los parámetros. La prior es una prior conjugada para la función de verosimilitud si la prior $P(\boldsymbol{\theta})$ y el posterior $P(\boldsymbol{\theta} \mid \mathbf{x})$ pertenecen a la misma familia (por ejemplo, ambas son gaussianas).

La tabla de distribuciones conjugadas puede ayudar a construir una cierta intuición (y también dar algunos ejemplos instructivos para trabajar a través de ti mismo).

1voto

avid Puntos 161

Este es el problema de cálculo central del análisis bayesiano de datos. Realmente depende de los datos y las distribuciones de que se trate. En los casos sencillos en los que todo puede expresarse de forma cerrada (por ejemplo, con priores conjugados), se puede utilizar directamente el teorema de Bayes. La familia de técnicas más popular para casos más complejos es Markov chain Monte Carlo. Para más detalles, consulte cualquier libro de texto introductorio sobre análisis bayesiano de datos.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X