【发布时间】:2018-10-31 14:12:49
【问题描述】:
我有一些看起来像这样的数据:
我想尝试使用具有 2 个分量的泊松混合模型对这些数据进行建模。由于我是 PyMC3 的新手,因此我使用了此处的链接:PyMC3 GMM tutorial 和此处:PyMC3 Mixture API 尝试执行此操作。我的代码在这里:
with pm.Model() as model:
lam1 = pm.Exponential('lam1', lam=1)
lam2 = pm.Exponential('lam2', lam=1)
pois1 = pm.Poisson.dist(mu=lam1)
pois2 = pm.Poisson.dist(mu=lam2)
w = pm.Dirichlet('w', a=np.array([1, 1]))
like = pm.Mixture('like', w=w, comp_dists=[pois1, pois2], observed=data)
with model:
trace = pm.sample(5000, n_init=10000, tune=10000, random_seed=SEED)[1000:]
with model:
ppc_trace = pm.sample_ppc(trace, 5000, random_seed=SEED)
fig, ax = plt.subplots(figsize=(8, 6))
ax.hist(data, bins=30, normed=True,
histtype='step', lw=2,
label='Observed data')
ax.hist(ppc_trace['like'], bins=30, normed=True,
histtype='step', lw=2,
label='Posterior predictive distribution')
ax.legend(loc=1)
plt.show()
如何提高合身度?我试过摆弄 lambdas 无济于事。
【问题讨论】:
标签: python-3.x statistics pymc3 mixture-model