设计一个简单的二项分布会在pymc中抛出核心转储

时间:2015-02-28 06:03:52

标签: python pymc

我正在尝试在pymc中设计一个简单的二项分布。但是它失败并出现以下错误,如果我使用Poisson分布而不是二项式

,相同的代码工作正常
import pymc as pm
from pymc import Beta,Binomial,Exponential
import numpy as np
from pymc.Matplot import plot as mcplot

data = pm.rbinomial(5,0.01,size=100)
p = Beta("p",1,1)
observations = Binomial("obs",5,p,value=data,observed=True)
model = pm.Model([p,observations])
mcmc = pm.MCMC(model)
mcmc.sample(400,100,2)
mcplot(mcmc)

错误

venki@venki-HP-248-G1-Notebook-PC:~/Desktop$ python perf_testing.py 
*** glibc detected *** python: free(): corrupted unsorted chunks: 0x0000000003cb0d40 ***
*** glibc detected *** python: malloc(): memory corruption: 0x00000000038bf2e0 ***

我还在github pymc中创建了一个问题。我不确定,如果我错了或者它是一个错误?

OS

Python 2.7.3
pymc 2.3.4
Ubuntu 12.04.5 LTS

1 个答案:

答案 0 :(得分:1)

我认为这是一个错误(这里是a link to the issue you opened,谢谢!)。

以下是您现在可以使用的解决方法:使用observationsn参数,而不是像上面那样创建pdata }:

observations = Binomial("obs", 5*np.ones_like(data),
                        p*np.ones_like(data), value=data,observed=True)