中级文章
从生成图导出的时间序列模型
- 2025 年 1 月 24 日
在本笔记本中,我们展示了如何从生成图开始建模和拟合时间序列模型。 特别是,我们解释了如何在 PyMC 模型中有效地使用 scan
进行循环。
心理测量学中的验证性因素分析和结构方程模型
- 2024 年 9 月 24 日
“显然,相关性和依赖性的概念比附加到概率判断的数值更基本于人类推理……用于表示概率信息的语言应该允许定性、直接且明确地表达关于依赖关系的主张” - Pearl 在 Probabilistic Reasoning in Intelligent Systems Pearl [1985]
模型平均
- 2024 年 8 月 24 日
当面对多个模型时,我们有几个选择。 其中之一是执行模型选择,PyMC 示例 模型比较 和 GLM:模型选择 就是例证,通常最好也包括后验预测检查,以便决定保留哪个模型。 丢弃除一个模型之外的所有模型相当于肯定,在评估的模型中,有一个模型在某些标准下是正确的,概率为 1,其余模型是不正确的。 在大多数情况下,这将是一种夸大其词,忽略了我们在模型中存在的不确定性。 这有点类似于计算完整的后验,然后只保留一个点估计,例如后验均值; 我们可能会对我们真正知道的东西过于自信。 您还可以浏览 blog/tag/model-comparison 标签以查找相关帖子。
高斯过程:HSGP 高级用法
- 2024 年 6 月 28 日
希尔伯特空间高斯过程近似是一种低秩 GP 近似,特别适合在 PyMC 等概率编程语言中使用。 它使用预先计算和固定的基函数集来近似 GP,这些基函数集不依赖于协方差核的形式或其超参数。 它是一种参数近似,因此在 PyMC 中进行预测可以像使用线性模型一样通过 pm.Data
或 pm.set_data
完成。 您无需定义非参数 GP 所依赖的 .conditional
分布。 这使得将 HSGP 而不是 GP 集成到您现有的 PyMC 模型中容易得多。 此外,与许多其他 GP 近似不同,HSGP 可以用于模型中的任何位置以及任何似然函数。
高斯过程:HSGP 参考与第一步
- 2024 年 6 月 10 日
希尔伯特空间高斯过程近似是一种低秩 GP 近似,特别适合在 PyMC 等概率编程语言中使用。 它使用预先计算和固定的基函数集来近似 GP,这些基函数集不依赖于协方差核的形式或其超参数。 它是一种参数近似,因此在 PyMC 中进行预测可以像使用线性模型一样通过 pm.Data
或 pm.set_data
完成。 您无需定义非参数 GP 所依赖的 .conditional
分布。 这使得将 HSGP 而不是 GP 集成到您现有的 PyMC 模型中容易得多。 此外,与许多其他 GP 近似不同,HSGP 可以用于模型中的任何位置以及任何似然函数。
使用 HSGP 对婴儿出生进行建模
- 2024 年 1 月 24 日
本笔记本提供了一个使用希尔伯特空间高斯过程 (HSGP) 技术的示例,该技术在 [Solin 和 Särkkä,2020] 中引入,用于时间序列建模的背景下。 该技术已被证明在加速具有高斯过程组件的模型方面是成功的。
离散变量的自动边缘化
- 2024 年 1 月 20 日
PyMC 非常适合对具有离散潜在变量的模型进行采样。 但是,如果您坚持专门使用 NUTS 采样器,则需要以某种方式摆脱离散变量。 最好的方法是将它们边缘化,因为这样您就可以从 Rao-Blackwell 定理中受益,并获得参数的较低方差估计。
贝叶斯 copula 估计:描述相关的联合分布
- 2023 年 12 月 24 日
当我们处理多个变量(例如 \(a\) 和 \(b\))时,我们通常希望参数化地描述联合分布 \(P(a, b)\)。 如果我们幸运的话,那么这个联合分布可能在某种程度上是“简单”的。 例如,可能是 \(a\) 和 \(b\) 在统计上是独立的,在这种情况下,我们可以将联合分布分解为 \(P(a, b) = P(a) P(b)\),因此我们只需要为 \(P(a)\) 和 \(P(b)\) 找到适当的参数描述。 即使这不合适,也可能是 \(P(a, b)\) 可以通过简单的多元分布(例如多元正态分布)很好地描述。
边际似然实现
- 2023 年 6 月 04 日
gp.Marginal
类实现了 GP 回归的更常见情况:观察到的数据是 GP 和高斯噪声的总和。 gp.Marginal
具有 marginal_likelihood
方法、conditional
方法和 predict
方法。 给定均值和协方差函数,函数 \(f(x)\) 建模为,
分层部分池化
- 2023 年 1 月 28 日
假设您的任务是评估几位棒球运动员的击球技巧。 其中一项绩效指标是击球平均值。 由于球员参加的比赛场次不同,并且在击球顺序中处于不同的位置,因此每位球员的击球次数也不同。 但是,您想评估所有球员的技能,包括那些击球机会相对较少的球员。
DEMetropolis(Z) 采样器调优
- 2023 年 1 月 18 日
对于连续变量,默认的 PyMC 采样器 (NUTS
) 要求计算梯度,PyMC 通过自动微分来实现这一点。 但是,在某些情况下,PyMC 模型可能未提供梯度(例如,通过在 PyMC 外部评估数值模型),因此需要替代采样器。 DEMetropolisZ
采样器是无梯度推理的有效选择。 PyMC 中 DEMetropolisZ
的实现基于 ter Braak 和 Vrugt [2008],但具有修改后的调优方案。 本笔记本比较了采样器的各种调优参数设置,包括 PyMC 中引入的 drop_tune_fraction
参数。
DEMetropolis 和 DEMetropolis(Z) 算法比较
- 2023 年 1 月 18 日
对于连续变量,默认的 PyMC 采样器 (NUTS
) 要求计算梯度,PyMC 通过自动微分来实现这一点。 但是,在某些情况下,PyMC 模型可能未提供梯度(例如,通过在 PyMC 外部评估数值模型),因此需要替代采样器。 差分进化 (DE) Metropolis 采样器是无梯度推理的有效选择。 本笔记本比较了 PyMC 中的 DEMetropolis
和 DEMetropolisZ
采样器,以帮助确定哪个是给定问题的更好选择。
贝叶斯生存分析
- 2023 年 1 月 17 日
生存分析研究事件发生时间的分布。 它的应用范围涵盖医学、生物学、工程学和社会科学等多个领域。 本教程展示了如何使用 PyMC 在 Python 中拟合和分析贝叶斯生存模型。
ODE Lotka-Volterra 与多种方式的贝叶斯推断
- 2023 年 1 月 16 日
本笔记本的目的是演示如何在常微分方程 (ODE) 系统上执行贝叶斯推断,无论是否使用梯度。 比较了不同采样器的准确性和效率。
PyMC 变分推断简介
- 2023 年 1 月 13 日
计算贝叶斯模型后验量的最常用策略是通过采样,特别是马尔可夫链蒙特卡罗 (MCMC) 算法。 虽然采样算法和相关的计算性能和效率不断提高,但 MCMC 方法在数据量较大时仍然表现不佳,并且对于超过几千个观测值的情况变得令人望而却步。 更具可扩展性的采样替代方案是变分推断 (VI),它将计算后验分布的问题重新定义为优化问题。
分层二项式模型:大鼠肿瘤示例
- 2023 年 1 月 10 日
这个简短的教程演示了如何使用 PyMC 对贝叶斯数据分析第 3 版 [Gelman et al., 2013] 第 5 章中的大鼠肿瘤示例进行推断。 读者应该已经熟悉 PyMC API。
PyMC 中 AR(1) 模型的分析
- 2023 年 1 月 07 日
考虑以下在无限过去初始化的 AR(2) 过程
多输出高斯过程:使用 Hamadard 乘积的区域互联模型
- 2022 年 10 月 24 日
本笔记本展示了如何使用 Coregion 内核和输入内核之间的 Hamadard 乘积来实现内在区域互联模型 (ICM) 和线性区域互联模型 (LCM)。 本文 讨论了多输出高斯过程,作者为 Bonilla et al. [2007]。 有关 ICM 和 LCM 的更多信息,请查看 Mauricio Alvarez 关于多输出高斯过程的演讲,以及 他的幻灯片,最后一页有更多参考文献。
使用结构 AR 时间序列进行预测
- 2022 年 10 月 20 日
贝叶斯结构时间序列模型是了解任何观察到的时间序列数据中固有结构的有趣方法。 它还使我们能够向前投影隐含的预测分布,从而为我们提供关于预测问题的另一种视角。 我们可以将迄今为止观察到的时间序列数据的学习特征视为对同一措施的未实现未来状态的结构提供信息。
差异中的差异
- 2022 年 9 月 24 日
本笔记本简要概述了因果推断中的倍差法,并展示了如何在 PyMC 的贝叶斯框架下进行此类分析的工作示例。虽然本笔记本提供了该方法的高级概述,但我建议查阅两本关于因果推断的优秀教科书。 The Effect [Huntington-Klein, 2021] 和 Causal Inference: The Mixtape [Cunningham, 2021] 都有专门章节介绍倍差法。
反事实推断:计算由 COVID-19 导致的超额死亡人数
- 24 July 2022
因果推理和反事实思考是非常有趣但复杂的主题!尽管如此,我们可以通过相对简单的例子来深入理解这些想法。本笔记本侧重于使用 PyMC 进行贝叶斯因果推理的概念和实际实现。
用于个性化推荐的概率矩阵分解
- 03 June 2022
您正在 Netflix 上浏览想看的内容,但就是不喜欢这些建议。您只是知道您可以做得更好。您只需要从自己和朋友那里收集一些评分数据,并构建一个推荐算法。本笔记本将指导您完成这项工作!
使用标记的对数高斯 Cox 过程对空间点模式进行建模
- 31 May 2022
对数高斯 Cox 过程 (LGCP) 是一种空间或时间中常见的点模式概率模型。它主要有两个组成部分。首先,使用指数变换的高斯过程在整个域 \(\lambda(s)\) 上对正实数值的底层强度场 \(X\) 进行建模,这约束了 \(\lambda\) 为正值。然后,此强度场用于参数化 泊松点过程,该过程表示在空间中放置点的随机机制。适用于此表示的现象包括一个县的癌症病例发生率,或一个城市中犯罪事件的时空位置。空间和时间维度都可以在此框架内等效处理,但本教程仅处理二维空间中的数据。
变分推断:贝叶斯神经网络
- 30 May 2022
概率编程、深度学习 和 “大数据” 是机器学习中最大的主题之一。在 PP 内部,许多创新都集中在使用变分推断来扩展规模。在本例中,我将展示如何在 PyMC 中使用变分推断来拟合一个简单的贝叶斯神经网络。我还将讨论桥接概率编程和深度学习如何为未来的研究开辟非常有趣的途径。
删失数据模型
- 24 May 2022
关于贝叶斯生存分析的示例笔记本 涉及删失数据点。删失是一种缺失数据问题,其中大于某个阈值的观测值被裁剪到该阈值,或者小于某个阈值的观测值被裁剪到该阈值,或者两者都有。这些分别称为右删失、左删失和区间删失。在本示例笔记本中,我们考虑区间删失。
航空旅客 - 类似 Prophet 的模型
- 24 April 2022
我们将查看“航空旅客”数据集,该数据集跟踪了 1949 年至 1960 年美国航空公司旅客的月度总数。我们可以使用 Prophet 模型 [Taylor and Letham, 2018] 来拟合它(实际上,此数据集是他们在文档中提供的示例之一),但我们将在 PyMC3 中构建我们自己的类似 Prophet 的模型。这将使检查模型的组件以及进行先验预测检查(贝叶斯工作流程 [Gelman et al., 2020] 的组成部分)容易得多。
使用项目反应理论分析 NBA 犯规
- 17 April 2022
本教程展示了使用 PyMC 将贝叶斯项目反应理论 [Fox, 2010] 应用于 NBA 篮球犯规判罚数据。基于 Austin Rochford 的博文 NBA 犯规判罚和贝叶斯项目反应理论。
高尔夫推杆的模型构建和扩展
- 02 April 2022
这使用了 Andrew Gelman 的案例研究 并紧随其后,该案例研究是用 Stan 编写的。有一些新的可视化效果,我们避开了使用不恰当的先验,但非常感谢他和 Stan 团队提供的精彩案例研究和软件。
橄榄球预测的分层模型
- 19 March 2022
在本例中,我们将使用 PyMC 重现 Baio 和 Blangiardo [2010] 中描述的第一个模型。然后展示如何从后验预测中抽样,以模拟根据建模数量(得分进球数)得出的锦标赛结果。
贝叶斯加性回归树:简介
- 21 December 2021
贝叶斯加性回归树 (BART) 是一种非参数回归方法。如果我们有一些协变量 \(X\) 并且我们想用它们来建模 \(Y\),则 BART 模型(省略先验)可以表示为
从笨拙的分箱数据中估计分布参数
- 23 October 2021
假设我们有兴趣推断人口的属性。这可以是任何东西,从年龄、收入或体重指数的分布,到各种不同的可能措施。在完成这项任务时,我们可能经常遇到这种情况,即我们有多个数据集,每个数据集都可以告知我们对总体人口的看法。
GLM:分层回归模型上的小批量 ADVI
- 23 September 2021
与高斯混合模型不同,(分层)回归模型具有自变量。这些变量会影响似然函数,但不是随机变量。使用小批量时,我们应该注意这一点。
使用散度诊断有偏推断
- 24 February 2018
本笔记本是 Michael Betancourt 在 mc-stan 上的帖子 的 PyMC3 端口。有关底层机制的详细说明,请查看原始帖子 Diagnosing Biased Inference with Divergences 和 Betancourt 的优秀论文 A Conceptual Introduction to Hamiltonian Monte Carlo。
Student-t 过程
- 24 August 2017
PyMC 还包括 T 过程先验。它们是将高斯过程先验推广到多元 Student’s T 分布。用法与 gp.Latent
的用法相同,只是它们在模型中指定时需要自由度参数。有关更多信息,请参阅 Rasmussen+Williams 的第 9 章和 Shah et al.。