(interagindo) MCMC para posterior multimodal

9

Eu estou tentando provar de uma parte posterior com muitos modos particularmente distantes um do outro usando o MCMC. Parece que, na maioria dos casos, apenas um desses modos contém os 95% hpd que estou procurando. Tentei implementar soluções baseadas em simulação temperada, mas isso não fornece resultados satisfatórios, pois, na prática, ir de um "intervalo de captura" para outro é caro.

Como conseqüência, parece-me que uma solução mais eficiente seria executar muitos MCMCs simples a partir de diferentes pontos de partida e mergulhar na solução dominante, fazendo os MCMCs interagirem entre si. Você sabe se existe alguma maneira adequada de implementar essa ideia?

Nota: Descobri que o artigo http://lccc.eecs.berkeley.edu/Papers/dmcmc_short.pdf (cadeia de Markov distribuída Monte Carlo, Lawrence Murray) parece mais próximo do que estou procurando, mas realmente não entendo o design da função .REu

[EDIT]: a falta de respostas parece indicar que não há solução óbvia para o meu problema inicial (fazendo com que vários MCMCs amostrem da mesma distribuição de destino de diferentes pontos de partida interajam). Isso é verdade ? por que isso é tão complicado? obrigado

peuhp
fonte
Parece o que eu usei anteriormente "Population MCMC" para. Veja "Estimando fatores de Bayes via integração termodinâmica e população MCMC" por Calderhead e Girolami. Desculpe se isso chega um pouco tarde, mas talvez outras pessoas gostem da referência!
Sam Mason
Possivelmente o mesmo que o Population MCMC é o Monte Carlo Sequencial.
Robert P. Goldman

Respostas:

1

Em primeiro lugar, eu recomendaria procurar um método melhor, ou pelo menos um método com descrição mais aprofundada, pois a "cadeia de Markov distribuída Monte Carlo" do artigo que você está se referindo não parece estar claramente definida. As vantagens e desvantagens não são bem exploradas. Existe um método que apareceu recentemente no arxiv chamado " Wormhole Hamiltonian Monte Carlo ", eu recomendaria verificar.

REu(θEu)Euth

[ATUALIZAÇÃO:] A interação entre várias cadeias e a aplicação dessa idéia a amostras da distribuição posterior podem ser encontradas em métodos MCMC paralelos, por exemplo aqui . No entanto, correr várias cadeias e forçá-las a interagir pode não ser adequado para o posterior multimodal: por exemplo, se houver uma região muito pronunciada onde a maior parte da distribuição posterior está concentrada, a interação das cadeias pode até piorar as coisas, aderindo àquela específica região e não explorar outras regiões / modos menos pronunciados. Portanto, eu recomendo fortemente procurar o MCMC projetado especificamente para problemas multimodais. E se você quiser criar outro / novo método, depois de saber o que está disponível no "mercado", poderá criar um método mais eficiente.

Tomas
fonte
Obrigado pela ajuda. Isso não é totalmente o que eu esperava, mas talvez eu esteja procurando coisas inacessíveis. Atualmente, estou investigando (não tenho certeza de que sou capaz de derivar tudo o que é necessário para um MCMC Hamiltoniano), o chamado MC de dardo que encontrei nas suas referências. Dou-lhe a recompensa, obrigado novamente por seus conselhos.
peuhp
@peuhp, isso está intimamente relacionado aos métodos hamiltonianos mencionados acima, mas o Equi-Energy Sampler é um método MCMC que é especificamente cobrado como um método para distribuições posteriores multimodais. Eu sei que ele funciona iniciando várias cadeias paralelas e permitindo saltos entre cadeias, mas não tenho conhecimento / experiência suficiente com o método para postar uma resposta. Dê uma olhada no link. Eu espero que isso ajude.
Macro
1

Você deve tentar multinest: https://arxiv.org/pdf/0809.3437.pdf https://github.com/JohannesBuchner/MultiNest É um mecanismo de inferência bayesiana que fornecerá exemplos de parâmetros para uma distribuição multimodal.

O link do github contém o código fonte multinestal que você compila e instala conforme as instruções. ele também possui um wrapper python mais fácil de usar. Os códigos de exemplo têm uma seção anterior que serve para restringir seus parâmetros e uma seção de probabilidade que contém sua probabilidade. o arquivo de configurações contém todas as suas configurações e encadeia a saída multinestativa de pastas após o ajuste. isso lhe dará amostras de seus parâmetros

Eric Kamau
fonte
Bem-vindo ao CV e obrigado pela sua ótima resposta. Talvez você possa melhorar sua resposta resumindo o Githublink.
Ferdi
11
O link do github contém o código fonte multinestal que você compila e instala conforme as instruções. ele também possui um wrapper python mais fácil de usar. Os códigos de exemplo têm uma seção anterior que serve para restringir seus parâmetros e uma seção de probabilidade que contém sua probabilidade. o arquivo de configurações contém todas as suas configurações e encadeia a saída multinestativa de pastas após o ajuste. isso lhe dará amostras de seus parâmetros.
Eric Kamau
Uau. Isso é incrível. Eu votei na sua resposta. No futuro, você poderá incluir essa descrição sempre que compartilhar um link.
Ferdi
0

Este parece ser um problema difícil e contínuo nas estatísticas computacionais. No entanto, existem alguns métodos menos avançados que devem funcionar bem.

Digamos que você já tenha encontrado vários modos distintos do posterior e esteja feliz por serem os modos mais importantes, e se o posterior ao redor desses modos for razoavelmente normal. Então você pode calcular o hessian nesses modos (digamos, usando otim em R com hessian = T) e pode aproximar o posterior como uma mistura de normais (ou distribuições t). Ver p318-319 em Gelman et al. (2003) "Bayesian Data Analysis" para detalhes. Em seguida, você pode usar a aproximação normal / mistura t como a distribuição da proposta em um amostrador independente para obter amostras do posterior completo.

Outra idéia, que eu não tentei, é a Amostragem de Importância Recozida (Radford Neal, 1998, link aqui ).

Esteira
fonte
Outra coisa, se você já tem um conjunto de cadeias que parecem convergir localmente, cada uma seria fazer algum tipo de reamostragem de importância a partir da combinação de todas as suas cadeias. Não tenho certeza disso.
Mat
Bem-vindo ao fórum Mat. Não hesite em editar sua resposta para adicionar suas novas idéias em vez de comentar sua própria resposta. Errado nada com isso :)
Brumar
0

Que tal experimentar um novo método MCMC para multimodalidade, um algoritmo Metropolis atraente e repulsivo ( http://arxiv.org/abs/1601.05633 )? Este amostrador multimodal funciona com um único parâmetro de ajuste, como um algoritmo Metropolis, e é simples de implementar.

RAM
fonte