Comprendre MCMC: quelle serait l'alternative?

13

Apprendre les statistiques bayésiennes pour la première fois; comme un angle vers la compréhension de MCMC, je me suis demandé: est-ce qu'il fait quelque chose qui ne peut fondamentalement pas être fait d'une autre manière, ou est-ce juste quelque chose de bien plus efficace que les alternatives?

À titre d'illustration, supposons que nous essayons de calculer la probabilité de nos paramètres étant donné les données étant donné un modèle qui calcule l'opposé, . Pour calculer cela directement avec le théorème de Bayes, nous avons besoin du dénominateur comme indiqué ici . Mais pourrions-nous calculer cela par intégration, disons ce qui suit:P ( D | x , y , z ) P ( D )P(x,y,z|D)P(D|x,y,z)P(D)

p_d = 0.
for x in range(xmin,xmax,dx):
    for y in range(ymin,ymax,dy):
        for z in range(zmin,zmax,dz):
            p_d_given_x_y_z = cdf(model(x,y,z),d)
            p_d += p_d_given_x_y_z * dx * dy * dz

Est-ce que cela fonctionnerait (quoique très inefficacement avec un plus grand nombre de variables) ou y a-t-il autre chose qui ferait échouer cette approche?

Sideshow Bob
la source
4
L'intégration fonctionnerait dans de nombreux cas, mais elle prendrait trop de temps (c'est-à-dire qu'elle est inefficace). MCMC est un moyen d'estimer efficacement le postérieur.
Mark White
3
Pas pertinent pour la question, mais je pense que vous manquez l'a priori sur x, y, z dans votre intégrale (il apparaît dans le numérateur de la formule de Bayes)
alberto

Réponses:

17

Vous décrivez une approximation de la grille vers la partie postérieure, et c'est une approche valable, bien qu'elle ne soit pas la plus populaire. Il existe de nombreux cas dans lesquels la distribution postérieure peut être calculée analytiquement. Les chaînes de Markov de Monte Carlo, ou d'autres méthodes approximatives, sont des méthodes pour obtenir des échantillons de la distribution postérieure, qui fonctionnent parfois lorsque la solution analytique ne peut pas être trouvée.

Les solutions analytiques qui peuvent être trouvées sont généralement des cas de familles «conjuguées», et vous pouvez en savoir plus à ce sujet en recherchant sur Google, voir par exemple https://en.wikipedia.org/wiki/Conjugate_prior .

Comme premier exemple, si votre a priori pest uniforme sur [0, 1], où pest un paramètre de succès dans une expérience binomiale simple, le postérieur est égal à une distribution bêta. L'intégration, ou la sommation, peut se faire explicitement dans ce cas.

Si vous avez un nombre infini de choix de paramètres ou si vous utilisez une approximation de grille comme dans votre exemple, une simple somme peut suffire. Cependant, le nombre de calculs peut exploser rapidement si vous avez quelques variables et que vous souhaitez utiliser une grille dense.

Il existe plusieurs algorithmes d'échantillonnage à partir de la partie postérieure. Hamiltonian Monte Carlo, en particulier l'échantillonneur NUTS, est maintenant populaire et utilisé dans stanet PyMC3, Metropolis Hastings est le classique. L'inférence variationnelle est un nouveau venu relatif, pas une méthode d'échantillonnage en fait, mais une façon différente d'obtenir une approximation. Pour le moment, aucune des méthodes, y compris les solutions analytiques, n'est la meilleure, elles fonctionnent toutes bien dans des cas spécifiques.

Gijs
la source
Bonne réponse, mais votre dernier paragraphe semble impliquer que l'inférence variationnelle est une méthode d'échantillonnage, ce qui n'est pas le cas. Vous pourriez envisager de corriger cela.
Ruben van Bergen
7

θ

π(θ|x)exp{||θx||2||θ+x||4||θ2x||6},x,θd,
Xi'an
la source
6

Les méthodes de Monte Carlo sont des techniques qui utilisent des nombres aléatoires. Le but est de trouver des échantillons distribués selon et on suppose que est complexe. Cela signifie que nous ne pouvons pas l'évaluer directement. Si ce n'est pas le cas, vous pouvez simplement le calculer analytiquement. Comme dans votre exemple, ce serait .P ( x ) P ( x ) P ( D )xP(x)P(x)P(D)

Ce que vous proposez est essentiellement une recherche dans la grille à travers l'espace de et . Cela peut être très exhaustif si et sont de grande dimension et irréalisable s'ils sont continus. Un autre problème est que vous devez calculer le cdf à chaque étape.y x yxyxy

Les méthodes MCMC tentent de résoudre ce problème en proposant des échantillons candidats , puis en les acceptant ou en les rejetant en fonction de certaines mesures. Cela peut en théorie être plus rapide que de passer par toutes les combinaisons possibles. Donc, fondamentalement, vous trouvez des échantillons qui sont tirés du précédent . Un problème théorique ici est que ce n'est le cas que pour le nombre limite d'échantillons prélevés, c'est-à-dire après échantillons. Vous ne savez donc pas quand arrêter la chaîne de Markov. P ( D ) ciP(D)

hh32
la source