Questa domanda è un seguito tecnico di questa domanda .
Ho difficoltà a comprendere e replicare il modello presentato in Raftery (1988): Inferenza per il parametro binomiale : un approccio gerarchico di Bayes in WinBUGS / OpenBUGS / JAGS. Non si tratta solo di codice, quindi dovrebbe essere in argomento qui.
sfondo
Sia un insieme di conteggi di successo da una distribuzione binomiale con N e θ sconosciuti . Inoltre, suppongo che N segua una distribuzione di Poisson con il parametro μ (come discusso nel documento). Quindi, ogni x i ha una distribuzione di Poisson con media λ = μ θ . Voglio specificare i priori in termini di λ e θ .
Supponendo che non ho alcuna buona conoscenza preliminare di o θ , voglio assegnare i priori non informativi sia a λ che a θ . Supponiamo che i miei priori siano λ ∼ G a m m a ( 0,001 , 0,001 ) e θ ∼ U n i f o r m ( 0 , 1 ) .
L'autore utilizza un priore improprio di ma WinBUGS non accetta priori impropri.
Esempio
Nel documento (pagina 226) vengono forniti i seguenti conteggi di successo di waterbucks osservati: . Voglio stimare N , la dimensione della popolazione.
Ecco come ho provato a elaborare l'esempio in WinBUGS ( aggiornato dopo il commento di @ 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)
Il modello non Sill non converge bene dopo 500'000 campioni con i campioni 20'000 burn-in. Ecco l'output di una corsa 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
Domande
Chiaramente, mi manca qualcosa, ma non riesco a vedere cosa esattamente. Penso che la mia formulazione del modello sia sbagliata da qualche parte. Quindi le mie domande sono:
- Perché il mio modello e la sua implementazione non funzionano?
- Come si potrebbe formulare e implementare correttamente il modello fornito da Raftery (1988)?
Grazie per l'aiuto.
mu=lambda/theta
e sostituiren ~ dpois(lambda)
conn ~ dpois(mu)