据我所知,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随机变量的经验。我只是在文档中查找语法并编写它。我可能错了,如果是的话,请纠正我。
另一个小问题
无论我采用多少随机值,即使每次都得到不同的值,对数概率也不会发生变化。
答案 0 :(得分:2)
Dirichlet分布是连续分布,因此其密度可能大于1.请记住,连续密度必须是非负的,并且其积分必须为1.但不要求密度在任何地方都小于1。
关于你的第二个问题 - 我的建议是提出一个新问题来回答这个问题;不要将两个问题合二为一。