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, ∀ k ≠ j , Θ ) ∼ Po i s s o n (eθj+∑j ≠ kθk jXk)
p (X1|X2=X2, θ , α ) ∼ Po i s s o n (eθ + αX2)
p (X2|X1=X1, θ , α ) ∼ Po i s s o n (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) =e x p ( θ (X1+X2) + 2X1X2α )Z( θ , α )=e x p ( E( θ , α , X) )Z( θ , α )
αθπ( θ , α | X) ∝e x p ( 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.
X′H(X′,α′,θ′| X, α , θ )
mcmc
et la commandemetrop
. 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 .Réponses:
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,
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 ...
la source
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.
la source
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 unet avec t 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.
rt()
. Si vous ne disposez pas d'un moyen simple de générerla source