我想在样本点和某些手动输入的点(例如合成数据集的真实参数值点)评估log后验(理想情况下,分别为对数先验和对数似然)值。我怎样才能在PyMC3中实现这个目标?
更新:
我找到了logp()
方法,但是对于多个点使用它并不是很方便。是否有一些标准/习惯的方法?
更新:
这个[y.logp(trace[i]) for i in range(len(trace))]
有效,但是超级低。
更新:
y
是观察到的随机变量这一事实导致缓慢,调用模型logp
方法的速度很快。
答案 0 :(得分:1)
好的,现实是最好在他们discourse forum.
上询问PyMC3相关问题所以to get the values of log-posterior after sampling使用
logp = mvg_model.logp
lnp = 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)
```