Quais são algumas melhorias bem conhecidas sobre os algoritmos MCMC de livros didáticos que as pessoas usam para inferência bayesiana?

21

Quando estou codificando uma simulação de Monte Carlo para algum problema, e o modelo é bastante simples, utilizo uma amostra básica de Gibbs do livro didático. Quando não é possível usar a amostra de Gibbs, codifico o livro Metropolis-Hastings que aprendi anos atrás. O único pensamento que dou é escolher a distribuição de salto ou seus parâmetros.

Eu sei que existem centenas e centenas de métodos especializados que aprimoram essas opções de livros didáticos, mas geralmente nunca penso em usá-los / aprendê-los. Geralmente, parece que é muito esforço melhorar um pouco o que já está funcionando muito bem.

Mas, recentemente, estive pensando se talvez não haja novos métodos gerais que possam melhorar o que venho fazendo. Faz muitas décadas desde que esses métodos foram descobertos. Talvez eu esteja realmente desatualizado!

Existem alternativas bem conhecidas para Metropolis-Hastings que são:

  • razoavelmente fácil de implementar,
  • tão universalmente aplicável como MH,
  • e sempre melhora os resultados do MH em algum sentido (desempenho computacional, precisão, etc ...)?

Conheço algumas melhorias muito especializadas para modelos muito especializados, mas existem algumas coisas gerais que todo mundo usa que eu não sei?

Rafael S. Calsaverini
fonte
1
Você quer dizer cadeia de Markov Monte Carlo? As melhorias do livro didático nas simulações de Monte Carlo que posso pensar envolvem amostragem antitética e / ou estratificada, bem como quase-Monte Carlo. Porém, sua menção de apenas Gibbs e Metropolis-Hastings é indicativa da computação bayesiana.
Stask
@StasK, Sim, eu estou interessado principalmente em modelos bayesianos e modelos de física estatística (que é apenas uma inferência bayesiana em distribuições semelhantes a gibbs p (x) = 1 / Z exp (-E (x) / T)). Desculpe por não mencionar isso.
Rafael S. Calsaverini
3
(+1) OK, um bom algoritmo adaptativo de uso geral "recentemente" publicado e já implementado em R, Python e Matlab é o twalk . Funciona bem, mas é sempre uma boa prática verificar novamente usando outro método. BTW, MH é implementado no pacote R mcmc . Obviamente, existem muitos outros, mas a maioria deles não é implementada nesse nível de generalidade e / ou é difícil de implementar. Outra área popular hoje em dia é o Monte Carlo Sequencial. Eu espero que isso ajude.
2
Você já deve saber disso, mas a amostragem de fatias é bastante fácil de implementar e evita algumas armadilhas de um típico algoritmo Metropolis de "passeio aleatório". Um problema com os algoritmos tradicionais do Metropolis é o comportamento do tipo caminhada aleatória; ao invés de se moverem propositadamente em direção a bons estados, eles tropeçam, se movendo lentamente para as boas áreas. Essa é a motivação por trás dos métodos que usam informações no gradiente, como o HMC, mas a amostragem por fatia também se enquadra nesse campo e é mais automática.
guy
1
Eu sei quase nada sobre ABC, mas eu ficaria feliz se alguém poderia explicar um pouco sobre as diferenças entre os métodos ABC e MCMC ...
Manoel Galdino

Respostas:

20

Eu não sou especialista em nada disso, mas pensei em publicá-los de qualquer maneira para ver o que a comunidade pensava. Correções são bem-vindas.

Um método cada vez mais popular, que não é muito fácil de implementar, é chamado Monte Carlo Hamiltoniano (ou às vezes Monte Carlo Híbrido). Ele usa um modelo físico com energia potencial e cinética para simular uma bola rolando em torno do espaço de parâmetros, conforme descrito neste artigo por Radford Neal. O modelo físico requer uma quantidade razoável de recursos computacionais; portanto, você tende a receber muito menos atualizações, mas as atualizações tendem a ser menos correlacionadas. O HMC é o mecanismo por trás do novo software STAN que está sendo desenvolvido como uma alternativa mais eficiente e flexível ao BUGS ou JAGS para modelagem estatística.

Há também todo um conjunto de métodos que envolvem "aquecer" a cadeia de Markov, que você pode pensar em introduzir ruído térmico no modelo e aumentar as chances de amostrar estados de baixa probabilidade. À primeira vista, isso parece uma péssima idéia, pois você deseja que o modelo seja amostrado proporcionalmente à probabilidade posterior. Mas você realmente acaba usando os estados "quentes" para ajudar a cadeia a se misturar melhor. As amostras reais são coletadas apenas quando a corrente está na temperatura "normal". Se você fizer isso corretamente, poderá usar as correntes aquecidas para encontrar modos aos quais uma corrente comum não seria capaz de chegar devido a grandes vales de baixa probabilidade que impedem a transição de modo para modo. Alguns exemplos desses métodos incluem o MCMC acoplado ao Metropolis ,, têmpera paralela e amostragem de importância recozida .

Finalmente, você pode usar Monte Carlo seqüencial ou filtragem de partículas quando a taxa de rejeição for tão alta que todos esses outros métodos falharão. Eu sei o mínimo sobre essa família de métodos, então minha descrição pode estar incorreta aqui , mas meu entendimento é que funciona assim. Você começa executando seu sampler favorito, mesmo que as chances de rejeição sejam essencialmente uma. Em vez de rejeitar todas as suas amostras, você escolhe as menos objetáveis ​​e inicializa novos amostradores a partir daí, repetindo o processo até encontrar algumas amostras que você pode realmente aceitar. Depois, você volta e corrige o fato de que suas amostras não eram aleatórias, porque você não inicializou seus amostradores de locais aleatórios.

Espero que isto ajude.

David J. Harris
fonte