Peut-on changer le taux d'acceptation dans l'algorithme Metropolis à marche aléatoire en changeant le paramètre de la distribution de la proposition?

8

Pouvons-nous changer le taux d'acceptation dans l'algorithme Metropolis à marche aléatoire en changeant le paramètre de la distribution de la proposition?

Soit la distribution cible . Soit la densité de proposition pour un nouvel état x_2 à l'état actuel x_1 . Le taux d'acceptation est \ alpha = \ min (1, \ frac {\ pi (x_2) p (x_1 | x_2)} {\ pi (x_1) p (x_2 | x_1)}) πp(x2|x1)x2x1

α=min(1,π(x2)p(x1|x2)π(x1)p(x2|x1))

Si je me trompe, dans l'algorithme Metropolis à marche aléatoire, la densité de la proposition est symétrique dans le sens où p(x2|x1)=p(x1|x2) , donc le taux d'acceptation ne dépend pas de la densité de la proposition, mais seulement sur la distribution cible π à échantillonner. La modification du paramètre de la distribution de la proposition ne modifiera donc pas le taux d'acceptation α .

Par exemple, si la distribution de la proposition, à l'état actuel x1 , est une distribution gaussienne centrée à l'état actuel avec une variance constante, c'est-à-dire N(x1,σ2) , qui est d'ailleurs symétrique dans le sens ci-dessus, changer la variance σ2 de la distribution de proposition gaussienne ne change pas le taux d'acceptation α ?

Merci!

Tim
la source

Réponses:

11

Si votre proposition présente une très faible variance, votre nouvel état proposé sera très similaire à l'état actuel, donc sera proche de 1 (dans la limite, avec un écart de 0, la proposition et l'état actuel seront les mêmes et vous aurez exactement égal à 1), donc le taux d'acceptation sera proche de 100%.π(x2)π(x1)

Si votre proposition présente un écart élevé, cependant, sera (au moins parfois) bien plus petit que 1, de sorte que votre taux d'acceptation se rapprochera de plus en plus de 0%. Le taux d'acceptation diminue donc à mesure que la variance de la proposition augmente.π(x2)π(x1)

Le problème avec les très faibles variances (qui vous permettront d'obtenir un taux d'acceptation plus élevé) est qu'elles prennent plus de temps pour explorer l'espace postérieur en ne s'éloignant jamais de l'état actuel. Des méthodes MCMC adaptatives comme Haario et al. essayez de gérer ce problème en modifiant la matrice de variance de la proposition à la volée.

Pour régler votre taux d'acceptation, vous pouvez simplement essayer d'augmenter et de diminuer la variance, une approche quelque peu d'essai et d'erreur. Mais selon la géométrie de la partie postérieure, le taux d'acceptation peut changer radicalement au cours du processus d'échantillonnage. De plus, pour les modèles multiparamètres, la matrice de covariance proposée a de nombreux termes de variance et de covariance et une telle méthode devient peu pratique.

Il existe des méthodes plus sofiscated pour gérer cela, comme la méthode adaptative de métropole décrite dans le lien ci-dessus, ou vous voudrez peut-être jeter un œil à d'autres méthodes comme celles répertoriées ici . Vous pouvez également essayer des logiciels comme Jags et Stan si Metropolis ne fonctionne pas pour votre problème.

random_user
la source
Merci! pouvez-vous voir mon article mis à jour? par "Pr (état de la proposition)", voulez-vous dire "Pr (état de la proposition | état actuel)"?
Tim
Salut, dans votre nouvelle notation, je voulais dire . Je n'ai pas pris la peine de puisque vous avez dit que vous travaillez avec une proposition symétrique, et donc leur relation est constante et égale à 1 pour la variance que vous choisissez. π(x2)/π(x1)p(x1|x2)/p(x2|x1)
random_user
Développé un peu la réponse pour en tenir compte.
random_user
parce que l'état de la proposition est une variable aléatoire, est-il exact qu'il n'y a aucun moyen de contrôler le taux d'acceptation dans un intervalle tel que [0,2,0,5]?
Tim
2
Cela dépendra de la géométrie de l'AFAIK postérieur. Si votre postérieur est une distribution normale ou quelque chose de proche et si vous avez une distribution de proposition qui est également normale, je ne vois pas pourquoi vous ne pouviez pas "contrôler" votre taux d'acceptation en faisant des essais et des erreurs dans la variance de la proposition. Bien sûr, les vrais problèmes peuvent être (et sont) bien plus complexes que cela.
random_user
2

Je pense que noter certaines définitions peut être bénéfique pour une référence future à cette question et réponse.

Le rapport du nombre d'états proposés acceptés au nombre de propositions donne le taux d'acceptation. Notez que le taux d'acceptation est le taux d'acceptation au cours de la marche aléatoire.

α dans la question est appelé "probabilité d'acceptation" par Robert & Casella dans leur livre Introduction to Monte Carlo Methods with R (2010, p. 171). C'est très raisonnable puisque , dans leur présentation, adaptée à la notation de la question, est vu ici:α

x2={x2with probability α(x2,x1)x1with probability 1α(x2,x1)where  α(x2,x1)=min{1,π(x2)p(x1|x2)π(x1)p(x2|x1)}

Notez maintenant que ici peut devenir indépendant de la densité de proposition dans le cas d'une proposition de marche aléatoire lorsque . Cependant, le taux d'acceptation tel que défini ci-dessus en dépend toujours pour les raisons expliquées par random_user.αp(x|y)=p(y|x)

Robert et Casella sont très clairs sur la différenciation des deux et définissent cette dernière comme "[...] la moyenne de la probabilité d'acceptation sur les itérations".

Je n'ai que peu d'expérience en la matière mais il m'a suffi de constater que ce que l'on appelle en question «taux d'acceptation» est parfois appelé «taux d'acceptation» (voir Wikipedia par exemple), ce qui conduit à des confusions similaires à celles de la question.

Oğuzhan Öğreden
la source