Estoy tratando de ajustar un modelo jerárquico usando jags y el paquete rjags. Mi variable de resultado es y, que es una secuencia de ensayos de bernoulli. Tengo 38 sujetos humanos que se desempeñan en dos categorías: P y M. Según mi análisis, cada hablante tiene una probabilidad de éxito en la categoría P de y una probabilidad de éxito en la categoría M de . También estoy asumiendo que hay algún hiperparámetro a nivel comunitario para P y M: y .θ p × θ mμ m
Entonces, para cada orador: y donde y controlan el pico de la distribución alrededor de y .θ m ∼ b e t a ( μ m × κ m , ( 1 - μ m ) × κ m ) κ p κ m μ p μ m
También , .μ m ∼ b e t a ( A m , B m )
Aquí está mi modelo de dientes:
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)
}
El problema que tengo es que cuando ejecuto este modelo con 5000 iteraciones para la adaptación, tomo 1000 muestras Mmu
y Km
converjo a valores únicos. Lo he estado ejecutando con 4 cadenas, y cada cadena no tiene el mismo valor, pero dentro de cada cadena hay un solo valor.
Soy bastante nuevo en el ajuste de modelos jerárquicos utilizando métodos MCMC, así que me pregunto qué tan malo es esto. ¿Debería tomar esto como una señal de que este modelo no tiene cabida, que algo está mal con mis antecedentes, o es esto normal para el curso?
Editar: en caso de que sea importante, el valor de que convergió (promediado a través de las cadenas) fue 0.91 y fue 1.78
fuente
Respuestas:
Esto es más un comentario, pero como no tengo suficiente reputación, podría responder.
Desde mi experiencia limitada con los muestreadores MCMC, lo que he observado es que los parámetros tienden a permanecer fijos cuando los hiperparámetros son demasiado estrechos. A medida que controlan la difusión de los parámetros, evitan que el espacio de la solución se muestree de manera eficiente.
Intente tomar valores más grandes para los hiperparámetros y vea qué sucede.
Este documento técnico me ayudó mucho a comprender los muestreadores MCMC. Se compone de dos muestreadores, Gibbs (el que está utilizando) y Monte Carlo híbrido, y explica rápidamente cómo elegir priors, hiperpriors y valores para los parámetros e hiperparámetros.
fuente
Esto podría ser un problema de la estructura de la cadena. Donde terminas depende de dónde comienzas. Para usar MCMC, desea que la cadena sea recurrente, lo que significa que no importa dónde comience, puede llegar a cualquier otro estado en el espacio de estados. Si la cadena no es recurrente, puede quedar atrapado en un subconjunto del espacio de estado. La idea de MCMC es tener una distribución estacionaria existente en la que la cadena finalmente se enrolle. Esta distribución estacionaria generalmente tiene una probabilidad positiva de estar en cualquiera de los estados de la cadena y no quedar atrapada en un solo punto como usted describió . No puedo verificar tu algoritmo, pero tal vez tienes un error. También es posible que haya definido un problema en el que su cadena de Markov no es recurrente.
Si desea conocer MCMC, le recomiendo que eche un vistazo al Manual de Markov Chain Monte Carlo, que tiene artículos que describen todos los aspectos de MCMC. Fue publicado por CRC Press en 2011.
fuente