Bayesian

如何指定人口收縮的貝葉斯二項式模型?

  • May 5, 2014

問題

我目前正在解決一個我有計數數據的問題以下形式的項目:

   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 頁,以討論此模型的先驗以及上面建議的先驗。

引用自:https://stats.stackexchange.com/questions/96481

comments powered by Disqus