Esta pregunta es un seguimiento técnico de esta pregunta .
Tengo problemas para entender y replicar el modelo presentado en Raftery (1988): Inferencia para el parámetro binomial : un enfoque jerárquico de Bayes en WinBUGS / OpenBUGS / JAGS. Sin embargo, no se trata solo de código, por lo que debe ser sobre el tema aquí.
Antecedentes
Sea un conjunto de conteos exitosos de una distribución binomial con N y θ desconocidos . Además, supongo que N sigue una distribución de Poisson con el parámetro μ (como se discute en el documento). Entonces, cada x i tiene una distribución de Poisson con media λ = μ θ . Quiero especificar los anteriores en términos de λ y θ .
Suponiendo que no tengo ningún buen conocimiento previo sobre o θ , quiero asignar anteriores no informativos a λ y θ . Digamos, mis antecedentes son λ ∼ G a m m a ( 0.001 , 0.001 ) y θ ∼ U n i f o r m ( 0 , 1 ) .
El autor utiliza un previo impropio de pero WinBUGS no acepta anteriores impropios.
Ejemplo
En el documento (página 226), se proporcionan los siguientes recuentos de éxito de los waterbucks observados: . Quiero estimar N , el tamaño de la población.
Así es como traté de resolver el ejemplo en WinBUGS ( actualizado después del comentario de @ Stéphane Laurent):
model {
# Likelihood
for (i in 1:N) {
x[i] ~ dbin(theta, n)
}
# Priors
n ~ dpois(mu)
lambda ~ dgamma(0.001, 0.001)
theta ~ dunif(0, 1)
mu <- lambda/theta
}
# Data
list(x = c(53, 57, 66, 67, 72), N = 5)
# Initial values
list(n = 100, lambda = 100, theta = 0.5)
list(n = 1000, lambda = 1000, theta = 0.8)
list(n = 5000, lambda = 10, theta = 0.2)
El modelo no alféizar no converge muy bien después de 500'000 muestras con 20'000 burn-en muestras. Aquí está el resultado de una ejecución JAGS:
Inference for Bugs model at "jags_model_binomial.txt", fit using jags,
5 chains, each with 5e+05 iterations (first 20000 discarded), n.thin = 5
n.sims = 480000 iterations saved
mu.vect sd.vect 2.5% 25% 50% 75% 97.5% Rhat n.eff
lambda 63.081 5.222 53.135 59.609 62.938 66.385 73.856 1.001 480000
mu 542.917 1040.975 91.322 147.231 231.805 462.539 3484.324 1.018 300
n 542.906 1040.762 95.000 147.000 231.000 462.000 3484.000 1.018 300
theta 0.292 0.185 0.018 0.136 0.272 0.428 0.668 1.018 300
deviance 34.907 1.554 33.633 33.859 34.354 35.376 39.213 1.001 43000
Preguntas
Claramente, me falta algo, pero no puedo ver qué exactamente. Creo que mi formulación del modelo es incorrecta en alguna parte. Entonces mis preguntas son:
- ¿Por qué mi modelo y su implementación no funcionan?
- ¿Cómo podría formularse e implementarse correctamente el modelo proporcionado por Raftery (1988)?
Gracias por tu ayuda.
fuente
mu=lambda/theta
y reemplazarn ~ dpois(lambda)
conn ~ dpois(mu)
Respuestas:
Bueno, ya que tienes tu código para trabajar, parece que esta respuesta es demasiado tarde. Pero ya escribí el código, así que ...
rstan
Tenga en cuenta que lanzo
theta
como un 2-simplex. Esto es solo para la estabilidad numérica. La cantidad de interés estheta[1]
; Obviamentetheta[2]
es información superflua.rstan
El siguiente código puede confirmar que nuestros resultados de Stan tienen sentido.
rstan
fuente
n
no se puede declarar como un entero y no conocía una solución para el problema.rstan
resultados son más correctos. [1] stats.stackexchange.com/questions/114366/…Aquí está mi script de análisis y resultados usando JAGS y R:
La computación tomó alrededor de 98 segundos en mi PC de escritorio.
Los resultados son:
La media posterior denorte es 522 y la mediana posterior es 233 . Calculé el modo posterior denorte en la escala logarítmica y transformado de nuevo la estimación:
Y el 80% -HPD denorte es:
El modo posterior paranorte es 150 y el 80% -HPD es ( 78 ; 578 ) que está muy cerca de los límites dados en el documento que son ( 80 ; 598 ) .
fuente