Bayesian
如何指定人口收縮的貝葉斯二項式模型?
問題
我目前正在解決一個我有計數數據的問題以下形式的項目:
Item Count Total -------------------- 1 1 30 2 10 340 3 0 0 4 1 10 ...
我想計算成功概率的後驗對於每個項目。此外,我懷疑所有項目都具有相似甚至相同的成功概率,但我希望模型能夠確定這一點。
我對結果模型的期望是:
- 估計所有項目的基礎全局參數和
- 縮小成功概率朝向這個全局參數,以處理觀察很少的項目。
- 具有指示不同成功概率的觀察的項目應該能夠“覆蓋”全局成功概率。
標準代碼
這是我目前實現的 Stan 代碼:
data { int<lower=0> J; // amount of items int count[J]; int total[J]; } parameters { real<lower=0,upper=1> mu; real<lower=0.001> ss; real<lower=0,upper=1> prob[J]; } model { mu ~ uniform(0, 1); ss ~ gamma(0.01, 0.01); prob ~ beta(mu*ss, (1-mu)*ss); count ~ binomial(total, prob); }
在這裡,我通過假設項目的成功概率是從 beta 分佈(使用均值和样本大小進行參數化)中採樣來實現收縮的,其中均值是全局成功概率。
指定樣本大小的先驗時會出現問題。如果我選擇一個非常模糊的先驗,Stan 需要進行大量迭代,直到有效樣本量足夠大。此外,我不確定這是否是正確的方法,因為尚不清楚該模型提供的收縮量是否總是合適的。
如果有一種優雅的方式來實現我的預期行為,或者我的整體模型是否存在一些缺陷,我很感興趣。
嘗試這個:和.
我相信你遇到的問題是和導致不當事先的。這個先驗,再加上你在 mu 上的統一先驗,會導致不正確的後驗。儘管您使用的是正確的先驗,但它與此不正確的先驗已經足夠接近,否則會導致問題。
您可能想查看貝葉斯數據分析(第 3 版)的第 110 頁,以討論此模型的先驗以及上面建議的先驗。