如何用ArviZ展示贝叶斯回归模型的单个确定性输出
解决ArviZ中筛选确定性变量单个观测的问题
1. 仅获取mu[75]的后验统计量(summary函数)
你之前用var_names没成功,大概率是写法不对——ArviZ支持直接在变量名后加索引来指定单个元素:
import arviz as az # 假设你的推理结果存储在idata变量中 az.summary(idata, var_names=["mu[75]"])
如果这种写法不生效,也可以先从后验数据中提取指定的观测,再做统计汇总:
# 提取mu的第75个观测(注意索引从0开始) mu_75 = idata.posterior["mu"].isel(obs=75) # 对提取后的变量做summary az.summary(mu_75)
2. 仅绘制mu[75]的后验分布图(plot_posterior函数)
和summary同理,直接用var_names指定单个索引即可:
az.plot_posterior(idata, var_names=["mu[75]"])
或者用提取后的变量绘图:
az.plot_posterior(mu_75)
如果需要批量筛选多个特定观测(比如mu[10], mu[75], mu[90]),可以用列表形式指定:
az.summary(idata, var_names=["mu[10]", "mu[75]", "mu[90]"]) az.plot_posterior(idata, var_names=["mu[10]", "mu[75]", "mu[90]"])
内容的提问来源于stack exchange,提问作者Serdar
相关产品推荐
相关产品推荐

