请求获取生成《Bayesian analyses of an exponential Poisson...》论文配图的代码建议
指数泊松分布贝叶斯分析绘图代码获取与复现建议
核心复现步骤
- 拆解论文图形元素:先明确论文中图的具体类型——是参数的边际后验密度图、MCMC轨迹图、后验预测检查(PPC)图,还是不同模型的拟合效果对比图?你当前完成的基础分布拟合图,和论文图的差异点(比如是否包含零增强模型对比、后验区间标注)要先梳理清楚。
- 先完成模型的贝叶斯实现:绘图的前提是正确复现论文中的指数泊松(EP)及零增强模型。以
PyMC为例,先搭建核心模型结构:import pymc as pm import numpy as np # 假设y是你的观测数据 with pm.Model() as ep_model: # 定义超参数先验 theta = pm.Gamma("theta", alpha=1, beta=1) # 指数分布的均值参数 lambda_ = pm.Exponential("lambda_", lam=theta, shape=len(y)) # 泊松似然 y_obs = pm.Poisson("y_obs", mu=lambda_, observed=y) # 采样 idata = pm.sample(2000, tune=1000, cores=2) - 提取绘图所需数据:模型拟合完成后,从
InferenceData对象中提取参数后验样本、后验预测样本,这是生成目标图的核心数据源。
针对性绘图代码示例
1. 参数后验密度/轨迹图
如果论文包含参数的后验分布可视化,用ArviZ快速生成:
import arviz as az import matplotlib.pyplot as plt az.plot_trace(idata, var_names=["theta", "lambda_"], figsize=(14, 8)) plt.tight_layout() plt.show()
2. 后验预测拟合对比图
若论文展示模型对观测数据的拟合效果,用PPC图对比观测数据与后验预测数据的分布:
# 生成后验预测样本 with ep_model: idata.extend(pm.sample_posterior_predictive(idata)) az.plot_ppc(idata, figsize=(10, 6)) plt.show()
3. 零增强模型对比图
如果论文对比了EP与零增强EP模型的差异,可提取两种模型的后验预测样本绘制密度对比图:
import seaborn as sns # 假设za_ep_pred是零增强模型的后验预测样本 sns.kdeplot(idata.posterior_predictive["y_obs"].values.flatten(), label="Exponential Poisson", fill=True) sns.kdeplot(za_ep_pred.flatten(), label="Zero-Augmented Exponential Poisson", fill=True) plt.legend() plt.xlabel("Observed Value") plt.ylabel("Density") plt.show()
额外实用建议
- 直接联系论文作者:多数作者会在个人主页或GitHub公开代码,发邮件说明你的学习需求,大概率能获得原始代码或指导。
- GitHub搜索复现项目:用论文标题关键词(比如
"Bayesian analyses exponential Poisson")搜索,可能找到其他研究者的复现代码。 - 参考同类模型教程:如果找不到论文的精准代码,找指数泊松、零膨胀模型的贝叶斯可视化教程,替换为论文中的模型结构即可。
内容的提问来源于stack exchange,提问作者A.N
相关产品推荐
相关产品推荐

