Pertanyaan ini merupakan tindak lanjut teknis dari pertanyaan ini .
Saya mengalami kesulitan memahami dan mereplikasi model yang disajikan dalam Raftery (1988): Inferensi untuk parameter binomial : pendekatan hirarkis Bayes di WinBUGS / OpenBUGS / JAGS. Ini bukan hanya tentang kode, jadi itu harus sesuai topik di sini.
Latar Belakang
Misalkan menjadi himpunan jumlah keberhasilan dari distribusi binomial dengan dan tidak diketahui . Selanjutnya, saya berasumsi bahwa mengikuti distribusi Poisson dengan parameter (seperti yang dibahas dalam makalah ini). Kemudian, setiap memiliki distribusi Poisson dengan rata-rata . Saya ingin menentukan prior dalam hal dan .
Dengan asumsi bahwa saya tidak memiliki pengetahuan sebelumnya yang baik tentang atau , saya ingin menetapkan prior non-informatif untuk dan . Katakanlah, prior saya adalah dan .
Penulis menggunakan prior yang tidak tepat dari tetapi WinBUGS tidak menerima prior yang tidak tepat.
Contoh
Dalam makalah (halaman 226), hitungan keberhasilan berikut dari waterbucks yang diamati disediakan: . Saya ingin memperkirakan , ukuran populasi.
Inilah cara saya mencoba mencari contoh di WinBUGS ( diperbarui setelah komentar @ 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)
Model ini tidak ambang tidak bertemu baik setelah 500'000 sampel dengan 20'000 burn-in sampel. Berikut ini adalah output dari menjalankan 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
Pertanyaan
Jelas, saya kehilangan sesuatu, tetapi saya tidak bisa melihat apa tepatnya. Saya pikir formulasi model saya salah di suatu tempat. Jadi pertanyaan saya adalah:
- Mengapa model saya dan implementasinya tidak berfungsi?
- Bagaimana model yang diberikan oleh Raftery (1988) dapat dirumuskan dan diimplementasikan dengan benar?
Terima kasih atas bantuan Anda.
sumber
mu=lambda/theta
dan gantin ~ dpois(lambda)
dengann ~ dpois(mu)
Jawaban:
Nah, karena kode Anda berfungsi, sepertinya jawaban ini agak terlambat. Tapi saya sudah menulis kode, jadi ...
Untuk apa nilainya, ini adalah * model yang cocok dengan(N,θ)
rstan
. Diperkirakan dalam 11 detik pada laptop konsumen saya, mencapai ukuran sampel efektif yang lebih tinggi untuk parameter minat kami dalam iterasi yang lebih sedikit.Perhatikan bahwa saya berperan
theta
sebagai 2-simpleks. Ini hanya untuk stabilitas numerik. Jumlah bunga adalahtheta[1]
; jelastheta[2]
informasi yang berlebihan.* Seperti yang Anda lihat, ringkasan posterior sebenarnya identik, dan mempromosikan ke kuantitas nyata tampaknya tidak memiliki dampak substantif pada kesimpulan kami.N
Kuantil 97,5% untuk adalah 50% lebih besar untuk model saya, tapi saya pikir itu karena stan sampler lebih baik dalam mengeksplorasi berbagai posterior daripada jalan acak sederhana, sehingga lebih mudah membuatnya menjadi ekor. Tapi saya mungkin salah.N
Mengambil nilai-nilai dihasilkan dari stan, saya menggunakan ini untuk menggambar nilai-nilai prediksi posterior ˜ y . Kita tidak perlu heran bahwa rata-rata prediksi posterior ˜ y sangat dekat dengan rata-rata data sampel!N,θ y~ y~
Untuk memeriksa apakahN y¯=θN .
rstan
sampler bermasalah atau tidak, saya menghitung posterior di atas kisi. Kita dapat melihat bahwa posterior berbentuk pisang; posterior semacam ini dapat menjadi masalah untuk metrik HMC euclidian. Tapi mari kita periksa hasil numeriknya. (Keparahan bentuk pisang sebenarnya ditekan di sini karena berada pada skala log.) Jika Anda berpikir tentang bentuk pisang selama satu menit, Anda akan menyadari bahwa itu harus terletak pada garis ˉ y = θ NKode di bawah ini dapat mengonfirmasi bahwa hasil kami dari stan masuk akal.
rstan
sumber
n
tidak dapat dideklarasikan sebagai bilangan bulat dan saya tidak tahu solusi untuk masalah ini.rstan
yang lebih benar. [1] stats.stackexchange.com/questions/114366/…Berikut ini adalah skrip analisis dan hasil saya menggunakan JAGS dan R:
Perhitungan memakan waktu sekitar 98 detik pada pc desktop saya.
Hasilnya adalah:
sumber