MCMC convergindo para um único valor?

12

Estou tentando ajustar um modelo hierárquico usando jags e o pacote rjags. Minha variável de resultado é y, que é uma sequência de testes de bernoulli. Eu tenho 38 sujeitos humanos que estão realizando sob duas categorias: P e M. Com base em minha análise, todo falante tem uma probabilidade de sucesso na categoria P de e uma probabilidade de sucesso na categoria M de θ p × θ m . Também estou assumindo que existe algum hiperparâmetro de nível comunitário para P e M: µ p e µ m .θpθp×θmμpμm

Assim, para todos os falantes: e θ mb e t a ( μ m × κ m , ( 1 - μ m ) × κ m ) onde κ p e κ mθpbetuma(μp×κp,(1-μp)×κp)θmbetuma(μm×κm,(1-μm)×κm)κpκmcontrolo como um pico a distribuição é de cerca e μ m .μpμm

Também , μ m ~ b e t um ( A m , B m ) .μpbetuma(UMAp,Bp)μmbetuma(UMAm,Bm)

Aqui está o meu modelo de recortes:

model{
## y = N bernoulli trials
## Each speaker has a theta value for each category
for(i in 1:length(y)){
    y[i] ~ dbern( theta[ speaker[i],category[i]])
}

## Category P has theta Ptheta
## Category M has theta Ptheta * Mtheta
## No observed data for pure Mtheta
##
## Kp and Km represent how similar speakers are to each other 
## for Ptheta and Mtheta
for(j in 1:max(speaker)){
    theta[j,1] ~ dbeta(Pmu*Kp, (1-Pmu)*Kp)
    catM[j] ~ dbeta(Mmu*Km, (1-Mmu)*Km)
    theta[j,2] <- theta[j,1] * catM[j]
}

## Priors for Pmu and Mmu
Pmu ~ dbeta(Ap,Bp)
Mmu ~ dbeta(Am,Bm)

## Priors for Kp and Km
Kp ~ dgamma(1,1/50)
Km ~ dgamma(1,1/50)

## Hyperpriors for Pmu and Mmu
Ap ~ dgamma(1,1/50)
Bp ~ dgamma(1,1/50)
Am ~ dgamma(1,1/50)
Bm ~ dgamma(1,1/50)
}

O problema que tenho é que, quando executo este modelo com 5000 iterações para adaptação, colho 1000 amostras MmueKm convergimos para valores únicos. Eu tenho rodado com 4 cadeias, e cada cadeia não tem o mesmo valor, mas dentro de cada cadeia existe apenas um valor.

Eu sou muito novo em ajustar modelos hierárquicos usando métodos MCMC, então estou me perguntando o quão ruim isso é. Devo tomar isso como um sinal de que este modelo não pode ser encaixado, que algo está errado com meus anteriores, ou isso é algo parecido no curso?

μmκm

JoFrhwld
fonte
Se estou entendendo corretamente, esses parâmetros "convergem" em um valor fixo em cada cadeia (após algumas iterações, não muda nada), mas esse valor é diferente para cada cadeia que você executa? Isso parece ruim, como talvez um passo realmente ruim de Metropolis Hastings. Pode ser o seu modelo, pode ser o JAGS, pode ser uma combinação de ambos. Presumivelmente, esse modelo não leva muito tempo para se ajustar, então eu tentaria executar correntes (muito) mais longas primeiro, especialmente no período de adaptação.
JMS
Portanto, atualizei o modelo com mais 5000 iterações e os parâmetros em questão não foram alterados. Eu não sabia que eles poderiam cair em mínimos locais assim.
JoFrhwld
1
Sugestões rápidas: 1. Tente usar dbin, com n = 1. E use limites para limitar o valor de p. Algo parecido com isto: p.bound [i] <- max (0, min (1, p [i])) #
Manoel Galdino 13/06
1
Algumas perguntas esclarecedoras: 1. você tem 38 assuntos na categoria P e 38 assuntos na categoria M, como comprimento (y) = 76? 2. Você poderia fornecer mais informações básicas sobre a lógica dos hiperparâmetros e do experimento? É um pouco confuso para mim.
Manoel Galdino
1
Provavelmente, eu apenas consertaria todos os hiperparâmetros, como em theta [j, 1] ~ dbeta (1.1, 1.1) ou algo assim, e veria os resultados obtidos antes de tentar avançar para uma hiper-anterior. Além disso, o anterior de theta [j, 2] é o produto de dois betas, que não é, em geral, um beta em si e, é claro, theta [j, 2] <theta [j, 1] como resultado. Parece que você pretendeu isso; só por curiosidade, por quê?
jbowman

Respostas:

2

Isso é mais um comentário, mas como não tenho reputação suficiente, posso responder.

Da minha experiência limitada com amostradores MCMC, o que observei é que os parâmetros tendem a permanecer fixos quando os hiperparâmetros são muito estreitos. Como eles controlam a dispersão dos parâmetros, eles impedem que o espaço da solução seja amostrado com eficiência.

Tente obter valores maiores para os hiperparâmetros e veja o que acontece.

Este documento técnico me ajudou muito a entender os amostradores do MCMC. É composto por dois amostradores, Gibbs (o que você está usando) e Hybrid Monte Carlo, e explica rapidamente como escolher priores, hiperpriors e valores para os parâmetros e hiperparâmetros.

Giezi
fonte
0

Isso pode ser um problema da estrutura da cadeia. Onde você acaba depende de onde você começa. Para usar o MCMC, você deseja que a cadeia seja recorrente, o que significa que, não importa onde você comece, poderá chegar a todos os outros estados no espaço de estados. Se a cadeia não for recorrente, você poderá ficar preso em um subconjunto do espaço de estado. A idéia do MCMC é ter uma distribuição estacionária existente na qual a cadeia acabará acabando. Essa distribuição estacionária geralmente tem uma probabilidade positiva de estar em qualquer um dos estados da cadeia e não ficar presa em um único ponto, como você descreveu . Não consigo verificar seu algoritmo, mas talvez você tenha um erro. Também é possível que você tenha definido um problema em que sua cadeia de Markov não é recorrente.

Se você deseja se familiarizar com o MCMC, recomendo que você dê uma olhada no Manual da Cadeia de Markov Monte Carlo, que possui artigos que descrevem todos os aspectos do MCMC. Foi publicado pela CRC Press em 2011.

Michael R. Chernick
fonte