pymc - 运行模型后,先验是否在他们的支持之外?

时间:2014-08-29 00:52:27

标签: pymc

我一直在观察pymc中的一些奇怪的行为,我无望地试图理解。 在我的mcmc模型中,我定义了几个变量在[0,1。]之间是均匀的,即

beta = Uniform('beta', 0., 1., value=0.2)

在对模型进行采样后,我有时会得到这些变量的奇怪值

>>> beta.value
array(10.860185597232812)

毋庸置疑,测试版不在其支持范围之内,甚至pymc也知道情况

>>>beta.get_logp()
ZeroProbability                           Traceback (most recent call last)
<ipython-input-97-f289ec6ca008> in <module>()
----> 1 beta.get_logp()

/Users/rouli/envs/env0/lib/python2.7/site-packages/pymc/PyMCObjects.pyc in get_logp(self)
    927                     (self._value, self._parents.value))
    928             else:
--> 929                 raise ZeroProbability(self.errmsg)
    930 
    931         return logp

ZeroProbability: Stochastic beta's value is outside its support,
 or it forbids its parents' current values.

那会发生什么?这是pymc(2.3.3)或我的理解中的错误吗?

完整代码 - https://gist.github.com/rouli/1ed077f5aa64a4720857

0 个答案:

没有答案