J'essaie d'échantillonner à partir d'un postérieur ayant de nombreux modes particulièrement éloignés les uns des autres en utilisant MCMC. Il semble que dans la plupart des cas, un seul de ces modes contient le 95% hpd que je recherche. J'ai essayé d'implémenter des solutions basées sur la simulation tempérée mais cela ne donne pas de résultats satisfaisants car en pratique passer d'une "plage de capture" à une autre est trop coûteux.
En conséquence, il me semble qu'une solution plus efficace serait d'exécuter de nombreux MCMC simples à partir de différents points de départ et de plonger dans la solution dominante en faisant interagir les MCMC. Savez-vous s'il existe un moyen approprié de mettre en œuvre une telle idée?
Remarque: J'ai trouvé ce papier http://lccc.eecs.berkeley.edu/Papers/dmcmc_short.pdf (chaîne de Markov distribuée Monte Carlo, Lawrence Murray) qui ressemble le plus à ce que je recherche, mais je ne comprends vraiment pas le design de la fonction .
[EDIT]: le manque de réponses semble indiquer qu'il n'y a pas de solution évidente à mon problème initial (faire interagir plusieurs MCMC d'échantillonnage à partir de la même distribution cible à partir de différents points de départ). Est-ce vrai ? pourquoi est-ce si compliqué? Merci
Réponses:
Soif de tout ce que je recommanderais de chercher une meilleure méthode, ou au moins une méthode avec une description plus approfondie, car la "chaîne de Markov distribuée Monte Carlo" du document que vous référez ne semble pas être clairement énoncée. Les avantages et les inconvénients ne sont pas bien explorés. Il y a une méthode, qui est apparue dans arxiv assez récemment appelée " Wormhole Hamiltonian Monte Carlo ", je recommanderais de la vérifier.
Pour revenir à l'article que vous avez cité, la proposition à distance est très vaguement décrite. Dans la partie application, il est décrit comme "Gaussien à vraisemblance maximale sur les échantillons t / 2 précédents". Cela signifie peut-être que vous faites la moyenne des dernières valeurs t / 2 de la chaîne i t h ? Un peu difficile à deviner avec la mauvaise description donnée dans la référence.Rje( θje) jet h
[MISE À JOUR:] L'interaction entre plusieurs chaînes et l'application de cette idée à l'échantillon de la distribution postérieure peuvent être trouvées dans des méthodes MCMC parallèles, par exemple ici . Cependant, faire fonctionner plusieurs chaînes et les forcer à interagir peut ne pas convenir au postérieur multimodal: par exemple, s'il y a une région très prononcée où la majeure partie de la distribution postérieure est concentrée, l'interaction des chaînes peut même aggraver les choses en s'en tenant à ce spécifique région et ne pas explorer d’autres régions / modes moins prononcés. Donc, je recommande fortement de rechercher MCMC spécialement conçu pour les problèmes multimodaux. Et si vous voulez créer une autre / nouvelle méthode, après avoir su ce qui est disponible sur le "marché", vous pouvez créer une méthode plus efficace.
la source
Vous devriez essayer multinest: https://arxiv.org/pdf/0809.3437.pdf https://github.com/Johannes{ner/MultiNest C'est un moteur d'inférence bayésien qui vous donnera des échantillons de paramètres pour une distribution multimodale.
Le lien github contient le code source multinest que vous compilez et installez selon les instructions. il a également un wrapper python qui est plus facile à utiliser. Les exemples de codes ont une section précédente qui sert à contraindre vos paramètres et une section de vraisemblance qui contient votre vraisemblance. le fichier de paramètres contient tous vos paramètres et la sortie multinest du dossier des chaînes après l'ajustement. il vous donnera des échantillons de vos paramètres
la source
Cela semble être un problème difficile et permanent dans les statistiques de calcul. Cependant, il existe quelques méthodes moins avancées qui devraient fonctionner correctement.
Disons que vous avez déjà trouvé plusieurs modes distincts du postérieur et que vous êtes heureux que ce soient les modes les plus importants, et si le postérieur autour de ces modes est raisonnablement normal. Ensuite, vous pouvez calculer la toile de jute à ces modes (par exemple, en utilisant optim dans R avec hessian = T) et vous pouvez approximer le postérieur comme un mélange de normales (ou distributions t). Voir p318-319 dans Gelman et al. (2003) "Bayesian Data Analysis" pour plus de détails. Ensuite, vous pouvez utiliser l'approximation mélange normal / t comme distribution de la proposition dans un échantillonneur indépendant pour obtenir des échantillons à partir du postérieur complet.
Une autre idée, que je n'ai pas essayée, est l'échantillonnage d'importance reculée (Radford Neal, 1998, lien ici ).
la source
Qu'en est-il d'essayer une nouvelle méthode MCMC pour la multimodalité, un algorithme Metropolis répulsif-attractif ( http://arxiv.org/abs/1601.05633 )? Cet échantillonneur multimodal fonctionne avec un seul paramètre de réglage comme un algorithme Metropolis et est simple à mettre en œuvre.
la source