Un exemple pratique pour MCMC

14

Je passais par quelques conférences liées à MCMC. Cependant, je ne trouve pas un bon exemple de la façon dont il est utilisé. Quelqu'un peut-il me donner un exemple concret? Tout ce que je peux voir, c'est qu'ils dirigent une chaîne de Markov et disent que sa distribution stationnaire est la distribution souhaitée.

Je veux un bon exemple où la distribution souhaitée est difficile à échantillonner. Nous créons donc une chaîne de Markov. Je veux savoir comment sélectionner la matrice de transition pour que sa distribution stationnaire, de la chaîne de Markov soit la distribution cible Merci

user34790
la source
La théorie de base de la chaîne de Markov est utilisée pour montrer qu'un schéma d'échantillonnage particulier aura une distribution stationnaire qui est la distribution conjointe souhaitée. Pour l'exemple le plus simple, l'échantillonneur Gibbs vanilla simule à partir de distributions conditionnelles complètes. Les noyaux de transition correspondants, pris ensemble, s'ils satisfont aux conditions de convergence (souvent simples à montrer) peuvent facilement montrer que la distribution conjointe est la distribution stationnaire. De même pour Metropolis Hastings, etc. Il semble que les conférences que vous regardez n'expliquent pas comment MCMC est une chaîne de Markov
Glen_b -Reinstate Monica

Réponses:

3

Un bon exemple de distribution difficile à échantillonner est le modèle Hard-Core, voir cette page pour un aperçu:

http://www.mathematik.uni-ulm.de/stochastik/lehre/ss06/markov/skript_engl/node34.html

Ce modèle définit une distribution sur grilles pour certains n fixes , où à chaque point de la grille vous pouvez avoir une valeur de un ou zéro. Pour qu'une grille soit admissible sous le modèle de noyau dur, deux points adjacents sur la grille ne peuvent pas tous deux avoir une valeur de 1.n×nn

L'image ci-dessous montre un exemple de configuration admissible pour une grille sous le modèle à noyau dur. Dans cette image, les uns sont représentés par des points noirs et les zéros par des blancs. Notez que deux points noirs ne sont pas adjacents.8×8

Exemple de configuration admissible pour une grille $ 8 \ fois 8 $ sous le modèle hard-core

Je crois que l'inspiration pour ce modèle vient de la physique, vous pouvez penser que chaque position dans la grille est une particule, et la valeur à cette position représentant la charge électrique, ou le spin.

Nous voulons échantillonner uniformément à partir de la population de grilles admissibles, c'est-à-dire si est l'ensemble des grilles admissibles, nous voulons échantillonner e E de telle sorte queEeE

p(e)=1|E|

est le nombre de toutes les configurations possibles admissibles.|E|

Cela représente déjà un défi, étant donné que nous considérons grilles, comment pouvons-nous déterminer | E | le nombre de grilles admissibles? n×n|E|

L'une des bonnes choses à propos de MCMC, c'est qu'il vous permet d'échantillonner à partir de distributions où la constante de normalisation est difficile ou impossible à évaluer.

Je vous laisse lire le document sur les détails de la façon d'implémenter MCMC pour ce problème, mais il est relativement simple.

Max S.
la source
2

Un autre problème de taille dans les statistiques. La question est ancienne, mais les exemples d'introduction en ligne sont difficiles à trouver. Alors permettez-moi de simplifier deux excellents exemples au cas où quelqu'un suivant la marche aléatoire Markov de PageRank atterrirait ici par MCMC, et plein d'anticipation pour une réponse facile à suivre. Quelle est la probabilité? Cela pourrait être une question complémentaire.

FIRST EXAMPLE:

N(0,1)

La difficulté est de se rendre compte qu'après avoir traversé toutes les étapes mécaniques, il n'y a qu'une astuce magique: la décision binaire d' accepter ou de rejeter une valeur proposée .

xmean0sd 1rnorm(10000)

epsϵxjexi+1runif(1, - eps, eps)xi

Chaque valeur proposée différerait donc de la valeur précédente de façon aléatoire et dans les limites de [- eps,+ eps].

jei+1

N(0,1)xi+1xi

min(1, dnorm(candidate_value)/dnorm(x))1N(0,1) pdfxi+1ximin(1, ...)dnorm

min(1, dnorm(candidate_value)/dnorm(x))runif(1)01x[i+1]x[i]

sd10

0x = 0; vec[1] = x

SECOND EXAMPLE:

Ceci est plus excitant et fait référence à l' estimation des paramètres d'une courbe de régression linéaire en calculant les log-vraisemblances pour des paramètres aléatoires étant donné un ensemble de données . Cependant, l'exégèse des lignes de code est construite dans la simulation condensée enregistrée ici , en suivant des étapes très similaires au premier exemple.

Antoni Parellada
la source
Quelques corrections mineures nécessaires: "les terres ici confuses des CMCM " ... doivent être retournées. " Rosenbluth-Hatings " .... a probablement besoin d'un "s" supplémentaire là-dedans. Je dirais que le premier exemple n'est pas exactement "difficile à échantillonner" (comme le demande la question). Vos deux exemples semblent être Metropolis-Hastings (ce qui est certainement important), mais MCMC plus que cela. À titre d'exemple, un grand nombre de personnes utilisent l'échantillonnage Gibbs, souvent via JAGS / BUGS / etc. Aucune décision relative à l'acceptation de l'étape proposée là-bas - vous vous déplacez toujours.
Glen_b -Reinstate Monica
J'ai corrigé les «s» manquants, l'orthographe isomérique CMCM. Débarrassé du lien hypertexte potentiellement injustifié vers YouTube qui résout le problème de nom. Expliqué pourquoi j'ai choisi le premier exemple pour élaborer malgré la demande spécifique de la (vieille) question. J'apprécie que vous ayez souligné toutes ces questions. Je ne suis pas certain des implications de votre dernière ligne.
Antoni Parellada
C'est simplement une référence à la ligne " il n'y a qu'une astuce magique: la décision binaire d'accepter ou de rejeter une valeur proposée "; pour souligner que ce n'est pas une propriété de tous les algorithmes MCMC. Cela ne signifie pas en soi qu'il y a un problème avec votre réponse; vous pouvez le considérer comme une clarification si vous le souhaitez. Le bit isomérique était bon.
Glen_b -Reinstate Monica
1

Cette vidéo Youtube est une très belle visualisation d'un problème simple résolu à l'aide de MCMC.

La distribution d'intérêt est la distribution postérieure sur les pentes possibles et les intersections dans une régression linéaire (panneau supérieur droit). Certaines combinaisons de pentes et d'ordonnées à l'origine sont très probables (c'est-à-dire qu'elles ont une forte probabilité de produire les points de données observés et sont conformes à nos attentes a priori ), elles doivent donc être échantillonnées fréquemment. D'autres combinaisons sont improbables (par exemple, si elles correspondent à une ligne bleue qui ne traverse pas le nuage de points de données), et devraient être échantillonnées moins souvent.

Le grand panneau en bas à gauche montre le chemin emprunté par la chaîne de Markov à travers un espace bidimensionnel de pentes et d'ordonnées. Les histogrammes montrent des résumés unidimensionnels des progrès de la chaîne jusqu'à présent. Une fois la chaîne suffisamment longue, nous avons de très bonnes estimations des distributions pour les valeurs possibles de la pente et de l'ordonnée à l'origine.

Dans ce cas, MCMC est exagéré, mais il y a des problèmes où une solution est difficile à écrire et il est très logique d'explorer les possibilités avec une chaîne de Markov plutôt que d'essayer de la résoudre directement.

David J. Harris
la source