Actualización bayesiana con nuevos datos

17

¿Cómo hacemos para calcular un posterior con un N ~ anterior (a, b) después de observar n puntos de datos? Supongo que tenemos que calcular la media muestral y la varianza de los puntos de datos y hacer algún tipo de cálculo que combine lo posterior con lo anterior, pero no estoy muy seguro de cómo se ve la fórmula de combinación.

estudiante
fuente

Respuestas:

22

La idea básica de la actualización bayesiana es que, dado algunos datos y antes del parámetro de interés θ , donde la relación entre los datos y el parámetro se describe utilizando la función de probabilidad , se usa el teorema de Bayes para obtener información posterior.Xθ

pag(θX)pag(Xθ)pag(θ)

Esto se puede hacer de forma secuencial, en donde después de ver el primer punto de datos antes θ se convierte actualiza para posterior θ ' , al lado se puede tomar el segundo punto de datos x 2 y el uso posterior obtenido antes θ ' como suX1 θ θX2θ previo , para actualizar una vez más, etc.

Dejame darte un ejemplo. Imagine que desea estimar la media de distribución normal y que usted conoce σ 2 . En tal caso, podemos usar el modelo normal-normal. Suponemos normal anterior para μ con hiperparámetros μ 0 , σ 2 0 :μσ2μμ0 0,σ0 02:

XμNormal(μ, σ2)μNormal(μ0, σ02)

Dado que la distribución normal es un conjugado previo para de distribución normal, tenemos una solución de forma cerrada para actualizar el previoμ

E(μx)=σ2μ+σ02xσ2+σ02Var(μx)=σ2σ02σ2+σ02

Desafortunadamente, estas soluciones simples de forma cerrada no están disponibles para problemas más sofisticados y debe confiar en algoritmos de optimización (para estimaciones puntuales utilizando el enfoque 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 traza los resultados, verá cómo posterior se aproxima al valor estimado (su valor verdadero está marcado con una línea roja) a medida que se acumulan nuevos datos.

Actualización previa en pasos posteriores en modelo normal-normal

Para obtener más información, puede consultar esas diapositivas y el análisis bayesiano conjugado del documento de distribución gaussiano de Kevin P. Murphy. Compruebe también ¿Los antecedentes bayesianos se vuelven irrelevantes con muestras de gran tamaño? También puede consultar esas notas y esta entrada de blog para obtener una introducción paso a paso accesible a la inferencia bayesiana.

Tim
fuente
Gracias, esto es muy útil. ¿Cómo haríamos para resolver este simple ejemplo (varianza desconocida, a diferencia de su ejemplo)? Supongamos que tenemos una distribución previa de N ~ (5, 4) y luego observamos 5 puntos de datos (8, 9, 10, 8, 7). ¿Cuál sería el posterior después de estas observaciones? Gracias de antemano. Muy apreciado.
statstudent
@Kelly puede encontrar ejemplos de casos en los que se desconoce la varianza y se conoce la media, o ambos se desconocen en la entrada de Wikipedia sobre los conjugados anteriores y los enlaces que proporcioné al final de mi respuesta. Si se desconocen tanto la media como la varianza, se vuelve un poco más complicado.
Tim
μσ2
4

P(θ)P(xθ)

P(θx)=θP(xθ)P(θ)P(x)

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

P(θx)θP(xθ)P(θ)

Where means "is proportional to."

The case of conjugate priors (where you often get nice closed form formulas)

This Wikipedia article on conjugate priors may be informative. Let θ be a vector of your parameters. Let P(θ) be a prior over your parameters. Let P(xθ) be the likelihood function, the probability of the data given the parameters. The prior is a conjugate prior for the likelihood function if the prior P(θ) and the posterior P(θx) are in the same family (eg. both Gaussian).

The table of conjugate distributions may help build some intuition (and also give some instructive examples to work through yourself).

Matthew Gunn
fuente
1

This is the central computation issue for Bayesian data analysis. It really depends on the data and distributions involved. For simple cases where everything can be expressed in closed form (e.g., with conjugate priors), you can use Bayes's theorem directly. The most popular family of techniques for more complex cases is Markov chain Monte Carlo. For details, see any introductory textbook on Bayesian data analysis.

Kodiologist
fuente
Thank you so much! Sorry if this is a really stupid follow-up question, but in the simple cases that you mentioned, how exactly would we use Bayes's theorem directly? Would the distribution created by the sample mean and variance of the data points become the likelihood function? Thank you very much.
statstudent
@Kelly Again, it depends on the distribution. See e.g. en.wikipedia.org/wiki/Conjugate_prior#Example . (If I answered your question, don't forget to accept my answer by clicking on the check mark under the voting arrows.)
Kodiologist