我一直在观察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)或我的理解中的错误吗?