Câu hỏi này là một theo dõi kỹ thuật của câu hỏi này .
Tôi gặp khó khăn trong việc hiểu và sao chép mô hình được trình bày trong Raftery (1988): Suy luận về tham số nhị thức : cách tiếp cận Bayes phân cấp trong WinBUGS / OpenBUGS / JAGS. Nó không chỉ là về mã mặc dù vậy nó nên có chủ đề ở đây.
Lý lịch
Đặt là tập hợp các thành công được tính từ phân phối nhị thức với và không xác định . Hơn nữa, tôi giả sử rằng tuân theo phân phối Poisson với tham số (như được thảo luận trong bài báo). Sau đó, mỗi có phân phối Poisson với giá trị trung bình . Tôi muốn chỉ định các linh mục theo thuật ngữ và .
Giả sử rằng tôi không có bất kỳ kiến thức tốt nào về hoặc , tôi muốn chỉ định các linh mục không cung cấp thông tin cho cả và . Giả sử, các linh mục của tôi là và .
Tác giả sử dụng không đúng trước nhưng WinBUGS không chấp nhận các linh mục không phù hợp.
Thí dụ
Trong bài báo (trang 226), số lượng thành công sau đây của waterbucks được quan sát được cung cấp: . Tôi muốn ước tính , kích thước của dân số.
Đây là cách tôi đã cố gắng đưa ra ví dụ trong WinBUGS ( được cập nhật sau bình luận của @ 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)
Mô hình này không Sill không hội tụ độc đáo sau 500'000 mẫu với 20'000 burn-in mẫu. Đây là đầu ra của một lần chạy 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
Câu hỏi
Rõ ràng, tôi đang thiếu một cái gì đó, nhưng tôi không thể thấy chính xác những gì. Tôi nghĩ rằng công thức của tôi về mô hình là sai ở đâu đó. Vì vậy, câu hỏi của tôi là:
- Tại sao mô hình của tôi và việc thực hiện nó không hoạt động?
- Làm thế nào mô hình được đưa ra bởi Raftery (1988) có thể được xây dựng và thực hiện chính xác?
Cảm ơn bạn đã giúp đỡ.
mu=lambda/theta
và thay thến ~ dpois(lambda)
bằngn ~ dpois(mu)