quarta-feira, outubro 08, 2008

MCMC e Inferência Bayesiana

Recebi um email perguntando sobre livros que abordem MCMC e métodos de estimação bayesiana com a parte de programação, e acredito que pode ser útil para outras pessoas com interesses no assunto. Por isso coloco abaixo a resposta que eu mandei. A resposta está bem informal.

"Existe uma boa literatura sobre MCMC com exemplos de programação. Acho melhor partir da literatura mais ligada a econometria, já que os exemplos são mais familiares, e quando se entra em um território novo é melhor ter alguma referência.

Dois bons livros para começar estão abaixo:

Introduction to Modern Bayesian Econometrics by Tony Lancaster
Bayesian Econometrics by Gary Koop

O livro do Tony Lancaster é muito didático, e ele aborda alguns temas que raramente entram na literatura mais estatística de inferência bayesiana, como variáveis instrumentais. Ele coloca todos os exemplos em WinBugs, que é o programa mais simples de utilizar em inferência bayesiana.
O Winbugs permite que você apenas especifique a estrutura geral das priors e da verossimilhança do modelo, e ele se encarrega da amostragem. O problema é que em alguns casos existem métodos mais eficientes - assim o algoritmo do Winbugs pode funcionar, mas pode ser bem lento até convergir. A linguagem do Winbugs é baseada na linguagem do R, e por isso de alguma forma você acaba aprendendo as duas ao mesmo tempo.

O livro do Koop é muito bom, e com uma boa abordagem para modelos de séries temporais e modelos não-lineares, que são basicamente as ferramentas de uso em modelagem de estrutura a termo. Os exemplos deste livro estão em matlab, e assim são mais úteis se você for programar tudo na mão. Ele é mais profundo que o livro do Lancaster.
Existe outro livro inicial com o uso de R:

Bayesian Computation with R by Jim Albert

Mas eu ainda não li esse livro para dar uma opinião.

Eu não sei qual a sua exposição a inferência bayesiana, mas um bom livro para começar é o Introduction to Bayesian Econometrics by Edward Greenberg

Ele tem toda a parte introdutória. Se você tem uma boa formação em macro talvez o livro do Canova seja útil:
Methods for Applied Macroeconomic Research by Fabio Canova
Ele tem um capítulo todo sobre inferencia bayesiana, mas não há nada programado.

Em termos de livros mais avançados, eu gosto bastante dos seguintes:

Bayesian Statistical Modelling (Wiley Series in Probability and Statistics) by Peter Congdon
Applied Bayesian Modelling (Wiley Series in Probability and Statistics) by Peter Congdon

Esses dois livros do Condgon são muito bons; contém muitos exemplos e metodologias, mas justamente por isso são mais resumidos em cada exemplo. Mas foram com estes livros que eu aprendi inferência bayesiana. Os dois tem todos os exemplos implementados em Winbugs, e com muitas dicas úteis.

Agora para livros bem avançados:

Markov Chain Monte Carlo: Stochastic Simulation for Bayesian Inference by Dani Gamerman e Hedibert Lopes O livro do Dani e do Hedibert é muito bom, mas é bastante avançado, e talvez por isso não seja uma boa escolha para quem está iniciando. Mas com um pouco de familiaridade ele é muito útil em tópicos avançados. Existe uma página do livro com exemplos em R e Winbugs, e na página do Hedibert existem mais exemplos bem interessantes.

E finalmente a bíblia:

Monte Carlo Statistical Methods (segunda edição), Robert e Casella

Esse é o melhor livro existente sobre estimação usando métodos computacionais; bastante completo e avançado em termos de teoria e prática. Esse é o melhor livro mesmo.

Em termos da implementação em geral as pessoas sempre tem um conhecimento básico de programação, e parece que a melhor forma é usar o R mesmo; já que ele tem a maioria das distribuições já implementadas e com isso é mais fácil realizar a amostragem. Para exemplos simples se usa o algoritmo de Gibbs, mas ele exige que você conheça as distribuições condicionais. Nos casos de modelos sem condicionais conhecidas se usa o algoritmo de Metropolis-Hastings, que é relativamente simples de implementar mas um pouco complicado na prática.

Como o Winbugs implementa automaticamente Gibbs e Metropolis-Hastings, talvez seja a melhor forma de começar. A linguagem é meio chata na hora de colocar os dados, mas é possível usar o R para isso (existem pacotes para conectar o R ao Winbugs como o R2Winbugs e o BRugs). Outro problema é também exportar os resultados, e para isso a conexão com o R é fundamental.

Mas o importante é começar a brincar com os exemplos simples, e depois ir sofisticando. "

2 Comments:

Blogger Leonardo Monasterio said...

Caro Laurini,

Muito obrigado mesmo! Que resposta mais completa. Foi utilissmo para mim e soh tenho a te agradecer.
Espírito academico eh isso! Parabens...
Novamente grato. Abracos,

Leo, indo para a Amazon...

5:54 PM  
Blogger Erik Figueiredo said...

Um post para ser guardado.
Abraços,

10:30 PM  

Postar um comentário

<< Home