Como programas como o BUGS / JAGS determinam automaticamente as distribuições condicionais para a amostragem de Gibbs?

11

Parece que condicionais completos geralmente são bastante difíceis de derivar, mas programas como JAGS e BUGS os derivam automaticamente. Alguém pode explicar como eles geram algoritmos condicionais completos para qualquer especificação arbitrária de modelo?

user4733
fonte
Não me lembro exatamente, mas sei que muitas vezes fazem muitas suposições muito fortes que geralmente não são verdadeiras.
3
Sobre o seu comentário, de que tipo de premissa você está falando?
Stéphane Laurent

Respostas:

3

Lendo os comentários sobre as outras respostas, acredito que a resposta correta para a pergunta que se pretende fazer é "eles não", em geral. Como foi mencionado, eles constroem um DAG e olham para o cobertor de Markov e depois (aproximadamente) fazem o seguinte.

  1. Se o cobertor de Markov em torno de um nó corresponder a uma amostra condicional completa que está em uma amostra da tabela de pesquisa (por exemplo, porque é conjugada) do uso da técnica na tabela de pesquisa.
  2. Senão, verifique se a densidade condicional total não normalizada - que é trivial de calcular - é côncava em log. Se for, use amostragem de rejeição adaptativa.
  3. Caso contrário, faça a amostra usando Metropolis-within-Gibbs para obter amostras da distribuição aproximadamente. Embora essa não seja uma amostra exata, pode-se mostrar que esse algoritmo ainda deixa a invariante posterior.

Isto não é exatamente o que está sendo feito; por exemplo, o JAGS usará outros truques para construir atualizações de blocos. Mas isso deve dar uma idéia do que eles estão fazendo.

cara
fonte
Eu não conheço a documentação de BUGS e JAGS tão bem. Onde isso é relatado, BTW?
Alroware 2/17
@ altroware Também não conheço bem a documentação, desculpe. Eu sei que rjagstem uma função que lista os exemplos que está usando, algo como, list_samplersmas você pode verificar a documentação usual Rpara descobrir isso.
cara
0

π()θiθiθiθi

θi

Ciano
fonte
Claro que é conceitualmente simples, mas, na prática, não é óbvio para mim que expressões fechadas para os condicionais completos seriam triviais para derivar de uma maneira algorítmica. Em cada camada no DAG, você pode ter todos os tipos de transformações - interações multiplicativas, valor absoluto, log, transformações de raiz quadrada etc. Também existem relacionamentos não conjugados.
user4733
Não está claro para mim como alguém é capaz de integrar automaticamente expressões de algoritmo para as distribuições condicionais completas. Talvez esses programas evitem a necessidade de obter expressões de formulário fechado para todos os condicionais, mas estou tentando entender melhor como isso é implementado na prática.
user4733
A constante de normalização não importa, portanto, sempre se tem expressões fechadas porque multiplicamos apenas expressões fechadas. Não ? (Eu estou cansado)
Stéphane Laurent
Na prática, parece-me bastante difícil para o BUGS determinar a distribuição condicional. Talvez dando um exemplo (não-trivial) da vontade ajuda processo DAG ...
Glen
@Glen Se você fornecer um exemplo que lhe deu dificuldade, eu farei a inspeção.
Ciano