pymc中dirichlet随机变量的logp将出现> 1

时间:2014-06-10 01:33:25

标签: python probability pymc dirichlet

据我所知,logp应为b2 <= 0,否则概率为&gt; 1(这是不可能的)。

有人可以解释为什么我会得到这么奇怪的结果。我正在编写下面代码的相关部分。

parameters = pm.Dirichlet('parameters',[1,1,1,1], doc='parameters')
print parameters.value, parameters.logp

我得到以下输出

[ 0.29402696  0.64604328  0.04713606] 1.79175946923

这很奇怪。我没有在pymc中使用dirichlet随机变量的经验。我只是在文档中查找语法并编写它。我可能错了,如果是的话,请纠正我。

另一个小问题

无论我采用多少随机值,即使每次都得到不同的值,对数概率也不会发生变化。

1 个答案:

答案 0 :(得分:2)

Dirichlet分布是连续分布,因此其密度可能大于1.请记住,连续密度必须是非负的,并且其积分必须为1.但不要求密度在任何地方都小于1。

关于你的第二个问题 - 我的建议是提出一个新问题来回答这个问题;不要将两个问题合二为一。