python - pymc 中狄利克雷随机变量的 logp > 1

标签 python probability pymc dirichlet

据我了解,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/

相关文章:

python - 有效地搜索大文件中的许多不同字符串

python - pyqtgraphplotwidget在错误区域绘制多个Y轴图

machine-learning - 降低数据集的维数后,我得到了负特征值

c++ - 有概率的程序

python - pymc的随机变量中的logp

bayesian - 如何在pymc中设置确定性变量的键

python - 改变QLabel大小时PyQt5 "Timers cannot be started from another thread"错误

python - 有没有办法在列表项的类中覆盖 list.max() 和 list.sort() 的 "key"函数?

c++ - 如何将函数值更改为 C++ 中表( Gamma 分布)中的值?

python - 使用pymc用MCMC拟合两个正态分布(直方图)?