Kevin Murphy 的书讨论了一个经典的分层贝叶斯问题(最初在 中讨论Johnson and Albert, 1999, p24
):
假设我们试图估计癌症发病率城市。在每个城市,我们抽样了一些人并测量患有癌症的人数, 在哪里是城市的真实癌症发病率。
我们想估计同时允许数据贫乏的城市从数据丰富的城市借用统计实力。
为此,他建模使所有城市共享相同的先验,因此最终模型如下所示:
在哪里.
这个模型的关键部分当然是(我引用),“我们推断从数据中,因为如果我们只是将其固定为一个常数,则将是有条件独立的,它们之间不会有信息流动”。
我正在尝试在PyMC中对此进行建模,但据我所知,我需要先验和(我相信这是多于)。
这个模型有什么好的先验?
如果它有帮助,我现在拥有的代码是:
bins = dict()
ps = dict()
for i in range(N_cities):
ps[i] = pm.Beta("p_{}".format(i), alpha=a, beta=b)
bins[i] = pm.Binomial('bin_{}'.format(i), p=ps[i],n=N_trials[i], value=N_yes[i], observed=True)
mcmc = pm.MCMC([bins, ps])