Tamanho efetivo da amostra para inferência posterior da amostragem MCMC

13

Ao obter amostras do MCMC para inferir um parâmetro específico, quais são os bons guias para o número mínimo de amostras efetivas que se deve buscar?

E esse conselho muda à medida que o modelo se torna mais ou menos complexo?

Matt Albrecht
fonte
Meu palpite é que provavelmente dependerá da "constante" no erro, que varia entre os modelos. O(n12)
probabilityislogic

Respostas:

15

A pergunta que você está fazendo é diferente de "diagnóstico de convergência". Digamos que você executou todos os diagnósticos de convergência (escolha seu (s) favorito (s)) e agora está pronto para iniciar a amostragem a partir do posterior.

Existem duas opções em termos de tamanho efetivo da amostra (ESS), você pode escolher um ESS univariado ou um ESS multivariado. Um ESS univariado fornecerá um tamanho de amostra eficaz para cada parâmetro separadamente, e os métodos conservadores determinam que você escolha a menor estimativa. Este método ignora todas as correlações cruzadas entre componentes. Provavelmente é isso que a maioria das pessoas usa há um tempo

p

mESS=n(|Λ||Σ|)1/p.
  1. Λ
  2. ΣΛ
  3. p
  4. ||

ΛΣmultiESS

Este artigo recente fornece um limite inferior teoricamente válido do número de amostras efetivas necessárias. Antes da simulação, você precisa decidir

  1. ϵϵ
  2. α
  3. p

mESS22/pπ(pΓ(p/2))2/pχ1α,p2ϵ2,

Γ()minESS

p=2095%ϵ=.05

> minESS(p = 20, alpha = .05, eps = .05)
[1] 8716

Isso vale para qualquer problema (sob condições de regularidade). A maneira como esse método se adapta de um problema para outro é que a mistura lenta das cadeias de Markov leva mais tempo para atingir esse limite inferior, uma vez que o mESS será menor. Portanto, agora você pode verificar algumas vezes usando multiESSse sua cadeia de Markov atingiu esse limite; se não for, pegue mais amostras.

Greenparker
fonte
(+1) Excelente resposta. Você sabe se a função multiESSfoi codificada para outros idiomas, como o MATLAB? (ou seria difícil reimplementar?)
lacerbi
1
Σ
1
Σ
1
@lacerbi Estou feliz que você tenha conseguido codificá-lo no Matlab. Se possível, responda a este comentário quando estiver pronto, para que eu possa usá-lo. Obrigado
Greenparker
1
Minha implementação do multiESS em MATLAB está disponível aqui . É uma versão funcional, embora precisasse de mais testes (não estou familiarizado com o R, caso contrário, compararia-o com a implementação do R).
lacerbi
2

A convergência depende de várias coisas: o número de parâmetros, o modelo em si, o algoritmo de amostragem, os dados ...

Eu sugeriria evitar qualquer regra geral e empregar algumas ferramentas de diagnóstico de convergência para detectar um número apropriado de iterações de redução e redução de volume em cada exemplo específico. Veja também http://www.johnmyleswhite.com/notebook/2010/08/29/mcmc-diagnostics-in-r-with-the-coda-package/, http://users.stat.umn.edu/~geyer/mcmc/diag.html.

Montecristo
fonte