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 .
Assim, para todos os falantes: e θ m ∼ b e t a ( μ m × κ m , ( 1 - μ m ) × κ m ) onde κ p e κ mcontrolo como um pico a distribuição é de cerca e μ m .
Também , μ m ~ b e t um ( A m , B m ) .
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 Mmu
eKm
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?
fonte
Respostas:
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.
fonte
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.
fonte