我想在样本点和一些手动输入的点(例如,合成数据集的真实参数值点)上评估对数后验(最好分别对数先验和对数似然)值。如何在PyMC3中实现这一目标?

更新:
我已经找到了logp()方法,但是对多个点使用它不是很方便。是否有一些标准/惯用的方法?

更新:
[y.logp(trace[i]) for i in range(len(trace))]有效,但速度较慢。

更新:
缓慢是由y是观察到的随机变量这一事实引起的,调用模型的logp方法可以快速进行。

最佳答案

好的,现实情况是,最好在其discourse forum.上询问与PyMC3相关的问题

所以to get the values of log-posterior after sampling使用

logp = mvg_model.logplnp = np.array([logp(trace.point(i,chain=c)) for c in trace.chains for i in range(len(trace))])

To save them during sampling使用

```

with model:
   llk = pm.Deterministic(likelihood_name, model.logpt)


```

08-20 04:38