MCMC sur un espace de paramètres borné?

18

J'essaie d'appliquer MCMC sur un problème, mais mes priors (dans mon cas, ils sont )) sont limités à une zone? Puis-je utiliser une MCMC normale et ignorer les échantillons qui se trouvent en dehors de la zone restreinte (qui dans mon cas est [0,1] ^ 2), c'est-à-dire réutiliser la fonction de transition lorsque la nouvelle transition tombe hors de la zone restreinte (contrainte)?α[0,1],β[0,1]

Cupitor
la source
@Zen, je ne suis pas sûr mais la réponse suggérée par Xian est que pour sous-échantillonner, mais au lieu d'utiliser MH, utiliser l'échantillonneur Gibbs et réitérer si l'une des valeurs d'une dimension dépasse la frontière, ai-je raison?
Cupitor du
1
Si MH propose quelque chose en dehors de l'espace des paramètres, la probabilité d'acceptation est simplement définie sur et tout fonctionne bien. Je pense que MH interprète seulement 0 / 0 comme 0 (une manifestation de 0 = 0 dans la théorie de la mesure). 00/000=0
gars
@guy, mais selon la discussion sur la page de xian (lien ci-dessus par Zen), il semble que Gibbs ait une supériorité sans mentionner de raison cependant!
Cupitor
1
@Cupitor Je ne le vois pas dire ça. Je pense que l'implication est que Gabriel faisait Metropolis-within-Gibbs.
gars

Réponses:

27

Vous avez plusieurs options sympas, plus ou moins simples. Votre uniforme avant vous aide à les rendre plus simples.

Option 1: échantillonneur d'indépendance. Vous pouvez simplement définir la distribution de votre proposition égale à une distribution uniforme sur le carré de l'unité, ce qui garantit que les échantillons ne tomberont pas en dehors de la zone restreinte, comme vous l'appelez. Inconvénient potentiel: si le postérieur est concentré dans une très petite région du carré unitaire, vous pouvez avoir un taux d'acceptation très faible. OTOH, il est difficile de générer des nombres aléatoires plus rapidement qu'avec une distribution U (0,1). Potentiel à la hausse: moins de travail pour vous.

Option 2: Transformez vos paramètres en quelque chose qui n'est pas limité, faites des propositions pour les paramètres transformés, puis retransformez les paramètres pour les utiliser dans les fonctions de vraisemblance. Notez que dans ce cas, l'a priori sera sur les paramètres transformés, car c'est pour cela que vous faites des propositions, vous devrez donc jouer avec le jacobien de la transformation pour obtenir le nouveau a priori. Pour votre analyse, bien sûr, vous transformerez les nombres aléatoires générés par MCMC en paramètres d'origine. Inconvénient potentiel: plus de travail initial pour vous. Pptentiel positif: meilleur taux d'acceptation de vos propositions.

Option 3: Construisez une distribution de proposition autre qu'un échantillonneur d'indépendance qui se trouve sur le carré de l'unité. Cela vous permet de conserver votre uniforme avant, mais au prix d'une plus grande complexité lors du calcul des probabilités de proposition. Un exemple de cela, en laissant la valeur actuelle de l'un de vos paramètres, serait une distribution bêta avec des paramètres ( n x , n ( 1 - x ) ) . Plus n est grand, plus votre proposition sera concentrée autour de la valeur actuelle. Inconvénient potentiel: plus de travail initial pour vous. Pptentiel positif: meilleur taux d'acceptation de vos propositions - mais si vous faites nx(nx,n(1x))nn trop grand et se rapprocher d'un coin, vous pourriez finir par faire beaucoup de petits mouvements dans le coin avant de sortir.

Option 4: rejetez simplement toutes les propositions qui ne relèvent pas du carré de l'unité (suggestion à demi enthousiaste de Xian). Notez que ce n'est pas la même chose que de simplement générer une autre proposition; dans ce cas, vous rejetez la proposition, ce qui signifie que votre prochaine valeur pour le paramètre est la même que la valeur actuelle du paramètre. Cela fonctionne parce que c'est ce qui se passerait si vous aviez une probabilité antérieure nulle pour une région de votre espace de paramètres et que vous génériez un nombre aléatoire qui tombait dans cette région. Inconvénient potentiel: si vous vous approchez d'un coin, vous pouvez avoir une faible probabilité d'acceptation et rester coincé pendant un certain temps. Potentiel à la hausse: moins de travail pour vous.

Option 5: créer un problème étendu dans l'avion qui, sur la case de l'unité, est le même que le problème réel auquel vous êtes confronté, tout faire correctement, puis, lors du post-traitement des résultats de l'échantillonnage MCMC, jetez tous les échantillons à l'extérieur du carré unitaire. Potentiel à la hausse: s'il est très facile de créer ce problème étendu, cela peut être moins de travail pour vous. Inconvénient potentiel: si la chaîne de Markov s'éloigne quelque part à l'extérieur du carré de l'unité pendant un certain temps, vous pourriez avoir, en fait, d'horribles probabilités d'acceptation, car vous jeterez la plupart de vos échantillons.

Il y a sans doute d'autres options, je serais intéressé de voir ce que les autres suggèrent!

n

jbowman
la source
Votez! Merci beaucoup pour une réponse aussi complète, mais il y a quelques points que j'ai du mal à suivre: 1) En fait, l'espace des paramètres provient d'un segment de ligne en carré et il est donc très difficile d'obtenir un échantillonnage uniforme, je suppose 2) Cela ne semble pas être une assez bonne idée. Pour donner une illustration simple, imaginez étendre l'échantillon borné simplement en définissant la probabilité de la zone extérieure à zéro! Cela rendrait le processus de convergence très lent, je suppose, et ce serait probablement similaire au sous
Cupitor
3) Le problème avec cette idée est que votre proposition n'est pas inversible et donc il se pourrait que le schéma d'échantillonnage résultant ne soit plus ergodique!
Cupitor
4) est la façon dont j'ai essayé et semble raisonnable (IMH!) 5) Ceux-ci semblent souffrir de l'exemple que j'ai mentionné dans 2 et comme vous l'avez dit vous-même, cela pourrait donner des taux d'acceptation terribles!
Cupitor
2
(0,inf)x(0,1)β
α=2.5(0,5,1) et α=3.2 va à (0,0,8) tandis que α=0,2 va à (0,2,0)
Cupitor