คำถามนี้เป็นการติดตามด้านเทคนิคของคำถามนี้
ฉันมีปัญหาในการทำความเข้าใจและจำลองแบบจำลองที่แสดงในRaftery (1988): การอนุมานสำหรับพารามิเตอร์binomial : แนวทาง Bayes แบบลำดับชั้นใน WinBUGS / OpenBUGS / JAGS มันไม่เพียงเกี่ยวกับรหัสเท่านั้นดังนั้นควรอยู่ในหัวข้อที่นี่
พื้นหลัง
ให้เป็นชุดของการนับความสำเร็จจากการกระจายทวินามด้วยไม่รู้จักNและθ นอกจากนี้ฉันคิดว่าNตามการกระจายของปัวซองด้วยพารามิเตอร์μ (ดังที่กล่าวไว้ในบทความ) จากนั้นแต่ละx ฉันมีการกระจาย Poisson ที่มีค่าเฉลี่ยλ = μ θ ฉันต้องการที่จะระบุไพรเออร์ในแง่ของλและθ
สมมติว่าผมไม่ได้มีความรู้ใด ๆ ก่อนที่ดีเกี่ยวกับหรือθผมต้องการที่จะกำหนดไพรเออร์ที่ไม่แสดงข้อมูลทั้งλและθ พูด, ไพรเออร์ของฉันλ ~ G เมตรเมตร ( 0.001 , 0.001 )และθ ~ U n ฉันฉo R เมตร ( 0 , 1 )
ผู้เขียนใช้สิ่งที่ไม่เหมาะสมก่อนแต่ WinBUGS ไม่ยอมรับนักบวชที่ไม่เหมาะสม
ตัวอย่าง
ในกระดาษแผ่น (หน้า 226) นับประสบความสำเร็จต่อไปนี้ waterbucks สังเกตให้: 72 ฉันต้องการประมาณN , ขนาดของประชากร
นี่คือวิธีที่ฉันพยายามหาตัวอย่างใน WinBUGS ( อัปเดตหลังจากความคิดเห็นของ @ 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)
รูปแบบที่ไม่งัวได้มาบรรจบกันเป็นอย่างดีหลังจาก 500'000 ตัวอย่างกับ 20'000 เผาไหม้ในตัวอย่าง นี่คือผลลัพธ์ของการเรียกใช้ 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
คำถาม
เห็นได้ชัดว่าฉันหายไปบางอย่าง แต่ฉันไม่สามารถเห็นสิ่งที่แน่นอน ฉันคิดว่าสูตรของฉันผิด ดังนั้นคำถามของฉันคือ:
- ทำไมรูปแบบและการนำไปใช้ของฉันไม่ทำงาน
- แบบจำลองที่กำหนดโดย Raftery (1988) จะกำหนดและดำเนินการอย่างถูกต้องได้อย่างไร?
ขอบคุณสำหรับความช่วยเหลือของคุณ.
mu=lambda/theta
และแทนที่n ~ dpois(lambda)
ด้วยn ~ dpois(mu)