- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我发现在 Pystan 中,HDI 函数可用于提供后验分布周围 95% 的可信区间。然而,他们说它只适用于单峰分布。如果我的模型可能具有多峰分布(最多 4 个峰值),有没有办法在 Pystan 中找到 HDI?谢谢!
最佳答案
我不认为这是 Stan/PyStan 特定的问题。根据定义,最高密度区间是单个区间,因此不适合表征多峰分布。 Rob Hyndman 的作品很好, Computing and Graphing Highest Density Regions ,将概念扩展到多模态分布,这已在 R 中实现 the hdrcde package .
对于Python,有a discussion of this on the PyMC Discourse site ,其中建议使用 Osvaldo Martin 为其“Python 贝叶斯分析”一书编写的函数 (hpd_grid
)。该函数的来源位于 the hpd.py file ,对于 95% 的区域将使用像
from hpd import hpd_grid
intervals, x, y, modes = hpd_grid(samples, alpha=0.05)
其中samples
是参数之一的后验样本,intervals
是代表最高密度区域的元组列表。
这是使用一些虚假多模态数据的示例图。
import numpy as np
from matplotlib import pyplot as plt
from hpd import hpd_grid
# include two modes
samples = np.random.normal(loc=[-4,4], size=(1000, 2)).flatten()
# compute high density regions
hpd_mu, x_mu, y_mu, modes_mu = hpd_grid(samples)
plt.figure(figsize=(8,6))
# raw data
plt.hist(samples), density=True, bins=29, alpha=0.5)
# estimated distribution
plt.plot(x_mu, y_mu)
# high density intervals
for (x0, x1) in hpd_mu:
plt.hlines(y=0, xmin=x0, xmax=x1, linewidth=5)
plt.axvline(x=x0, color='grey', linestyle='--', linewidth=1)
plt.axvline(x=x1, color='grey', linestyle='--', linewidth=1)
# modes
for xm in modes_mu:
plt.axvline(x=xm, color='r')
plt.show()
<小时/>
应该指出的是,正确建模的参数上的多模态后验分布通常很少见,但在非收敛 MCMC 采样中确实经常出现,特别是在使用多个链时(这是最佳实践)。如果人们先验地期望多模态,那么通常会导致某种形式的混合模型,从而消除多模态。如果人们不期望多模态,但后验无论如何都表现出它,那么这是一个对结果持怀疑态度的危险信号。
关于python - 后分布 Pystan 的最高密度区间 (HDI),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53671925/
我看到了on another forum PyStan 没有与 RStan 相同的功能,它们使用 posterior_interval(),但我们可以使用 numpy.percentile()。我目前
这可能是一个愚蠢的问题,但每当我使用 .plot() 函数时,它都会绘制两次摘要。任何人都知道,为什么这样做以及我如何才能阻止它? 如您所见,如果需要的话,我正在使用 jupyter 笔记本。 任何
我需要对数似然项的后验样本来运行 PSIS here这样 log_lik : ndarray Array of size n x m containing n posterior sample
我在 PyStan documentation 中找不到任何关于变分推理的提及,即使它has been added在斯坦本身。我是不是遗漏了什么,或者 Python API 还没有实现它? 最佳答案
Pystan 已经在EMR 节点(master、task 和core 节点)上成功安装,但是我仍然得到这个错误 ModuleNotFoundError: No module named pystan
我发现在 Pystan 中,HDI 函数可用于提供后验分布周围 95% 的可信区间。然而,他们说它只适用于单峰分布。如果我的模型可能具有多峰分布(最多 4 个峰值),有没有办法在 Pystan 中找到
我正在 Stan 中进行多元回归。 我想要回归器/设计矩阵的 beta 向量参数的迹线图。 当我执行以下操作时: fit = model.sampling(data=data, iter=2000,
如果我观察到的数据集有权重(例如跟踪多重性),是否可以将其提供给 pystan 或 pymc3,类似于 rstanarm 包中的函数签名(http://mc-stan.org/rstanarm/ref
这是我尝试运行的 PyStan 模型。但是,一旦我尝试运行它,就会遇到以下错误: CompileError: 命令 'gcc' 失败,退出状态为 1 知道如何在 macOS 上修复此错误吗? coun
我正在使用 Ubuntu 14.04.3 和最新版本的 anaconda。 当 pystan 尝试编译模型时,我收到以下错误: distutils.errors.CompileError: comma
我的目标是在我的 Windows 10 计算机上安装 fbprophet。 我正在尝试使用 pip 安装 pystan(先知的主要依赖项),但一分钟左右后,出现以下错误: Traceback (mos
安装 pystan 时出现以下错误。 $ pip install pystan 我有 ubuntu 14.04 和 python 2.7我在其他类似的线程上尝试了一些提到的解决方案,但所有这些解决方案
我是一名优秀的程序员,十分优秀!