二项式分布的共轭先验

机器算法验证 可能性 贝叶斯 预测模型 共轭先验
2022-04-04 12:50:23

每周,我的m1我和朋友们参加了一个酒吧测验n可用积分。在任何给定的一周里,只有我们中的一些人在那里。记录成员的存在/缺席i一周内t在矩阵中xti.

我想建立一个预测模型来预测我们在任何一周内获得的分数,这取决于谁在那里。一个简单的模型是假设每个问题都同样难,并且该玩家i有概率pi知道任何问题。那么我们得到一个给定问题正确的概率是

q(x,p)=1i=1m(1pi)xi

因此,我们得分的概率k点是

P(Score=k|x,p)=(nk)qk(1q)nk

的对数似然px

L=log(nk)+klogq+(nk)log(1q)

我可以编写一个最大化此数值的例程,以找到的最大似然估计量。然而,由此产生的估计严重地过度拟合数据(可以通过交叉验证检测到)。p

中引入一个惩罚(正则化)项,它惩罚大概率或小概率。据我了解,这相当于对有先验。但是,我不知道这个先验应该是什么形式。惩罚项的两个简单选择是:Lp

p1/22

ilog(pi1pi)

但这些都是非常临时的。我很想知道一个合适的先验共轭是什么(假设一个甚至存在)。有什么提示吗?

1个回答

这种可能性没有先验共轭。允许共轭分布的似然对应于属于某个指数族的数据分布。在对数似然中具有参数的非线性函数使得数据分布不可能属于指数族。

即使没有先验共轭,合理的对数先验的一种可能性是

L0(p;j,N)=i[jilog(pi)+(Niji)log(1pi)]

您可以将此对数先验视为等效于数据集的对数似然,其中每个人单独完成一组问题并正确回答中的这种解释允许您以合理直观的方式设置先验参数如果即使是很小的值(例如,2 到 4)也不能提供良好的正则化,我会感到有些惊讶。注意不必是整数。jiNijNNijiNi

在我看来,您正在考虑使用插件预测分发。我可以建议您使用完整的贝叶斯并使用后验预测分布吗?它需要MCMC,这可能比你愿意去的麻烦更多。(如果您使用的是 Matlab,我可以推荐一个 MCMC 例程,它可以大大缩短您的编码时间。)