MCMC pour gérer les problèmes de vraisemblance plate


9

J'ai une probabilité assez faible conduisant l'échantillonneur Metropolis-Hastings à se déplacer dans l'espace des paramètres de manière très irrégulière, c'est-à-dire qu'aucune convergence ne peut être atteinte quels que soient les paramètres de distribution de la proposition (dans mon cas, il est gaussien). Il n'y a pas de grande complexité dans mon modèle - seulement 2 paramètres, mais il semble que MH ne puisse pas gérer cette tâche. Alors, y a-t-il une astuce autour de ce problème? Existe-t-il un échantillonneur qui ne produirait pas de chaînes de Markov se déplaçant très loin vers la queue postérieure?

Mise à jour du problème:
je vais essayer de reformuler ma question en donnant plus de détails. Je décrirai tout d'abord le modèle.
J'ai un modèle graphique à deux nœuds. Chaque nœud est régi par un modèle auto-Poisson (Besag, 1974) comme suit: Ou, puisqu'il n'y a que deux nœuds et en supposant des intensités globales égales :

p(Xj|Xk=Xk,kj,Θ)Pojesson(eθj+jkθkjXk)
p(X1|X2=X2,θ,α)Pojesson(eθ+αX2)
p(X2|X1=X1,θ,α)Pojesson(eθ+αX1)

Puisqu'il s'agit d'un champ de Markov, la distribution conjointe (ou probabilité de réalisation ) est la suivante: Puisque j'ai supposé des a priori plats pour et , le postérieur est alors proportionnelle à PuisqueX=[X1,X2]

p(X)=eXp(θ(X1+X2)+2X1X2α)Z(θ,α)=eXp(E(θ,α,X))Z(θ,α)
αθ
π(θ,α|X)eXp(E(θ,α,X))Z(θ,α)
Z(θ,α)en général est très difficile à évaluer (beaucoup de lots de sommations) J'utilise la méthode des variables auxiliaires en raison de J. Moller (2006). Selon cette méthode, je dessine d'abord un échantillon de données par échantillonneur de Gibbs (puisque les conditionnelles ne sont que des distributions de poisson) puis je tire une proposition de la distribution gaussienne et calcule en conséquence les critères d'acceptation . Et ici, je reçois une chaîne Markov sauvage. Lorsque j'impose des limites à l'intérieur desquelles la chaîne peut se déplacer, l'échantillonneur semble converger vers une certaine distribution, mais une fois que je déplace au moins une frontière, la distribution résultante se déplace également et affiche toujours la trancation. Je pense que @ Xi'an est bien - le postérieur pourrait être incorrect.XH(X,α,θ|X,α,θ)

1
Une possibilité consiste à utiliser un paramètre à plus grande échelle afin d'obtenir des étapes plus importantes. Vous pourriez également être intéressé par le package R mcmcet la commande metrop. Vous aurez probablement besoin d'un échantillonneur adaptatif. Cet échantillonneur (le twalk) peut être utilisé dans ce genre de cas étant donné qu'il est adaptatif (peut-être juste comme un "deuxième avis"). Il est implémenté en R, C et Python. Les codes peuvent être téléchargés à partir de l' une des pages Web de l'auteur .

@Procrastinator Pouvez-vous nous en dire plus sur ce que vous entendez par "paramètre à plus grande échelle"? Voulez-vous utiliser des paramètres de variance plus importants pour les propositions?
Tomas

2
Permettez-moi de clarifier d'abord que, si la probabilité est plate, vous ne voulez pas vraiment que votre échantillonneur "ne se déplace pas très loin vers la queue postérieure". Ce que l'on souhaite, c'est échantillonner correctement à partir de la distribution (les deux queues et le centre). Lorsque vous utilisez un algorithme MH avec des propositions gaussiennes, vous devez choisir les paramètres d'échelle / matrice de covariance qui déterminent la longueur des étapes. Ceux-ci doivent être choisis pour 1. Échantillonnage correctement de la distribution et 2. Obtention d'un taux d'acceptation raisonnable.

si vous n'avez que deux paramètres, l'intégration numérique est probablement une meilleure alternative
probabilités

il y a un problème avec l'expression de vraisemblance conjointe. Si vous essayez de résumer vous obtenez . la probabilité est donc incorrecte, comme cela est actuellement écrit. X1p(X2|αθ)=g(X2)X1=0exp(X1[θ+2αX2])=
Probabilislogic

Réponses:


8

Je trouve surprenant qu'une probabilité plate génère des problèmes de convergence: c'est généralement le cas contraire qui pose problème! La première vérification habituelle pour de telles situations est de s'assurer que votre postérieur est correct : sinon cela expliquerait des excursions sans fin dans les "queues". Si le postérieur est en effet correct, vous pouvez utiliser des propositions de queue plus grasses comme une distribution de Cauchy ... Et un algorithme adaptatif à la Roberts et Rosenthal.

Si cela "ne fonctionne toujours pas", je suggère d'envisager une reparamétrisation du modèle, en utilisant par exemple (ie s'il n'y a pas d'autre paramétrisation naturelle) une transformation logistique,

φ(X)=exp(X)/{1+exp(X)}
(avec un paramètre d'échelle possible), qui amène le paramètre dans le carré de l'unité.

En ce qui concerne les réponses précédentes, l'échantillonnage de Gibbs semble être une solution plus probable que l'acceptation-rejet, ce qui nécessite de trouver une limite et de mettre à l'échelle la distribution t vers la partie postérieure, ce qui ne semblait pas faisable pour l'échantillonneur Metropolis-Hastings plus robuste ...


@Xian merci pour les commentaires sur le downvote. Y a-t-il réellement une situation où vous préféreriez accepter-rejeter par rapport à MH?
gui11aume

@ gui11aume: si vous pouvez produire un algorithme d'acceptation-rejet avec une limite suffisamment petite pour assurer un taux d'acceptation raisonnable, alors l'acceptation-rejet est sans aucun doute préférable à Metropolis-Hastings. Cependant, il est peu probable que cela se produise avec (a) de grandes dimensions et / ou (b) des cibles complexes, peut-être multimodales ...
Xi'an

2

Pouvez-vous noter la distribution de votre premier paramètre conditionnellement à votre second paramètre et vice-versa? Dans l'affirmative, l' échantillonnage de Gibbs serait une option viable. Ce n'est que quelques lignes de code et il peut se mélanger presque instantanément dans de nombreux cas.


1

EDIT: Voir la réponse de @ Xi'an et la discussion qui suit pour voir les problèmes avec l'approche suivante.

Si Metropolis-Hastings échoue et que votre modèle est relativement simple, vous pourriez penser à utiliser l' algorithme d' acceptation-rejet avec Studentt distribution avec un faible degré de liberté (1-6) pour les propositions.

Si vous utilisez R, vous pouvez facilement simuler une tavec rt(). Si vous ne disposez pas d'un moyen simple de générert variables avec votre logiciel, mais vous pouvez simuler un Γ, puis dessiner la variance d'un gaussien à partir d'un Γ à chaque étape et simuler un gaussien avec cette variance est équivalent.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.