Como obter estimativas de intervalos credíveis multivariados / regiões de maior densidade (HDR) após o MCMC

8

Estou estimando 15 parâmetros do meu modelo usando uma abordagem bayesiana e um método de Markov Chain Monte Carlo (MCMC). Meus dados após a execução de uma cadeia MCMC de 100000 amostras são, portanto, uma tabela 100000 × 15 de valores de parâmetros.

Quero encontrar regiões de maior densidade de 15 dimensões da minha distribuição posterior.

Meu problema: o agrupamento de amostras para atribuí-las a HDRs (por exemplo, usando o cluster baseado em densidade abaixo) precisa de uma matriz de distância de todas as amostras. Para 100000 amostras, essa matriz levaria 37 GiB de RAM, o que eu não tenho, sem falar no tempo de computação. Como posso encontrar meus HDRs usando quantidades razoáveis ​​de recursos de computação? Alguém deve ter tido esse problema antes ?!

Editado para adicionar: de acordo com esta pergunta do SO e a página da Wikipedia do DBSCAN, o DBSCAN pode ser reduzido para complexidade de tempo e complexidade de espaço usando um índice espacial e evitando uma matriz de distância. Ainda está procurando uma implementação ou uma descrição dela ...O(nlogn)O(n)


Regiões multivariadas de maior densidade usando cluster baseado em densidade (DBSCAN)

AX% da região de densidade mais alta é a região de uma distribuição que abrange X% da massa de probabilidade. Como as amostras colhidas por um método MCMC aprovam com uma frequência (assintoticamente) proporcional à distribuição posterior pesquisada, meu X% HDR também abrange X% das minhas amostras.

Planejei usar o algoritmo de agrupamento baseado em densidade DBSCAN para agrupar minhas amostras porque a densidade das amostras está diretamente relacionada à altura do pico do meu posterior.

Em analogia com o método de Hyndman (1996) ( papel , questão SO ), planejei aumentar a distância máxima que uma única amostra pode ter de um cluster para ser considerada parte dela iterativamente até que X% de minhas amostras façam parte de alguns grupo:

DBSCAN aplicado a amostras MCMC

Após essa etapa, eu calcularia o intervalo de cada cluster em cada dimensão como uma maneira de apresentar minhas regiões de maior densidade.

Neste exemplo, você poderá ver que o 80% HDR inclui duas regiões distintas, enquanto o 50% HDR contém apenas um cluster. Eu seria capaz de visualizar isso como mostrado abaixo, porque o gráfico acima não é aplicável a mais de duas dimensões:

Intervalos de HDR visualizados

akraf
fonte
11
Ao executar um MCMC, você observa o valor do destino em cada iteração (até a mesma constante de normalização), portanto, é possível identificar simulações de alta densidade de uma maneira muito mais precisa do que por frequências. Você também pode identificar regiões HPD executando um algoritmo de clustering padrão em simulações com os maiores valores de densidade posterior.
Xian
11
Obrigado pela sua sugestão, @ Xi'an. Mas você pode especificar o que considera um "algoritmo de cluster padrão"? Que algo você poderia sugerir além do DBSCAN (ou clustering de ligação {single | complete}, que é a mesma idéia) se minhas noções de clusters forem "pontos de alta densidade"? Além disso, a maioria das amostras está nas regiões de maior densidade; portanto, se eu quiser calcular, digamos, o IDH de 90%, só posso esperar excluir cerca de 10% das minhas amostras.
akraf
Samworth & Wand (2010, Annals of Statistics ) podem oferecer uma abordagem alternativa.
Stephan Kolassa

Respostas:

1

Encontrei um Wrapper Matlab para a ANN . ANN é uma biblioteca para pesquisas aproximadas de vizinhos mais próximos ( página inicial ). Além dos parâmetros usuais de uma consulta de região de índice espacial, ele usa um parâmetro de erro adicional epsque fornece a "aproximação" da pesquisa: um vizinho mais próximo retornado estará, na maioria das 1+epsvezes, mais distante do ponto de consulta que o verdadeiro (não aproximado) mais próximo vizinho. Procure o termo "erro vinculado" no Manual do Programador para obter informações sobre eps.

Isso permite que eu inclua uma pesquisa rápida de vizinhos mais próximos na minha implementação do DBSCAN, o que acelera o processo descrito na minha pergunta por um período viável. Fornecerei um link assim que a implementação estiver concluída.

akraf
fonte