1

你好 PyMC 开发人员,

该功能似乎存在错误laplace_like。它现在返回:

return flib.gamma(np.abs(x-mu), 1, tau) - np.log(2)

但是什么时候x是一个数组(实际上总是如此),它应该返回

N = 1
if hasattr(x, "__len__"): N = x.__len__()
return flib.gamma(np.abs(x-mu), 1, tau) - N * np.log(2)

简单的测试用例:

import pymc
print -pymc.distributions.laplace_like(array([8]), 10, 1)
print -pymc.distributions.laplace_like(array([9]), 10, 1)
# likelihood of values 8 and 9 together
print -pymc.distributions.laplace_like(array([8]), 10, 1) -pymc.distributions.laplace_like(array([9]), 10, 1)   
# should give the same answer, but doesn't without the suggested fix    
print -pymc.distributions.laplace_like(array([8,9]), 10, 1)

这也证实了与的laplace.nnlf比较scipy.stats

print laplace.nnlf((10,1),array([8,9]))
4

1 回答 1

1

此问题已修复,该修复将在即将发布的大修复版本 (2.3.1) 中提供

于 2014-01-25T02:19:51.487 回答