中级文章

从生成图导出的时间序列模型

在本笔记本中,我们展示了如何从生成图开始建模和拟合时间序列模型。 特别是,我们解释了如何在 PyMC 模型中有效地使用 scan 进行循环。

阅读更多...


GLM-缺失值-在-协变量中

最小可复现示例:处理多个协变量(数值预测特征)中缺失数据的工作流程

阅读更多...


GLM-序数特征

这里我们在模型中使用序数外生预测特征

阅读更多...


心理测量学中的验证性因素分析和结构方程模型

“显然,相关性和依赖性的概念比附加到概率判断的数值更基本于人类推理……用于表示概率信息的语言应该允许定性、直接且明确地表达关于依赖关系的主张” - Pearl 在 Probabilistic Reasoning in Intelligent Systems Pearl [1985]

阅读更多...


模型平均

当面对多个模型时,我们有几个选择。 其中之一是执行模型选择,PyMC 示例 模型比较GLM:模型选择 就是例证,通常最好也包括后验预测检查,以便决定保留哪个模型。 丢弃除一个模型之外的所有模型相当于肯定,在评估的模型中,有一个模型在某些标准下是正确的,概率为 1,其余模型是不正确的。 在大多数情况下,这将是一种夸大其词,忽略了我们在模型中存在的不确定性。 这有点类似于计算完整的后验,然后只保留一个点估计,例如后验均值; 我们可能会对我们真正知道的东西过于自信。 您还可以浏览 blog/tag/model-comparison 标签以查找相关帖子。

阅读更多...


高斯过程:HSGP 高级用法

希尔伯特空间高斯过程近似是一种低秩 GP 近似,特别适合在 PyMC 等概率编程语言中使用。 它使用预先计算和固定的基函数集来近似 GP,这些基函数集不依赖于协方差核的形式或其超参数。 它是一种参数近似,因此在 PyMC 中进行预测可以像使用线性模型一样通过 pm.Datapm.set_data 完成。 您无需定义非参数 GP 所依赖的 .conditional 分布。 这使得将 HSGP 而不是 GP 集成到您现有的 PyMC 模型中容易得多。 此外,与许多其他 GP 近似不同,HSGP 可以用于模型中的任何位置以及任何似然函数。

阅读更多...


高斯过程:HSGP 参考与第一步

希尔伯特空间高斯过程近似是一种低秩 GP 近似,特别适合在 PyMC 等概率编程语言中使用。 它使用预先计算和固定的基函数集来近似 GP,这些基函数集不依赖于协方差核的形式或其超参数。 它是一种参数近似,因此在 PyMC 中进行预测可以像使用线性模型一样通过 pm.Datapm.set_data 完成。 您无需定义非参数 GP 所依赖的 .conditional 分布。 这使得将 HSGP 而不是 GP 集成到您现有的 PyMC 模型中容易得多。 此外,与许多其他 GP 近似不同,HSGP 可以用于模型中的任何位置以及任何似然函数。

阅读更多...


使用 HSGP 对婴儿出生进行建模

本笔记本提供了一个使用希尔伯特空间高斯过程 (HSGP) 技术的示例,该技术在 [Solin 和 Särkkä,2020] 中引入,用于时间序列建模的背景下。 该技术已被证明在加速具有高斯过程组件的模型方面是成功的。

阅读更多...


离散变量的自动边缘化

PyMC 非常适合对具有离散潜在变量的模型进行采样。 但是,如果您坚持专门使用 NUTS 采样器,则需要以某种方式摆脱离散变量。 最好的方法是将它们边缘化,因为这样您就可以从 Rao-Blackwell 定理中受益,并获得参数的较低方差估计。

阅读更多...


类别和曲线

本笔记本是 Richard McElreath 的 Statistical Rethinking 2023 系列讲座的 PyMC 移植部分。

阅读更多...


分叉数据的花园

本笔记本是 Richard McElreath 的 Statistical Rethinking 2023 系列讲座的 PyMC 移植部分。

阅读更多...


分叉数据的花园

本笔记本是 Richard McElreath 的 Statistical Rethinking 2023 系列讲座的 PyMC 移植部分。

阅读更多...


社交网络

本笔记本是 Richard McElreath 的 Statistical Rethinking 2023 系列讲座的 PyMC 移植部分。

阅读更多...


有序类别

本笔记本是 Richard McElreath 的 Statistical Rethinking 2023 系列讲座的 PyMC 移植部分。

阅读更多...


多层模型

本笔记本是 Richard McElreath 的 Statistical Rethinking 2023 系列讲座的 PyMC 移植部分。

阅读更多...


多层冒险

本笔记本是 Richard McElreath 的 Statistical Rethinking 2023 系列讲座的 PyMC 移植部分。

阅读更多...


事件建模

本笔记本是 Richard McElreath 的 Statistical Rethinking 2023 系列讲座的 PyMC 移植部分。

阅读更多...


缺失数据

本笔记本是 Richard McElreath 的 Statistical Rethinking 2023 系列讲座的 PyMC 移植部分。

阅读更多...


测量和错误分类

本笔记本是 Richard McElreath 的 Statistical Rethinking 2023 系列讲座的 PyMC 移植部分。

阅读更多...


马尔可夫链蒙特卡罗

本笔记本是 Richard McElreath 的 Statistical Rethinking 2023 系列讲座的 PyMC 移植部分。

阅读更多...


星座运势

本笔记本是 Richard McElreath 的 Statistical Rethinking 2023 系列讲座的 PyMC 移植部分。

阅读更多...


好的和坏的控制

本笔记本是 Richard McElreath 的 Statistical Rethinking 2023 系列讲座的 PyMC 移植部分。

阅读更多...


地心模型

本笔记本是 Richard McElreath 的 Statistical Rethinking 2023 系列讲座的 PyMC 移植部分。

阅读更多...


广义线性疯狂

本笔记本是 Richard McElreath 的 Statistical Rethinking 2023 系列讲座的 PyMC 移植部分。

阅读更多...


高斯过程

本笔记本是 Richard McElreath 的 Statistical Rethinking 2023 系列讲座的 PyMC 移植部分。

阅读更多...


过度拟合和欠拟合

本笔记本是 Richard McElreath 的 Statistical Rethinking 2023 系列讲座的 PyMC 移植部分。

阅读更多...


基本混杂因素

本笔记本是 Richard McElreath 的 Statistical Rethinking 2023 系列讲座的 PyMC 移植部分。

阅读更多...


相关特征

本笔记本是 Richard McElreath 的 Statistical Rethinking 2023 系列讲座的 PyMC 移植部分。

阅读更多...


贝叶斯 copula 估计:描述相关的联合分布

当我们处理多个变量(例如 \(a\)\(b\))时,我们通常希望参数化地描述联合分布 \(P(a, b)\)。 如果我们幸运的话,那么这个联合分布可能在某种程度上是“简单”的。 例如,可能是 \(a\)\(b\) 在统计上是独立的,在这种情况下,我们可以将联合分布分解为 \(P(a, b) = P(a) P(b)\),因此我们只需要为 \(P(a)\)\(P(b)\) 找到适当的参数描述。 即使这不合适,也可能是 \(P(a, b)\) 可以通过简单的多元分布(例如多元正态分布)很好地描述。

阅读更多...


脆弱性和生存回归模型

本笔记本使用的库不是 PyMC 依赖项,因此需要专门安装才能运行本笔记本。 打开下面的下拉菜单以获取更多指导。

阅读更多...


空间数据的 Besag-York-Mollie 模型

本笔记本使用的库不是 PyMC 依赖项,因此需要专门安装才能运行本笔记本。 打开下面的下拉菜单以获取更多指导。

阅读更多...


使用 JAX 和 Numba 更快地采样

PyMC 可以通过 PyTensor 将其模型编译到各种执行后端,包括

阅读更多...


高斯过程:潜在变量实现

gp.Latent 类是高斯过程的直接实现,无需近似。 给定均值和协方差函数,我们可以对函数 \(f(x)\) 设置先验,

阅读更多...


边际似然实现

gp.Marginal 类实现了 GP 回归的更常见情况:观察到的数据是 GP 和高斯噪声的总和。 gp.Marginal 具有 marginal_likelihood 方法、conditional 方法和 predict 方法。 给定均值和协方差函数,函数 \(f(x)\) 建模为,

阅读更多...


滚动回归

配对交易是算法交易中一种著名的技术,它将两只股票相互对赌。

阅读更多...


分层部分池化

假设您的任务是评估几位棒球运动员的击球技巧。 其中一项绩效指标是击球平均值。 由于球员参加的比赛场次不同,并且在击球顺序中处于不同的位置,因此每位球员的击球次数也不同。 但是,您想评估所有球员的技能,包括那些击球机会相对较少的球员。

阅读更多...


使用 BART 进行分位数回归

通常,在进行回归时,我们对某个分布的条件均值进行建模。 常见情况是连续无界响应的正态分布、计数数据的泊松分布等。

阅读更多...


可靠性统计和预测校准

重复的隐式目标名称:“reliability statistics and predictive calibration”。

阅读更多...


DEMetropolis(Z) 采样器调优

对于连续变量,默认的 PyMC 采样器 (NUTS) 要求计算梯度,PyMC 通过自动微分来实现这一点。 但是,在某些情况下,PyMC 模型可能未提供梯度(例如,通过在 PyMC 外部评估数值模型),因此需要替代采样器。 DEMetropolisZ 采样器是无梯度推理的有效选择。 PyMC 中 DEMetropolisZ 的实现基于 ter Braak 和 Vrugt [2008],但具有修改后的调优方案。 本笔记本比较了采样器的各种调优参数设置,包括 PyMC 中引入的 drop_tune_fraction 参数。

阅读更多...


DEMetropolis 和 DEMetropolis(Z) 算法比较

对于连续变量,默认的 PyMC 采样器 (NUTS) 要求计算梯度,PyMC 通过自动微分来实现这一点。 但是,在某些情况下,PyMC 模型可能未提供梯度(例如,通过在 PyMC 外部评估数值模型),因此需要替代采样器。 差分进化 (DE) Metropolis 采样器是无梯度推理的有效选择。 本笔记本比较了 PyMC 中的 DEMetropolisDEMetropolisZ 采样器,以帮助确定哪个是给定问题的更好选择。

阅读更多...


重新参数化 Weibull 加速失效时间模型

本笔记本使用的库不是 PyMC 依赖项,因此需要专门安装才能运行本笔记本。 打开下面的下拉菜单以获取更多指导。

阅读更多...


贝叶斯生存分析

生存分析研究事件发生时间的分布。 它的应用范围涵盖医学、生物学、工程学和社会科学等多个领域。 本教程展示了如何使用 PyMC 在 Python 中拟合和分析贝叶斯生存模型。

阅读更多...


ODE Lotka-Volterra 与多种方式的贝叶斯推断

本笔记本的目的是演示如何在常微分方程 (ODE) 系统上执行贝叶斯推断,无论是否使用梯度。 比较了不同采样器的准确性和效率。

阅读更多...


PyMC 变分推断简介

计算贝叶斯模型后验量的最常用策略是通过采样,特别是马尔可夫链蒙特卡罗 (MCMC) 算法。 虽然采样算法和相关的计算性能和效率不断提高,但 MCMC 方法在数据量较大时仍然表现不佳,并且对于超过几千个观测值的情况变得令人望而却步。 更具可扩展性的采样替代方案是变分推断 (VI),它将计算后验分布的问题重新定义为优化问题。

阅读更多...


分层二项式模型:大鼠肿瘤示例

这个简短的教程演示了如何使用 PyMC 对贝叶斯数据分析第 3 版 [Gelman et al., 2013] 第 5 章中的大鼠肿瘤示例进行推断。 读者应该已经熟悉 PyMC API。

阅读更多...


PyMC 中 AR(1) 模型的分析

考虑以下在无限过去初始化的 AR(2) 过程

\[ y_t = \rho_0 + \rho_1 y_{t-1} + \rho_2 y_{t-2} + \epsilon_t, \]
其中 \(\epsilon_t \overset{iid}{\sim} {\cal N}(0,1)\)。 假设您想从观测样本 \(Y^T = \{ y_0, y_1,\ldots, y_T \}\) 中了解 \(\rho\)

阅读更多...


GLM:泊松回归

这是一个使用虚拟数据预测计数的泊松回归的最小可复现示例。

阅读更多...


贝叶斯向量自回归模型

重复的隐式目标名称:“bayesian vector autoregressive models”。

阅读更多...


多输出高斯过程:使用 Hamadard 乘积的区域互联模型

本笔记本展示了如何使用 Coregion 内核和输入内核之间的 Hamadard 乘积来实现内在区域互联模型 (ICM) 和线性区域互联模型 (LCM)。 本文 讨论了多输出高斯过程,作者为 Bonilla et al. [2007]。 有关 ICM 和 LCM 的更多信息,请查看 Mauricio Alvarez 关于多输出高斯过程的演讲,以及 他的幻灯片,最后一页有更多参考文献。

阅读更多...


Kronecker 结构化协方差

PyMC 包含具有 Kronecker 结构化协方差的模型的实现。 这种模式化结构使高斯过程模型能够处理更大的数据集。 当...

阅读更多...


中断时间序列分析

本笔记本重点介绍如何进行简单的贝叶斯 中断时间序列分析。 这在 准实验设置中很有用,在准实验设置中,干预应用于所有治疗单元。

阅读更多...


多层建模的贝叶斯方法入门

分层或多层建模是回归建模的概括。

阅读更多...


使用结构 AR 时间序列进行预测

贝叶斯结构时间序列模型是了解任何观察到的时间序列数据中固有结构的有趣方法。 它还使我们能够向前投影隐含的预测分布,从而为我们提供关于预测问题的另一种视角。 我们可以将迄今为止观察到的时间序列数据的学习特征视为对同一措施的未实现未来状态的结构提供信息。

阅读更多...


差异中的差异

本笔记本简要概述了因果推断中的倍差法,并展示了如何在 PyMC 的贝叶斯框架下进行此类分析的工作示例。虽然本笔记本提供了该方法的高级概述,但我建议查阅两本关于因果推断的优秀教科书。 The Effect [Huntington-Klein, 2021]Causal Inference: The Mixtape [Cunningham, 2021] 都有专门章节介绍倍差法。

阅读更多...


反事实推断:计算由 COVID-19 导致的超额死亡人数

因果推理和反事实思考是非常有趣但复杂的主题!尽管如此,我们可以通过相对简单的例子来深入理解这些想法。本笔记本侧重于使用 PyMC 进行贝叶斯因果推理的概念和实际实现。

阅读更多...


用于个性化推荐的概率矩阵分解

您正在 Netflix 上浏览想看的内容,但就是不喜欢这些建议。您只是知道您可以做得更好。您只需要从自己和朋友那里收集一些评分数据,并构建一个推荐算法。本笔记本将指导您完成这项工作!

阅读更多...


使用标记的对数高斯 Cox 过程对空间点模式进行建模

对数高斯 Cox 过程 (LGCP) 是一种空间或时间中常见的点模式概率模型。它主要有两个组成部分。首先,使用指数变换的高斯过程在整个域 \(\lambda(s)\) 上对正实数值的底层强度\(X\) 进行建模,这约束了 \(\lambda\) 为正值。然后,此强度场用于参数化 泊松点过程,该过程表示在空间中放置点的随机机制。适用于此表示的现象包括一个县的癌症病例发生率,或一个城市中犯罪事件的时空位置。空间和时间维度都可以在此框架内等效处理,但本教程仅处理二维空间中的数据。

阅读更多...


变分推断:贝叶斯神经网络

概率编程深度学习 和 “大数据” 是机器学习中最大的主题之一。在 PP 内部,许多创新都集中在使用变分推断来扩展规模。在本例中,我将展示如何在 PyMC 中使用变分推断来拟合一个简单的贝叶斯神经网络。我还将讨论桥接概率编程和深度学习如何为未来的研究开辟非常有趣的途径。

阅读更多...


删失数据模型

关于贝叶斯生存分析的示例笔记本 涉及删失数据点。删失是一种缺失数据问题,其中大于某个阈值的观测值被裁剪到该阈值,或者小于某个阈值的观测值被裁剪到该阈值,或者两者都有。这些分别称为右删失、左删失和区间删失。在本示例笔记本中,我们考虑区间删失。

阅读更多...


Mauna Loa 二氧化碳的高斯过程

此高斯过程 (GP) 示例展示了如何

阅读更多...


航空旅客 - 类似 Prophet 的模型

我们将查看“航空旅客”数据集,该数据集跟踪了 1949 年至 1960 年美国航空公司旅客的月度总数。我们可以使用 Prophet 模型 [Taylor and Letham, 2018] 来拟合它(实际上,此数据集是他们在文档中提供的示例之一),但我们将在 PyMC3 中构建我们自己的类似 Prophet 的模型。这将使检查模型的组件以及进行先验预测检查(贝叶斯工作流程 [Gelman et al., 2020] 的组成部分)容易得多。

阅读更多...


使用项目反应理论分析 NBA 犯规

本教程展示了使用 PyMC 将贝叶斯项目反应理论 [Fox, 2010] 应用于 NBA 篮球犯规判罚数据。基于 Austin Rochford 的博文 NBA 犯规判罚和贝叶斯项目反应理论

阅读更多...


高尔夫推杆的模型构建和扩展

这使用了 Andrew Gelman 的案例研究 并紧随其后,该案例研究是用 Stan 编写的。有一些新的可视化效果,我们避开了使用不恰当的先验,但非常感谢他和 Stan 团队提供的精彩案例研究和软件。

阅读更多...


均值和协方差函数

PyMC 中提供了大量的均值和协方差函数。定义自定义均值和协方差函数相对容易。由于 PyMC 使用 PyTensor,因此用户无需定义它们的梯度。

阅读更多...


橄榄球预测的分层模型

在本例中,我们将使用 PyMC 重现 Baio 和 Blangiardo [2010] 中描述的第一个模型。然后展示如何从后验预测中抽样,以模拟根据建模数量(得分进球数)得出的锦标赛结果。

阅读更多...


GLM:模型选择

一个相当简洁的可重现示例,展示了如何在 PyMC 中当前实现的使用 WAIC 和 LOO 进行模型选择。

阅读更多...


贝叶斯加性回归树:简介

贝叶斯加性回归树 (BART) 是一种非参数回归方法。如果我们有一些协变量 \(X\) 并且我们想用它们来建模 \(Y\),则 BART 模型(省略先验)可以表示为

阅读更多...


GLM:使用自定义似然进行异常值分类的稳健回归

使用 PyMC 进行稳健回归,并通过 Hogg 2010 信噪比方法进行异常值检测。

阅读更多...


从笨拙的分箱数据中估计分布参数

假设我们有兴趣推断人口的属性。这可以是任何东西,从年龄、收入或体重指数的分布,到各种不同的可能措施。在完成这项任务时,我们可能经常遇到这种情况,即我们有多个数据集,每个数据集都可以告知我们对总体人口的看法。

阅读更多...


GLM:分层回归模型上的小批量 ADVI

与高斯混合模型不同,(分层)回归模型具有自变量。这些变量会影响似然函数,但不是随机变量。使用小批量时,我们应该注意这一点。

阅读更多...


边缘化高斯混合模型

高斯混合是数据表现出亚总体异质性的灵活模型类别。下面显示了此类数据集的玩具示例。

阅读更多...


使用散度诊断有偏推断

本笔记本是 Michael Betancourt 在 mc-stan 上的帖子 的 PyMC3 端口。有关底层机制的详细说明,请查看原始帖子 Diagnosing Biased Inference with Divergences 和 Betancourt 的优秀论文 A Conceptual Introduction to Hamiltonian Monte Carlo

阅读更多...


Student-t 过程

PyMC 还包括 T 过程先验。它们是将高斯过程先验推广到多元 Student’s T 分布。用法与 gp.Latent 的用法相同,只是它们在模型中指定时需要自由度参数。有关更多信息,请参阅 Rasmussen+Williams 的第 9 章和 Shah et al.

阅读更多...


更新先验

在本笔记本中,我们将展示原则上如何在获得新数据时更新先验。

阅读更多...