Ошибка при построении модели PyMC с использованием pymc.Matplot

Я получаю сообщение об ошибке при построении модели PyMC с использованием pymc.Matplot после успешной подгонки

#!/usr/bin/env python2
import pylab
import pymc as pm
import numpy as np

import seir as mod
reload(mod) 

mc = pm.MCMC(mod)
mc.use_step_method(pm.AdaptiveMetropolis, [mod.beta, mod.gamma, mod.s0, mod.eF, mod.i0])
mc.sample(iter = 1000000, burn = 200000, thin = 500, verbose = 1)

Plotting eF


Traceback (most recent call last):

  File "<ipython-input-14-31405478c9cb>", line 1, in <module>
    pm.Matplot.plot(mc)

  File "C:\Users\tele\Anaconda\lib\site-packages\pymc\Matplot.py", line 341, in wrapper
    f(data, name, *args, **kwargs)

  File "C:\Users\tele\Anaconda\lib\site-packages\pymc\Matplot.py", line 455, in plot
    fontmap=fontmap)

  File "C:\Users\tele\Anaconda\lib\site-packages\pymc\Matplot.py", line 377, in wrapper
    f(pymc_obj, *args, **kwargs)

  File "C:\Users\tele\Anaconda\lib\site-packages\pymc\Matplot.py", line 578, in histogram
    hist(data.tolist(), bins, histtype='stepfilled')

  File "C:\Users\tele\Anaconda\lib\site-packages\matplotlib\pyplot.py", line 2958, in hist
    stacked=stacked, data=data, **kwargs)

  File "C:\Users\tele\Anaconda\lib\site-packages\matplotlib\__init__.py", line 1810, in inner
    return func(ax, *args, **kwargs)

  File "C:\Users\tele\Anaconda\lib\site-packages\matplotlib\axes\_axes.py", line 5995, in hist
    m, bins = np.histogram(x[i], bins, weights=w[i], **hist_kwargs)

  File "C:\Users\tele\Anaconda\lib\site-packages\numpy\lib\function_base.py", line 249, in histogram
    n += np.bincount(indices, weights=tmp_w, minlength=bins).astype(ntype)

ValueError: operands could not be broadcast together with shapes (11,) (12,) (11,) 

Ошибка возникает в некоторых ситуациях, но не всегда. Поскольку это внутренняя функция pyMC, и соответствие работает (на самом деле очень хорошее), я не знаю, что делать (кстати, я обычно нахожу другую ошибку (не уверен, связана ли она) при вызове scores = pm.geweke(mc, intervals=20) с той же моделью).


person Francisco Grings    schedule 05.08.2016    source источник


Ответы (1)


Только что нашел ошибку, глупую проблему с уничтожением массива numpy: pyMC дает сбой, потому что размеры среднего (симулированного) и наблюдаемого значений случайной величины, представляющей вероятность, не совпадают. Кстати, ошибка, предоставленная pyMC, не очень выразительна.

person Francisco Grings    schedule 09.08.2016