1

据我了解,logp 应该 b2 <= 0,否则概率将 > 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 随机变量的经验。我只是在文档中查找了语法并编写了它。我可能是错的,如果是,请纠正我。

另一个小问题

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

4

1 回答 1

2

狄利克雷分布是一个连续分布,因此它的密度可能大于 1。请记住,连续密度必须是非负的,并且它的积分必须为 1。但并不要求密度在任何地方都小于 1。

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

于 2014-06-11T00:47:23.840 回答