Esta pergunta é um acompanhamento técnico desta pergunta .
Tenho dificuldade em entender e replicar o modelo apresentado em Raftery (1988): Inferência para o binômio parâmetro : uma abordagem hierárquica de Bayes no WinBUGS / OpenBUGS / JAGS. Não se trata apenas de código, portanto, ele deve estar no tópico aqui.
fundo
Seja um conjunto de contagens de sucesso de uma distribuição binomial com N e θ desconhecidos . Além disso, suponho que N siga uma distribuição de Poisson com o parâmetro μ (como discutido no artigo). Então, cada x i tem uma distribuição de Poisson com média λ = μ θ . Quero especificar os anteriores em termos de λ e θ .
Supondo que eu não tenha nenhum conhecimento prévio bom sobre ou θ , desejo atribuir anteriores não informativos a λ e θ . Por exemplo, os antecedentes são λ ~ L um m m um ( 0,001 , 0,001 ) e θ ~ L n i f o r m ( 0 , 1 ) .
O autor usa um prior inadequado de mas o WinBUGS não aceita antecedentes impróprios.
Exemplo
No artigo (página 226), são fornecidas as seguintes contagens de sucesso dos waterbucks observados: . Quero estimar N , o tamanho da população.
Aqui está como eu tentei descobrir o exemplo no WinBUGS ( atualizado após o comentário 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)
O modelo não Sill não convergem bem após 500.000 foi amostras com 20.000 burn-in amostras. Aqui está a saída de uma execução 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
Questões
Claramente, estou perdendo alguma coisa, mas não consigo ver exatamente o que. Eu acho que minha formulação do modelo está errada em algum lugar. Então, minhas perguntas são:
- Por que meu modelo e sua implementação não funcionam?
- Como o modelo dado por Raftery (1988) pode ser formulado e implementado corretamente?
Obrigado pela ajuda.
mu=lambda/theta
e substituirn ~ dpois(lambda)
porn ~ dpois(mu)