我正在学习 PyMC,基本上我有一个随机变量其中(比如说)和并且 没有简单的封闭形式分布。现在我有观察 of,我想推断和。使用 PyMC 最直接的方法是什么?
如果我有可用的分布,那么我想我可以这样做:
Z = DistZ('Z', param_x=theta_x, param_y=theta_y, value=z, observed=True)
然后做推断,但我不知道DistZ。也很容易将总和定义为:
@pymc.deterministic
def z_sum(x=Y, Y=y):
return x + y
但是我认为我不能定义观察到的确定性函数。
我想我可以做类似的事情:
@pymc.stochastic(observed=True)
def z_sum(value=z, x=X, y=Y):
def logp(z, x):
# return log-likelihood
但我不清楚细节。我确实知道联合似然,但我希望不需要它。
我可以使用自定义 Gibbs 采样器(使用联合似然)来做到这一点,但我正在寻找一个更“优雅”的 PyMC 解决方案。
编辑:在错误常见问题解答中发现了一个类似的问题,说不支持随机变量的函数。不确定这是否适用于 PyMC,以及标准方法是什么。

