¿MCMC converge a un solo valor?

13

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θpθp×θmμ mμpμm

Entonces, para cada orador: y donde y controlan el pico de la distribución alrededor de y .θ mb e t a ( μ m × κ m , ( 1 - μ m ) × κ m ) κ p κ m μ p μ mθpbeta(μp×κp,(1μp)×κp)θmbeta(μm×κm,(1μm)×κm)κpκmμpμm

También , .μ mb e t a ( A m , B m )μpbeta(Ap,Bp)μmbeta(Am,Bm)

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 Mmuy Kmconverjo 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μmκm

JoFrhwld
fuente
Si te entiendo correctamente, estos parámetros "convergen" en un valor fijo en cada cadena (después de algunas iteraciones no cambia), pero ¿ese valor es diferente para cada cadena que ejecutas? Eso suena mal, como tal vez un paso realmente malo de Metropolis Hastings. Podría ser su modelo, podría ser JAGS, podría ser una combinación de ambos. Presumiblemente, este modelo no tarda demasiado en adaptarse, por lo que primero trataría de ejecutar cadenas (mucho) más largas, especialmente durante el período de adaptación.
JMS
Entonces, actualicé el modelo con 5000 iteraciones más, y los parámetros en cuestión no se movieron. No me di cuenta de que podrían caer en mínimos locales como este.
JoFrhwld
1
sugerencias rápidas: 1. Intenta usar dbin, con n = 1. Y use límites para limitar el valor de p. Algo como esto: p.bound [i] <- max (0, min (1, p [i]))
Manoel Galdino
1
Un par de preguntas aclaratorias: 1. ¿Tiene 38 asignaturas en la categoría P y 38 asignaturas en la categoría M, como longitud (y) = 76? 2. ¿Podría dar más información de fondo sobre la justificación de los hiperparamters y el experimento? Es un poco confuso para mí.
Manoel Galdino
1
Probablemente solo arreglaría todos los hiperparámetros, como en theta [j, 1] ~ dbeta (1.1, 1.1) o algo así, y veré qué resultados obtienes antes de intentar pasar a un hiperprior. Además, theta [j, 2] 's anterior es el producto de dos betas, que no es, en general, una beta en sí misma y, por supuesto, theta [j, 2] <theta [j, 1] como resultado. Parece que pretendías esto; solo por curiosidad, ¿por qué?
jbowman

Respuestas:

2

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.

Giezi
fuente
0

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.

Michael R. Chernick
fuente