Um exemplo prático para o MCMC


14

Eu estava passando por algumas palestras relacionadas ao MCMC. No entanto, não encontro um bom exemplo de como é usado. Alguém pode me dar um exemplo concreto. Tudo o que vejo é que eles administram uma cadeia de Markov e dizem que sua distribuição estacionária é a distribuição desejada.

Quero um bom exemplo em que é difícil provar a distribuição desejada. Então criamos uma cadeia de Markov. Quero saber como selecionar a matriz de transição para que sua distribuição estacionária da cadeia Markov seja a distribuição alvo


A teoria básica das cadeias de Markov é usada para mostrar que um esquema de amostragem específico terá uma distribuição estacionária que é a distribuição conjunta desejada. Para o exemplo mais simples, o amostrador de baunilha Gibbs simula a partir de distribuições condicionais completas. Os núcleos de transição correspondentes, tomados em conjunto, se satisfizerem as condições de convergência (geralmente fáceis de mostrar) podem ser facilmente mostrados como tendo a distribuição conjunta como distribuição estacionária. Da mesma forma para Metropolis Hastings, e assim por diante. Parece que as palestras que você está assistindo não explicam como o MCMC é uma cadeia de Markov
Glen_b -Reinstate Monica

Respostas:


3

Um bom exemplo de uma distribuição difícil de amostrar é o modelo Hard-Core, consulte esta página para uma visão geral:

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

Este modelo define uma distribuição sobre grades para alguns n fixos , onde em cada ponto da grade você pode ter um valor igual a um ou zero. Para que uma grade seja admissível no modelo de núcleo duro, dois pontos adjacentes na grade não podem ter o valor 1.n×nn

A imagem abaixo mostra um exemplo de configuração admissível para um grade de acordo com o modelo do núcleo duro. Nesta imagem, são mostrados pontos pretos e zeros brancos. Observe que nem dois pontos pretos são adjacentes.8×8

Exemplo de configuração admissível para uma grade de $ 8 \ times 8 $ no modelo hard-core

Acredito que a inspiração para este modelo vem da física, você pode pensar em cada posição na grade como uma partícula, e o valor nessa posição que representa carga elétrica ou rotação.

Queremos amostrar uniformemente a população de grades admissíveis, ou seja, se é o conjunto de grades admissíveis, queremos amostrar e E de modo queEeE

p(e)=1|E|

onde é o número de todas as configurações admissíveis possíveis.|E|

Isso já representa um desafio, considerando que estamos considerando grades, como podemos determinar | E | o número de grades admissíveis? n×n|E|

Uma das coisas boas do MCMC é que ele permite a amostra de distribuições em que a constante de normalização é difícil ou impossível de avaliar.

Vou deixar você ler o artigo sobre os detalhes de como implementar o MCMC para esse problema, mas é relativamente direto.



2

Outra questão assustadora nas estatísticas. A questão é antiga, mas os exemplos introdutórios on-line são difíceis de encontrar. Então, deixe-me simplificar dois ótimos exemplos, no caso de alguém seguir o passeio aleatório de Markov pelas terras do PageRank aqui confundido pelo MCMC e cheio de expectativa por uma resposta fácil de seguir. Qual a probabilidade? Essa poderia ser uma pergunta de acompanhamento.

FIRST EXAMPLE:

N(0 0,1) usando o algoritmo Metropolis - Hastings. Longe de ser um caso desafiador, mas bom para dissecar. Eu coletei o código da postagem aqui para conveniência e anotações.

A dificuldade está em perceber que, depois de passar por todas as etapas mecânicas, existe apenas um truque mágico: a decisão binária de aceitar ou rejeitar um valor proposto .

xmean0 0sd 1rnorm(10000)

epsϵxEuxEu+1runif(1, - eps, eps)xEu

Todo valor proposto diferiria, portanto, do valor anterior de maneira aleatória e dentro dos limites de [- eps,+ eps].

EuEu+1

N(0 0,1)xEu+1xEu

min(1, dnorm(candidate_value)/dnorm(x))1N(0 0,1) pdfxEu+1xEumin(1, ...)dnorm

Portanto, temos uma probabilidade de aceitação, mas precisamos tomar uma decisão binária (aceitar o novo valor proposto ou rejeitá-lo). E aqui vem o truque de mágica: se a probabilidade calculada como min(1, dnorm(candidate_value)/dnorm(x))maior que umrunif(1)0 01x[i+1]x[i]

sd10 0

0 0x = 0; vec[1] = x

SECOND EXAMPLE:

Isso é mais interessante e faz referência à estimativa dos parâmetros de uma curva de regressão linear, calculando as probabilidades de log para parâmetros aleatórios, considerando um conjunto de dados . No entanto, a exegese das linhas de código é construída na simulação condensada salva aqui , seguindo etapas muito semelhantes ao primeiro exemplo.


Algumas pequenas correções necessárias: " terras aqui confundidas pelos CMCMs " ... precisam ser revertidas . " Rosenbluth-Hatings " .... provavelmente precisa de um "s" extra lá. Eu diria que o primeiro exemplo não é exatamente "difícil de provar" (como a pergunta). Ambos os seus exemplos parecem ser Metropolis-Hastings (o que certamente é importante), mas o MCMC é mais do que isso. Apenas como um exemplo, muitas pessoas usam amostragem Gibbs, geralmente via JAGS / BUGS / etc. Nenhuma decisão relacionada à aceitação da etapa proposta lá - você sempre se move.
Glen_b -Reinstala Monica

Corrigi os "s" ausentes, a ortografia isomérica do CMCM. Livre-se do hiperlink possivelmente injustificado do YouTube que aborda o problema de nome. Expliquei por que escolhi o primeiro exemplo para elaborar, apesar da solicitação específica da (antiga) pergunta. Agradeço por apontar todas essas questões. Não tenho certeza das implicações da sua última linha.
Antoni Parellada

É simplesmente uma referência à linha " há apenas um truque mágico: a decisão binária de aceitar ou rejeitar um valor proposto "; salientar que não é uma propriedade de todos os algoritmos do MCMC. Isso por si só não significa que há um problema com sua resposta; você pode considerá-lo um esclarecimento, se quiser. O bit isomérico foi bom.
Glen_b -Reinstala Monica

1

Este vídeo do YouTube é uma visualização muito boa de um problema simples que foi resolvido usando o MCMC.

A distribuição de interesse é a distribuição posterior sobre possíveis inclinações e intercepta em uma regressão linear (painel superior direito). Algumas combinações de declives e interceptações são muito prováveis ​​(ou seja, têm uma alta probabilidade de produzir os pontos de dados observados e são consistentes com nossos dados a priori). expectativas a ), portanto devem ser amostradas com freqüência. Outras combinações são improváveis ​​(por exemplo, se correspondem a uma linha azul que não passa pela nuvem de pontos de dados) e devem ser amostradas com menos frequência.

O grande painel na parte inferior esquerda mostra o caminho percorrido pela cadeia de Markov através de um espaço bidimensional de encostas e interceptações. Os histogramas mostram resumos unidimensionais do progresso da cadeia até agora. Uma vez que a cadeia tenha rodado por tempo suficiente, temos estimativas muito boas das distribuições para possíveis valores da inclinação e interceptação.

Nesse caso, o MCMC é um exagero, mas há alguns problemas em que uma solução é difícil de escrever e faz muito sentido explorar as possibilidades com uma cadeia de Markov, em vez de tentar resolvê-la diretamente.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.