我正在尝试使用 pymc3 编写我自己的变量stochastic
和deterministic
变量,但旧的pymc2.3已发布配方解释了我们如何参数化变量不再有效。例如,我尝试使用这种方法,但失败了:direct
def x_logp(value, x_l, x_h):
if ((value>x_h) or (value<x_l)):
return -np.inf
else:
return -np.log(x_h-x_l+1)
def x_rand(x_l,x_h):
return np.round((x_h-x_l)*np.random.random_sample())+x_l
Xpos=pm.stochastic(logp=x_logp,
doc="X position of halo center ",
observed=False,
trace=True,
name='Xpos',
random=x_rand,
value=25.32,
parents={'x_l':0,'x_h'=500},
dtype=float64,
plot=True,
verbose=0)
我收到以下错误消息:
ERROR: AttributeError: 'module' object has no attribute 'Stochastic' [unknown]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'Stochastic'
我想知道如何在pymc3
不使用装饰器和可用pymc
分布的情况下定义自己的先验或可能性?