2015-02-28 6 views
1

Я пытаюсь создать простое биномиальное распределение в pymc. Однако он терпит неудачу с ошибкой ниже, тот же код работает отлично, если я использую распределение Пуассона вместо биномиальногоПроектирование простого биномиального распределения бросает основной дамп в pymc

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) 

Ошибка

[email protected]:~/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

Да, демпинг ядро ​​является ошибкой , –

+1

Подтвержденный результат на Arch Linux (ядро Python 2.7.9, pymc 2.3.4, 3.18.6) –

+0

Можете ли вы воспроизвести это с помощью сборки из текущего мастера из репозитория pymc? Я не могу. –

ответ

1

Я думаю, что это ошибка (здесь a link to the issue you opened, спасибо!).

Вот работа вокруг вы можете использовать сейчас: вместо создания observations, как вы сделали выше, используйте n и p аргументы, которые имеют размер, соответствующий data:

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

он работает, не могли бы вы объяснить, в чем проблема? – vumaasha