据我了解,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 中使用狄利克雷随机变量的经验。我只是在文档中查找了语法并编写了它。可能有错,如有错误请指正。
另一个小问题
无论我采用多少个随机值,即使我每次得到不同的值,对数概率也不会改变。
最佳答案
狄利克雷分布是连续分布,因此它的密度可能大于 1。请记住,连续密度必须是非负的,并且其积分必须为 1。但并不要求密度处处都小于 1。
关于你的第二个问题——我的建议是提出一个新问题来回答这个问题;不要把两个问题合而为一。
关于python - pymc 中狄利克雷随机变量的 logp > 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24131525/