我试图从我的模型中获得预测分布,这恰好是自定义概率。这恰好是法线的混合。
with RE2:
trace = pm.variational.sample_vp(v_params, draws=5000)
trigger.set_value(triggers_test)
cc.set_value(cc_test)
y_output.set_value(np.zeros((len(y_test),)))
ppc = pm.sample_ppc(trace, model=RE2, samples=2000)
y_pred = ppc['R'].mean(axis=0)[:,None]
但是,我收到错误:AttributeError: 'DensityDist' object has no attribute 'random'
。有没有办法从分销中抽样?我能够得到痕迹,我可以稍微玩一下,但我希望有更好的东西。
如果有帮助:
R = pm.DensityDist('R', logp_nmix(mus, stds, pi), observed=y_output)
当pm.DensityDist应用于潜在变量而非观察变量时,我能够正确地得到后验(即pm.sample_ppc
工作)。