MCMC e inferência bayesiana

quarta-feira, 11 de setembro de 20130 comentários


Acho que todo aluno de estatística que já tenha cursado uns 2 ou 3 períodos da graduação já ouviu falar sobre inferência bayesiana, e se teve um professor bayesiano, então quase certamente já ouviu sobre Métodos de Monte Carlo via Cadeias de Markov (MCMC).

Acredito que isso se deva, em grande parte, à irrestrita gama de aplicações dos métodos de Monte Carlo via Cadeias de Markov em problemas de inferência bayesiana. Não se conhece nenhum modelo paramétrico que não admita aplicação de algoritmos MCMC. De fato, é mais do que isso. MCMC é um procedimento computacional bastante geral e sua aplicação não se restringe apenas à inferência bayesiana.

Os métodos MCMC permitem obter amostras tão próximas quanto o estatístico queira de uma distribuição alvo qualquer, desde que se saiba o núcleo da expressão da função de densidade ou de probabilidade dessa distribuição. Sob o ponto de vista bayesiano, toda a inferência é feita a partir da distribuição a posteriori, cujo núcleo sempre é conhecido, e por isso é considerada como a distribuição alvo para o MCMC.

Como o nome sugere, o método se baseia na teoria de Cadeias de Markov. Resumidamente, deve-se escolher um núcleo de transição de uma Cadeia de Markov que satisfaça certas condições de regularidade e, para qualquer que seja essa cadeia, o método constrói uma outra cadeia de Markov a partir dela, de modo que a segunda tenha como distribuição limite justamente a distribuição alvo (no caso da inferência bayesiana, a posteriori). Aí fica fácil. Basta simular uma realização dessa segunda cadeia e depois de um certo tempo a cadeia terá convergido para a distribuição limite. A partir desse instante, tem-se uma série temporal de valores cuja distribuição é muito próxima da distribuição a posteriori. Tomando o cuidado de considerar apenas os valores suficientemente espaçados no tempo, teremos uma amostra de valores não autocorrelacionados da posteriori.


Figura1 : Cadeias simuladas de 50.000 iterações via MCMC para dois parâmetros, seguidas dos gráficos de autocorrelação antes e depois de retirar as primeiras 100 iterações e espaçá-las de 50 em 50 iterações para compor amostra final. A cadeia do primeiro parâmetro é bastante autocorrelacionada. 

 Com uma amostra da distribuição a posteriori, temos um histograma a partir do qual obtemos as estimativas a respeito dos parâmetros. Se quisermos a média a posteriori, calculamos a média amostral do histograma. Se quisermos variância a posteriori, calculamos a variância amostral e, assim por diante, podemos obter qualquer medida a respeito da posteriori. Também é possível obter as mesmas medidas para quaisquer funções dos parâmetros.
Figura 2: Histograma da amostra final obtida via MCMC para um dos parâmetros. Intervalo de 95% de credibilidade em roxo. 


 "Ah, tudo bem, mas e os problemas? Será que esses métodos MCMC não têm nenhuma limitação?"

A resposta é sim, claro. Problemas estarão sempre surgindo e melhorias relacionadas a aplicação de MCMC têm sido uma grande fonte de pesquisa para os bayesianos. Os maiores problemas dos métodos MCMC estão relacionados à convergência das cadeias (que, em alguns casos, pode levar muito tempo para ser atingida) ou à autocorrelação dos valores gerados (como ilusta a Figura 1), o que pode demandar muitas iterações e, consequentemente, muito tempo computacional. Para se ter uma ideia, nos casos mais problemáticos, é comum que se precise rodar centenas de milhares (ou até milhões) de iterações onde, em cada uma delas, gera-se um valor para cada parâmetro do modelo.
Figura 3: Cadeia aparentando não ter convergido nas primeiras 10.000 iterações do algoritmo MCMC. É preciso rodar mais iterações até que a série dos valores simulados apresente comportamento estacionário indicativo de convegência.

Existem softwares que possuem rotinas próprias já implementadas para aplicação de MCMC. O OpenBUGS, WinBUGS e JAGS são bastante simples de se utilizar pois requerem apenas que o usuário escreva o modelo, as prioris e os pontos iniciais das cadeias. Tudo o mais é realizado internamente. Também existe o pacote coda coda do R, que aplica MCMC em várias classes de modelos. 

Estatísticos bayesianos com larga experiência em métodos MCMC, geralmente programam suas próprias rotinas em linguagens como Java, Fortran, C++, entre outras e conseguem atingir maior eficiência em termos de tempo de convergência, autocorrelação das cadeias e tempo computacional controlando o núcleo de transição da primeira cadeia, conforme mencionado anteriormente.

Se você se interessou pelo assunto e quer saber mais sobre os métodos MCMC, veja os links a seguir:

Texto introdutório e bastante didático. Foi o primeiro texto que li sobre MCMC e recomendo fortemente aos primeiros navegantes e curiosos:

Artigo que descreve o algoritmo de Metropolis-Hastings, presente na maioria dos métodos MCMC. Esse artigo é mais avançado e mais completo que o primeiro:

Um pouco da história dos métodos MCMC:


Compartilhe :
 
Support : Creating Website | Johny Template | Mas Template
Copyright © 2011. Estatisti.co - All Rights Reserved
Template Created by Creating Website Published by Mas Template
Proudly powered by Blogger