Diese Frage ist eine technische Folge dieser Frage .
Ich habe Probleme, das in Raftery (1988) vorgestellte Modell zu verstehen und zu replizieren : Inferenz für den Binomial- Parameter: ein hierarchischer Bayes-Ansatz in WinBUGS / OpenBUGS / JAGS. Es geht aber nicht nur um Code, es sollte hier auch zum Thema gehören.
Hintergrund
Sei eine Menge von Erfolgszählungen aus einer Binomialverteilung mit unbekanntem und . Ferner gehe ich davon aus, dass einer Poisson-Verteilung mit dem Parameter folgt (wie in der Veröffentlichung beschrieben). Dann hat jedes eine Poisson-Verteilung mit dem Mittelwert . Ich möchte die Prioren in und angeben .N θ N μ x i λ = μ θ λ θ
Unter der Annahme, dass ich keine guten Vorkenntnisse über oder ; habe, möchte ich sowohl als auch ; nicht informative Prioritäten zuweisen . Angenommen, meine Prioren sind und .θ λ θ λ ∼ G a m m a ( 0,001 , 0,001 ) θ ∼ U n i f o r m ( 0 , 1 )
Der Autor verwendet ein falsches Vorzeichen von , WinBUGS akzeptiert jedoch keine falschen Vorzeichen.
Beispiel
In dem Artikel (Seite 226) werden die folgenden Erfolgszahlen der beobachteten Wasserböcke angegeben: . Ich möchte schätzen , die Größe der Bevölkerung.N
So habe ich versucht, das Beispiel in WinBUGS auszuarbeiten ( aktualisiert nach dem Kommentar von @ 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)
Das Modell ist Sill nicht konvergieren schön nach 500'000 Proben mit 20'000 Burn-in - Proben. Hier ist die Ausgabe eines JAGS-Laufs:
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
Fragen
Klar, mir fehlt etwas, aber ich kann nicht genau sehen, was. Ich denke, meine Formulierung des Modells ist irgendwo falsch. Meine Fragen sind also:
- Warum funktioniert mein Modell und seine Implementierung nicht?
- Wie könnte das von Raftery (1988) gegebene Modell richtig formuliert und implementiert werden?
Danke für Ihre Hilfe.
mu=lambda/theta
und ersetzenn ~ dpois(lambda)
durchn ~ dpois(mu)