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 .
[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
fonte
Respostas:
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.
[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.
fonte
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
fonte
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 ).
fonte
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.
fonte