具有多项选择的模型的 MCMC 采样——因此参数需要总和为 1

机器算法验证 贝叶斯 马尔可夫链蒙特卡罗 多项分布 汉密尔顿-蒙特卡罗
2022-03-23 21:25:04

这对我来说是一个令人头疼的问题,但却是一个非常有趣的问题。所以我有一个招聘过程的随机模拟模型。基本上不同的群体以不同的概率被雇用到一家公司。因此,有一个多项招聘过程,其中每年有个可用职位来自个组的成员。因此,在贝叶斯意义上,模型如下所示——我省略了先验参数的细节,因为它们并不重要:nm

nBinomial(,)rate1TruncatedNormal(,)rate2TruncatedNormal(,)rate3TruncatedNormal(,)rate4TruncatedNormal(,)hiresMultinomial(n,[rate1,rate2,rate3,rate4])

我有招聘数据,我打算使用贝叶斯 MCMC 抽样从时间序列数据中估计每个组的招聘率。

挑战在于,当我从每个招聘率的先验中抽取样本时,这些比率的总和必须为 1——否则多项式抽取将不起作用。因此,我需要以所有比率总和为 1 的方式探索这组招聘率。

我不确定如何在 MCMC 方案中处理这种约束。是否有一个分布,我可以从中采样率,使它们的总和为 1?这似乎是一个非常有趣的问题,但我只是在调试自己的代码时才发现它,所以我还没有太多机会去思考它。

任何想法将不胜感激。

1个回答

问题似乎与 MCMC 无关,而与先前的建模有关。如果数据来自多项分布 ,其中概率向量属于维单纯形,则先验必须在单纯形上放置一些质量(并且在逻辑上应该将其所有质量分配给单纯形。因此使用截断法线是不够的,因为先验在单纯形上放置了零质量。

Dk(n,p1,,pk)
p=(p1,,pk)kp

正如microhaus所建议的,在这种情况下,一个自然的分布族是 Dirichlet 先验族。另一种选择(或概括)是对模型进行过度参数化并稍后设置约束。例如,取 (当使用具有恒定比例而不是截断法线的 Gamma 先验时,这将返回 Dirichlet)。

p1=ρ1i=1kρi,,pk=ρki=1kρi
ρiN+(ai,bi2)