Mise à jour bayésienne avec de nouvelles données

17

Comment procéder pour calculer un postérieur avec un N ~ (a, b) antérieur après avoir observé n points de données? Je suppose que nous devons calculer la moyenne et la variance de l'échantillon des points de données et faire une sorte de calcul qui combine le postérieur avec le précédent, mais je ne sais pas trop à quoi ressemble la formule de combinaison.

étudiant
la source

Réponses:

22

L'idée de base de la mise à jour bayésienne est que, étant donné certaines données X et antérieures sur le paramètre d'intérêt θ , où la relation entre les données et le paramètre est décrite à l'aide de la fonction de vraisemblance , vous utilisez le théorème de Bayes pour obtenir des données postérieures.

p(θX)p(Xθ)p(θ)

Cela peut être fait séquentiellement, après avoir vu le premier point de données x1 avant que θ soit mis à jour vers θ postérieur , vous pouvez ensuite prendre le deuxième point de données x 2 et utiliser le postérieur obtenu avant θ comme votre a priori , pour le mettre à jour à nouveau, etc.θx2θ

Laisse moi te donner un exemple. Imaginez que vous vouliez estimer la moyenne μ de distribution normale et que σ2 est connu de vous. Dans ce cas, nous pouvons utiliser un modèle normal-normal. Nous supposons un a priori normal pour μ avec des hyperparamètres μ0,σ02:

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

Puisque la distribution normale est un a priori conjugué pour de distribution normale, nous avons une solution de forme fermée pour mettre à jourμ

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

Malheureusement, de telles solutions simples de forme fermée ne sont pas disponibles pour des problèmes plus sophistiqués et vous devez vous fier à des algorithmes d'optimisation (pour les estimations ponctuelles utilisant une approche maximale a posteriori ) ou à la simulation MCMC.

Ci-dessous, vous pouvez voir un exemple de données:

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 vous tracez les résultats, vous verrez comment la valeur postérieure s'approche de la valeur estimée (sa vraie valeur est marquée par une ligne rouge) à mesure que de nouvelles données s'accumulent.

Mise à jour préalable dans les étapes suivantes du modèle normal-normal

Pour en savoir plus, vous pouvez consulter ces diapositives et l'analyse bayésienne conjuguée du document de distribution gaussien de Kevin P. Murphy. Vérifiez également Les antérieurs bayésiens ne sont plus pertinents avec un échantillon de grande taille? Vous pouvez également consulter ces notes et cette entrée de blog pour une introduction étape par étape accessible à l'inférence bayésienne.

Tim
la source
Merci, c'est très utile. Comment pourrions-nous résoudre cet exemple simple (variance inconnue, contrairement à votre exemple)? Supposons que nous ayons une distribution préalable de N ~ (5, 4) et ensuite nous observons 5 points de données (8, 9, 10, 8, 7). Quelle serait la postérieure après ces observations? Merci d'avance. Très appréciée.
statstudent
@Kelly, vous pouvez trouver des exemples de cas où la variance est inconnue et la moyenne connue, ou les deux sont inconnus dans l'entrée Wikipedia sur les antérieurs conjugués et les liens que j'ai fournis à la fin de ma réponse. Si la moyenne et la variance sont inconnues, cela devient légèrement plus compliqué.
Tim
μσ2
4

P(θ)P(xθ)

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

P(x)

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

Le cas des prieurs conjugués (où vous obtenez souvent de belles formules fermées)

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

Le tableau des distributions conjuguées peut aider à construire une certaine intuition (et aussi donner quelques exemples instructifs pour travailler à travers vous-même).

Matthew Gunn
la source
1

Il s'agit du problème de calcul central pour l'analyse des données bayésiennes. Cela dépend vraiment des données et des distributions impliquées. Pour les cas simples où tout peut être exprimé sous forme fermée (par exemple, avec des a priori conjugués), vous pouvez utiliser directement le théorème de Bayes. La famille de techniques la plus populaire pour les cas plus complexes est la chaîne de Markov Monte Carlo. Pour plus de détails, voir tout manuel d'introduction à l'analyse des données bayésiennes.

Kodiologue
la source
Merci beaucoup! Désolé si c'est une question de suivi vraiment stupide, mais dans les cas simples que vous avez mentionnés, comment utiliserions-nous exactement le théorème de Bayes? La distribution créée par la moyenne de l'échantillon et la variance des points de données deviendrait-elle la fonction de vraisemblance? Merci beaucoup.
statstudent
@Kelly Encore une fois, cela dépend de la distribution. Voir par exemple en.wikipedia.org/wiki/Conjugate_prior#Example . (Si j'ai répondu à votre question, n'oubliez pas d'accepter ma réponse en cliquant sur la coche sous les flèches de vote.)
Kodiologist