贝叶斯数据分析(9)——贝叶斯层级模型

阅读学习时间:约120分钟

笔记

贝叶斯数据分析(9)——贝叶斯层级模型

本笔记基于Bayesian Data Analysis Third Edition, Andrew Gelman et. al. 学习编写,由于是英文教材,可能在学习过程中一些翻译或者内容有误,如有问题或错误,可以发送至邮箱[email protected]反馈。在学习本书中,需要有一定数学基础或者数理统计的基础,并且存在很多需要计算的场景,对于每一条定理,从头开始的证明会让你更明白每一步是如何实现的。

我们之前提及的贝叶斯模型里,我们基本不考虑数据来源的异质性,但实际上,很多贝叶斯模型同时包含一组相互关联的参数。例如,多个医院各有一个生存率,多个学校各有一个教学干预效应,多个临床试验各有一个治疗效应。分别估计这些参数会丢掉组间能够共享的信息;强行令它们相等又会抹去真实差异。层级模型在这两个极端之间建立概率模型,让数据决定信息共享的程度。

在贝叶斯层级模型里,共同分布需要可交换性作为依据,未知超参数会让各组在边缘上相互依赖,这种依赖最终表现为部分汇聚和更完整的不确定性。

层级模型的概率结构

设第 jj 个组的数据为 yjy_j,对应的组参数为 ωj\omega_j,全部组参数记为 ω=(ω1,,ωJ)\omega=(\omega_1,\ldots,\omega_J)。组参数来自由超参数 ϕ\phi 控制的共同分布。最基本的层级结构为

yjωjp(yjωj),ωjϕp(ωjϕ),ϕp(ϕ).\begin{aligned} y_j\mid\omega_j &\sim p(y_j\mid\omega_j),\\ \omega_j\mid\phi &\sim p(\omega_j\mid\phi),\\ \phi &\sim p(\phi). \end{aligned}

在给定 ϕ\phi 时,各组参数通常设为条件独立;给定各自的 ωj\omega_j 时,各组数据也通常条件独立。因此联合分布可以写成

p(y,ω,ϕ)=p(ϕ)p(ωϕ)p(yω)=p(ϕ)j=1Jp(ωjϕ)j=1Jp(yjωj).\begin{aligned} p(y,\omega,\phi) &=p(\phi)p(\omega\mid\phi)p(y\mid\omega)\\ &=p(\phi)\prod_{j=1}^{J}p(\omega_j\mid\phi) \prod_{j=1}^{J}p(y_j\mid\omega_j). \end{aligned}

数据通过似然更新组参数,全部组的数据又通过组参数共同更新 ϕ\phi。于是第 jj 组的推断会受到其他组数据的影响。这种影响不是额外添加的校正,而是联合后验分布本身的结果:

p(ω,ϕy)p(ϕ)j=1Jp(ωjϕ)p(yjωj).p(\omega,\phi\mid y) \propto p(\phi)\prod_{j=1}^{J}p(\omega_j\mid\phi)p(y_j\mid\omega_j).

大鼠肿瘤例子的层级结构:超参数控制组参数,组参数再控制观测

三种汇聚方式

当我们面对多个中心的数据时,常常有三个处理方式:不汇聚,即我们对单独中心进行分析;完全汇聚,即我们不考虑组间的异质性,认为其完全相同;部分汇聚,即考虑组件之间的异质性,这也正是我们层级模型所做的,同时也会更加复杂。

方式 参数关系 信息使用 主要问题
不汇聚 每个 ωj\omega_j 分开估计 只使用本组数据 小样本组方差大,多重比较中容易高估极端效应
完全汇聚 ω1==ωJ\omega_1=\cdots=\omega_J 所有数据估计一个共同参数 无法表达真实的组间差异
部分汇聚 ωj\omega_j 来自共同分布 本组数据与总体分布共同决定估计 需要估计组间差异及其不确定性

需要注意的是,部分汇聚不是固定比例的平均。样本信息精确的组通常保留更多自身特征,样本少或标准误大的组会更明显地向总体中心收缩。组间方差越大,模型允许的组间差异越大,收缩也越弱。

层级模型把组估计收缩到总体中心。收缩强度由组内信息、组间变异和超参数不确定性共同决定;总体中心本身也由数据估计。所有组由此在同一个联合模型中相互借用信息。

可交换性

定义

如果对任意指标置换 pipi,联合分布均满足

p(ω1,,ωJ)=p(ωπ(1),,ωπ(J)),p(\omega_1,\ldots,\omega_J)=p(\omega_{\pi(1)},\ldots,\omega_{\pi(J)}),

则称 (ω1,,ωJ)(\omega_1,\ldots,\omega_J) 是可交换的。这个定义表达的是先验联合分布对标签置换不变。它不表示各组在现实中完全相同,也不要求观测值相等。

可交换性的建模依据是:在进入模型的信息中,没有变量足以预先区分各组参数的分布。实验发生在不同地点或时间并不会自动否定可交换性。只有当地点、时间、实验设计或其他变量能够系统地区分组参数时,模型才应将这些信息编码为分组结构或协变量。

可交换性与独立性的区别

独立性要求联合分布可以分解:

p(ω1,,ωJ)=j=1Jpj(ωj).p(\omega_1,\ldots,\omega_J)=\prod_{j=1}^{J}p_j(\omega_j).

可交换性要求联合分布在置换后不变。两者约束的是不同性质。

  • 独立但不同分布的变量一般不可交换。
  • 独立同分布变量一定可交换
  • 可交换变量不一定独立
  • 层级模型中的组参数通常在给定超参数后独立,在边缘分布下却相互依赖。

层级模型最常用的可交换表示为

p(ωϕ)=j=1Jp(ωjϕ),p(ω)={j=1Jp(ωjϕ)}p(ϕ)dϕ.\begin{aligned} p(\omega\mid\phi)&=\prod_{j=1}^{J}p(\omega_j\mid\phi),\\ p(\omega)&=\int\left\{\prod_{j=1}^{J}p(\omega_j\mid\phi)\right\}p(\phi)\,d\phi. \end{aligned}

第一行是条件独立,第二行对未知的 ϕ\phi 做了平均。所有 ωj\omega_j 共享同一个 ϕ\phi,所以知道某个组参数会改变对 ϕ\phi 的判断,并进一步改变其他组参数的分布。

设在给定 ϕ\phi 时,ωj\omega_jωk\omega_k 条件独立且条件均值均为 m(ϕ)m(\phi)。边缘协方差由全协方差公式得到

Cov(ωj,ωk)=E ⁣[Cov(ωj,ωkϕ)]+Cov ⁣(E[ωjϕ],E[ωkϕ])=0+Cov(m(ϕ),m(ϕ))=Var(m(ϕ)).\begin{aligned} \operatorname{Cov}(\omega_j,\omega_k) &=\mathbb{E}\!\left[\operatorname{Cov}(\omega_j,\omega_k\mid\phi)\right]+\operatorname{Cov}\!\left(\mathbb{E}[\omega_j\mid\phi],\mathbb{E}[\omega_k\mid\phi]\right)\\ &=0+\operatorname{Cov}(m(\phi),m(\phi))\\ &=\operatorname{Var}(m(\phi)). \end{aligned}

只要超参数仍有不确定性,右侧通常大于零。条件独立没有推出边缘独立。数据更新 ϕ\phi 后,各组的后验分布也通过 ϕ\phi 联系起来。

层级混合产生的相关通常为正,但可交换性本身并不要求正相关。无放回抽样得到的序列可以可交换且负相关。有限维可交换分布还可能受到总和固定等约束,不能写成独立同分布混合。

de Finetti 表示的边界

无限可交换序列,在适当正则条件下,de Finetti 定理允许将其表示为条件独立同分布模型的混合:

p(ω1,,ωJ)=j=1Jp(ωjϕ)p(ϕ)dϕ.p(\omega_1,\ldots,\omega_J)=\int\prod_{j=1}^{J}p(\omega_j\mid\phi)p(\phi)\,d\phi.

这里的无限性条件不能省略。一个有限可交换分布未必能够扩展为无限可交换序列。实际建模中,条件独立同分布的混合仍然是表达可交换性的主要工具,但它是一种模型选择,不是有限维可交换性的同义定义。

部分可交换与条件可交换

当组具有已知协变量 xjx_j 时,直接假设 ωj\omega_j 完全可交换可能过于粗糙。可以改为

p(ωx)={j=1Jp(ωjϕ,xj)}p(ϕx)dϕ.p(\omega\mid x)=\int\left\{\prod_{j=1}^{J}p(\omega_j\mid\phi,x_j)\right\}p(\phi\mid x)\,d\phi.

此时相同或相近协变量条件下的组具有可比较的分布。实验室、地区和时间等离散结构可以形成更高一层的部分可交换模型;连续信息则可以进入组层回归。

对可交换性的有效质疑应落到可观测结构上。若某个变量能够系统解释组间差异,就把它写入模型。仅仅指出每个组都不同,并不足以否定共同分布,因为层级模型本来就允许 ωj\omega_j 彼此不同。

层级模型中的贝叶斯计算

层级模型的参数维数通常较高,但概率结构给出了清晰的计算分解。简单共轭模型可以先解析边缘化超参数,再条件抽取组参数;一般的非共轭模型则通常使用 HMC 对联合后验进行抽样。

一个基本模拟顺序为

ϕ(s)p(ϕy),ω(s)p(ωϕ(s),y),y~(s)p(y~ω(s),ϕ(s)),s=1,,S.\begin{aligned} \phi^{(s)}&\sim p(\phi\mid y),\\ \omega^{(s)}&\sim p(\omega\mid\phi^{(s)},y),\\ \widetilde y^{(s)}&\sim p(\widetilde y\mid\omega^{(s)},\phi^{(s)}), \qquad s=1,\ldots,S. \end{aligned}

第二步在许多模型中可以按组并行,因为

p(ωϕ,y)=j=1Jp(ωjϕ,yj).p(\omega\mid\phi,y)=\prod_{j=1}^{J}p(\omega_j\mid\phi,y_j).

解析边缘化的价值不仅是降低维数。它还揭示了组参数共享信息的具体通道,并能用于检查通用采样器的结果。

实际计算中的 HMC

当超参数的边缘后验不能解析求出,或者模型包含非共轭似然、大量连续组参数、组层回归及相关结构时,实际分析通常直接对联合后验 p(ω,ϕy)p(\omega,\phi\mid y) 使用 HMC。相比随机游走式 Metropolis,HMC 在高维且参数相关的后验中能够进行更充分的移动,样本自相关通常更低,单位计算时间内得到的有效样本量也往往更高。HMC 适用于连续且对数密度可微的参数;离散潜变量通常需要先积分掉或采用其他处理方式。

Stan 和 brms 默认使用 HMC 的 NUTS 变体,因此后文的 pybrms 层级模型实际由 HMC/NUTS 完成抽样。HMC 的算法、NUTS 和调参已经在上一节介绍,本章只强调它在层级模型中的使用。层级漏斗仍可能造成发散和低效抽样,因此实际拟合时需要结合非中心化参数化,并检查发散、最大树深、能量诊断、R^\widehat R 与有效样本量。

在层级模型中使用比例符号时,需要确认被省略的项对当前变量确实是常数。例如,从 p(ω,ϕy)p(\omega,\phi\mid y) 推导 p(ϕy)p(\phi\mid y) 时,p(ωϕ,y)p(\omega\mid\phi,y) 的归一化常数依赖 ϕ\phi,不能随意删去。最稳妥的做法是显式积分,或者使用完整的规范化条件分布进行相除。

Beta-Binomial 层级模型

我们引入一个例子进行阐述,对于多个组别中,我们使用一种药物诱导若干只大鼠使其产生肿瘤,我们需要知道这个药物成功的概率是多少。因此在这里面,我们的组别即是我们层级模型里的异质性考虑因素。

大鼠肿瘤数据的模型

设第 jj 个实验中有 njn_j 只大鼠,其中 yjy_j 只出现肿瘤,肿瘤概率为 ωj\omega_j。模型为

yjωjBinomial(nj,ωj),ωjα,βBeta(α,β),(α,β)p(α,β),j=1,,J.\begin{aligned} y_j\mid\omega_j&\sim\operatorname{Binomial}(n_j,\omega_j),\\ \omega_j\mid\alpha,\beta&\sim\operatorname{Beta}(\alpha,\beta),\\ (\alpha,\beta)&\sim p(\alpha,\beta), \qquad j=1,\ldots,J. \end{aligned}

数据层描述每个实验内部的二项抽样误差,参数层则让不同实验的肿瘤率来自同一个 Beta 总体分布。α\alphaβ\beta 保留在概率模型中,但直接用它们解释总体位置与组间差异并不方便,因此先改写为总体均值 mm 和集中度 κ\kappa

mmκ\kappa 表示总体分布

定义

m=αα+β,κ=α+β,α=mκ,β=(1m)κ.\begin{aligned} m&=\frac{\alpha}{\alpha+\beta}, &\kappa&=\alpha+\beta,\\ \alpha&=m\kappa, &\beta&=(1-m)\kappa. \end{aligned}

α,β>0\alpha,\beta>0 时,(α,β)(\alpha,\beta)(m,κ)(m,\kappa) 一一对应,其中 0<m<10<m<1κ>0\kappa>0。这两个参数的作用可以直接从 Beta 分布的矩看出:

E(ωjm,κ)=m,Var(ωjm,κ)=m(1m)κ+1.\begin{aligned} \mathbb{E}(\omega_j\mid m,\kappa) &=m,\\ \operatorname{Var}(\omega_j\mid m,\kappa) &=\frac{m(1-m)}{\kappa+1}. \end{aligned}

mm 是总体分布的均值,表示各实验肿瘤率共同围绕的中心;κ\kappa 是集中度,决定不同实验的 ωj\omega_j 围绕 mm 的紧密程度。在 mm 固定时,κ\kappa 越大,组间差异越小;κ\kappa 越小,Beta 分布越分散,组间异质性越强。

κ\kappa 有时被称为 Beta 先验的有效样本量,因为 α\alphaβ\beta 可以分别看作成功和失败方向上的先验伪计数,总量为 α+β=κ\alpha+\beta=\kappa。它并不是真实观测数,只是在共轭更新中以与样本量相同的代数方式决定先验权重。因此,在理论上,将 κ\kappa 称为集中度更准确。

联合后验与组参数的条件后验

忽略只依赖观测数据的二项系数,联合后验为

p(ω,α,βy)p(yω,α,β)p(ω,α,β)p(yω)p(α,β)p(ωα,β)p(α,β)j=1JΓ(α+β)Γ(α)Γ(β)ωjα1(1ωj)β1ωjyj(1ωj)njyj=p(α,β)j=1JΓ(α+β)Γ(α)Γ(β)ωjα+yj1(1ωj)β+njyj1.\begin{aligned} p(\omega,\alpha,\beta\mid y) &\propto p(y|\omega,\alpha,\beta)p(\omega,\alpha,\beta)\\ &\propto p(y|\omega)p(\alpha,\beta)p(\omega|\alpha,\beta)\\ &\propto p(\alpha,\beta) \prod_{j=1}^{J}\frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha)\Gamma(\beta)} \omega_j^{\alpha-1}(1-\omega_j)^{\beta-1} \omega_j^{y_j}(1-\omega_j)^{n_j-y_j}\\ &=p(\alpha,\beta) \prod_{j=1}^{J}\frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha)\Gamma(\beta)} \omega_j^{\alpha+y_j-1}(1-\omega_j)^{\beta+n_j-y_j-1}. \end{aligned}

因此给定 (α,β)(\alpha,\beta) 后,各组条件后验相互独立(即上面等式的后面一部分):

ωjα,β,yBeta(α+yj,β+njyj).\omega_j\mid\alpha,\beta,y \sim\operatorname{Beta}(\alpha+y_j,\beta+n_j-y_j).

条件后验均值可以写成部分汇聚的形式:

E(ωjα,β,yj)=α+yjα+β+nj=njnj+κyjnj+κnj+κm.\begin{aligned} \mathbb{E}(\omega_j\mid\alpha,\beta,y_j) &=\frac{\alpha+y_j}{\alpha+\beta+n_j}\\ &=\frac{n_j}{n_j+\kappa}\frac{y_j}{n_j} +\frac{\kappa}{n_j+\kappa}m. \end{aligned}

其中 m&=\frac{\alpha}{\alpha+\beta},&\kappa&=\alpha+\beta,\\

数据比例 yj/njy_j/n_j 的权重为 nj/(nj+κ)n_j/(n_j+\kappa),总体中心 mm 的权重为 κ/(nj+κ)\kappa/(n_j+\kappa)。小样本实验向总体中心收缩得更多。换句话说,我们可以认为小样本的实验它对总的中心的权重或者贡献较小。

从组参数积分到超参数边缘后验

超参数 (α,β)(\alpha,\beta) 控制所有组的总体分布。为了只研究这两个超参数,需要将每个组的潜在概率 ωj\omega_j 从联合模型中积分掉。单组积分给出 Beta-Binomial 边缘分布:

利用 Beta 函数 B(a,b)=Γ(a)Γ(b)/Γ(a+b)B(a,b)=\Gamma(a)\Gamma(b)/\Gamma(a+b),单组边缘分布为

p(yjα,β)=01p(yjωj)p(ωjα,β)dωj=(njyj)1B(α,β)01ωjα+yj1(1ωj)β+njyj1dωj=(njyj)B(α+yj,β+njyj)B(α,β)=(njyj)Γ(α+β)Γ(α)Γ(β)Γ(α+yj)Γ(β+njyj)Γ(α+β+nj).\begin{aligned} p(y_j\mid\alpha,\beta) &=\int_0^1 p(y_j\mid\omega_j)p(\omega_j\mid\alpha,\beta)\,d\omega_j\\ &=\binom{n_j}{y_j}\frac{1}{B(\alpha,\beta)} \int_0^1\omega_j^{\alpha+y_j-1}(1-\omega_j)^{\beta+n_j-y_j-1}\,d\omega_j\\ &=\binom{n_j}{y_j}\frac{B(\alpha+y_j,\beta+n_j-y_j)}{B(\alpha,\beta)}\\ &=\binom{n_j}{y_j} \frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha)\Gamma(\beta)} \frac{\Gamma(\alpha+y_j)\Gamma(\beta+n_j-y_j)}{\Gamma(\alpha+\beta+n_j)}. \end{aligned}

各组在给定 (α,β)(\alpha,\beta) 后条件独立,因此完整的超参数边缘似然是各组边缘分布的乘积。再乘以超先验,才得到超参数的边缘后验:

p(yα,β)=j=1J(njyj)B(α+yj,β+njyj)B(α,β),p(α,βy)p(α,β)j=1JB(α+yj,β+njyj)B(α,β)=p(α,β)j=1JΓ(α+β)Γ(α)Γ(β)Γ(α+yj)Γ(β+njyj)Γ(α+β+nj).\begin{aligned} p(y\mid\alpha,\beta) &=\prod_{j=1}^{J}\binom{n_j}{y_j} \frac{B(\alpha+y_j,\beta+n_j-y_j)}{B(\alpha,\beta)},\\ p(\alpha,\beta\mid y) &\propto p(\alpha,\beta) \prod_{j=1}^{J} \frac{B(\alpha+y_j,\beta+n_j-y_j)}{B(\alpha,\beta)}\\ &=p(\alpha,\beta) \prod_{j=1}^{J} \frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha)\Gamma(\beta)} \frac{\Gamma(\alpha+y_j)\Gamma(\beta+n_j-y_j)} {\Gamma(\alpha+\beta+n_j)}. \end{aligned}

其中二项系数只依赖观测数据,在写后验核时已经省去。积分后的似然仍然同时包含总体中心和组间异质性的信息:mm 决定肿瘤率的总体位置,κ\kappa 决定各组能否被一个很窄的 Beta 分布共同解释。现在还有一个问题,在于我们的 p(α,β)p(\alpha,\beta), 之前我们可以用均匀分布进行一个非信息先验的假设,但这里,我们不使用这个简单的非信息先验:

超先验、参数变换与 Jacobian

这一部分会涉及三套坐标。(α,β)(\alpha,\beta) 是模型坐标,(m,κ)(m,\kappa) 是解释坐标,还有我们后面计算时再使用的

η=logit(m)=logm1m=logαβ,λ=logκ=log(α+β).\begin{aligned} \eta&=\operatorname{logit}(m)=\log\frac{m}{1-m}=\log\frac{\alpha}{\beta},\\ \lambda&=\log\kappa=\log(\alpha+\beta). \end{aligned}

其中 η,λR\eta,\lambda\in\mathbb{R},适合建立数值积分网格。坐标改变后,同一小块区域所含的概率必须不变,但单位面积对应的密度会改变,Jacobian 就是这两种面积尺度之间的换算因子。

第一步:在可解释参数上定义超先验

为了计算方便,令

s=κ1/2s=\kappa^{-1/2}

其中,κ=α+β\kappa= \alpha+\beta, 并在 (m,s)(m,s) 上采用均匀超先验,即 p(m,s)1p(m,s)\propto1。这里的 ss 是总体分布集中度的反向尺度:κ\kappa 越大,ss 越小。先从 (m,s)(m,s) 变到 (m,κ)(m,\kappa),再变到 (α,β)(\alpha,\beta),两次 Jacobian 为

sκ=12κ3/2,p(m,κ)=p(m,s)sκκ3/2,(α,β)(m,κ)=κmκ1m=κ,(m,κ)(α,β)=κ1,p(α,β)=p(m,κ)(m,κ)(α,β)κ3/2κ1=(α+β)5/2.\begin{aligned} \left|\frac{\partial s}{\partial\kappa}\right| &=\frac12\kappa^{-3/2},\\ p(m,\kappa) &=p(m,s)\left|\frac{\partial s}{\partial\kappa}\right| \propto\kappa^{-3/2},\\ \left|\frac{\partial(\alpha,\beta)}{\partial(m,\kappa)}\right| &=\left| \begin{matrix} \kappa&m\\-\kappa&1-m \end{matrix} \right|=\kappa,\\ \left|\frac{\partial(m,\kappa)}{\partial(\alpha,\beta)}\right| &=\kappa^{-1},\\ p(\alpha,\beta) &=p(m,\kappa) \left|\frac{\partial(m,\kappa)}{\partial(\alpha,\beta)}\right|\\ &\propto\kappa^{-3/2}\kappa^{-1}=(\alpha+\beta)^{-5/2}. \end{aligned}

这样得到的超先验是

p(α,β)(α+β)5/2.p(\alpha,\beta)\propto(\alpha+\beta)^{-5/2}.

p(m,s)1p(m,s)\propto1s>0s>0 上是non-proper超先验。我们选择 κ5/2\kappa^{-5/2} 的尾部衰减,正是为了可以得到一个proper的后验分布。相反,若直接在 (η,λ)(\eta,\lambda) 上采用无限范围的均匀先验,后验在 κ\kappa\to\infty 时不可积。实际分析也可以改用proper、weak informative的超先验,并进行后验分布是否proper的检查。

第二步:把密度变到计算坐标

m=logit1(η)m=\operatorname{logit}^{-1}(\eta)κ=exp(λ)\kappa=\exp(\lambda),从 (η,λ)(\eta,\lambda)(α,β)(\alpha,\beta) 的 Jacobian 可以沿着 (η,λ)(m,κ)(α,β)(\eta,\lambda)\to(m,\kappa)\to(\alpha,\beta) 分解:

(m,κ)(η,λ)=m(1m)κ,(α,β)(η,λ)=(α,β)(m,κ)(m,κ)(η,λ)=κm(1m)κ=αβ.\begin{aligned} \left|\frac{\partial(m,\kappa)}{\partial(\eta,\lambda)}\right| &=m(1-m)\kappa,\\ \left|\frac{\partial(\alpha,\beta)}{\partial(\eta,\lambda)}\right| &=\left|\frac{\partial(\alpha,\beta)}{\partial(m,\kappa)}\right| \left|\frac{\partial(m,\kappa)}{\partial(\eta,\lambda)}\right|\\ &=\kappa\cdot m(1-m)\kappa\\ &=\alpha\beta. \end{aligned}

因此,计算坐标上的超先验和边缘后验核分别为

p(η,λ)αβ(α+β)5/2,p(η,λy)αβ(α+β)5/2j=1JB(α+yj,β+njyj)B(α,β),\begin{aligned} p(\eta,\lambda) &\propto\alpha\beta(\alpha+\beta)^{-5/2},\\ p(\eta,\lambda\mid y) &\propto\alpha\beta(\alpha+\beta)^{-5/2} \prod_{j=1}^{J} \frac{B(\alpha+y_j,\beta+n_j-y_j)}{B(\alpha,\beta)}, \end{aligned}

其中

α=mκ,β=(1m)κ,m=logit1(η),κ=exp(λ).\alpha=m\kappa,\qquad \beta=(1-m)\kappa,\qquad m=\operatorname{logit}^{-1}(\eta),\qquad \kappa=\exp(\lambda).

后验模拟与收缩

共轭模型的后验抽样可以分两步完成:

(α(s),β(s))p(α,βy),ωj(s)Beta(α(s)+yj,β(s)+njyj),j=1,,J.\begin{aligned} (\alpha^{(s)},\beta^{(s)})&\sim p(\alpha,\beta\mid y),\\ \omega_j^{(s)}&\sim\operatorname{Beta}(\alpha^{(s)}+y_j, \beta^{(s)}+n_j-y_j), \qquad j=1,\ldots,J. \end{aligned}

(α,β)(\alpha,\beta) 的后验不确定性进行平均,会使 ωj\omega_j 的边缘后验比固定超参数的经验贝叶斯近似更宽。后者只使用 (α^,β^)(\widehat\alpha,\widehat\beta),遗漏了总体分布估计误差。

大鼠肿瘤率的后验中位数与区间相对原始比例发生部分收缩

图中的 4545^\circ 线对应不汇聚估计 yj/njy_j/n_j。后验中位数整体向总体肿瘤率移动,数据较少的实验区间更宽,收缩也更明显。

正态层级模型

正态层级模型是部分汇聚这种方式更直接的例子,也是许多 Meta 分析和随机效应模型的基础。

数据层与参数层

设第 jj 个组的均值统计量为 yˉj\bar y_{\cdot j},其已知抽样方差为 σj2\sigma_j^2。模型为

yˉjωjN(ωj,σj2),ωjμ,τN(μ,τ2),p(μ,τ)=p(μτ)p(τ)p(τ).\begin{aligned} \bar y_{\cdot j}\mid\omega_j&\sim\mathcal N(\omega_j,\sigma_j^2),\\ \omega_j\mid\mu,\tau&\sim\mathcal N(\mu,\tau^2),\\ p(\mu,\tau)&=p(\mu\mid\tau)p(\tau)\propto p(\tau). \end{aligned}

其中,第三条里,我们设立一个非信息均匀超先验分布给 p(μτ)p(\mu|\tau), 则认为是一个常数

μ\mu 是组参数总体的中心,τ\tau 是组间标准差。σj\sigma_j 描述第 jj 组估计的抽样误差,τ\tau 描述真实组参数之间的异质性,两者不能混为一项。

联合后验核为

p(ω,μ,τy)p(ω,μ,τ)p(yω,μ,τ)=p(ωμ,τ)p(μ,τ)p(yω,μ,τ)=p(ωμ,τ)p(μ,τ)p(yω)p(μ,τ)j=1JN(ωjμ,τ2)j=1JN(yˉjωj,σj2).\begin{aligned} p(\omega,\mu,\tau\mid y) &\propto p(\omega,\mu,\tau)p(y|\omega,\mu,\tau)\\ &= p(\omega|\mu,\tau)p(\mu,\tau)p(y|\omega,\mu,\tau)\\ &= p(\omega|\mu,\tau)p(\mu,\tau)p(y|\omega)\\ &\propto p(\mu,\tau) \prod_{j=1}^{J}\mathcal N(\omega_j\mid\mu,\tau^2) \prod_{j=1}^{J}\mathcal N(\bar y_{\cdot j}\mid\omega_j,\sigma_j^2). \end{aligned}

给定超参数时的组参数后验

在给定 (μ,τ)(\mu,\tau) 后,ωj\omega_j 的后验仍为正态:

ωjμ,τ,yN(ω^j,Vj),\omega_j\mid\mu,\tau,y \sim\mathcal N(\widehat\omega_j,V_j),

其中

ω^j=yˉj/σj2+μ/τ21/σj2+1/τ2=τ2σj2+τ2yˉj+σj2σj2+τ2μ,Vj=(1σj2+1τ2)1=σj2τ2σj2+τ2.\begin{aligned} \widehat\omega_j &=\frac{\bar y_{\cdot j}/\sigma_j^2+\mu/\tau^2} {1/\sigma_j^2+1/\tau^2} =\frac{\tau^2}{\sigma_j^2+\tau^2}\bar y_{\cdot j} +\frac{\sigma_j^2}{\sigma_j^2+\tau^2}\mu,\\ V_j&=\left(\frac{1}{\sigma_j^2}+\frac{1}{\tau^2}\right)^{-1} =\frac{\sigma_j^2\tau^2}{\sigma_j^2+\tau^2}. \end{aligned}

这一点和我们在多参数模型里提到的很类似,这一结果可由配方直接得到。只保留与 ωj\omega_j 有关的项:

logp(ωjμ,τ,yj)(yˉjωj)22σj2(ωjμ)22τ2=12(1σj2+1τ2)[ωjyˉj/σj2+μ/τ21/σj2+1/τ2]2+C,\begin{aligned} \log p(\omega_j\mid\mu,\tau,y_j) &\doteq-\frac{(\bar y_{\cdot j}-\omega_j)^2}{2\sigma_j^2} -\frac{(\omega_j-\mu)^2}{2\tau^2}\\ &=-\frac12\left(\frac1{\sigma_j^2}+\frac1{\tau^2}\right) \left[\omega_j- \frac{\bar y_{\cdot j}/\sigma_j^2+\mu/\tau^2} {1/\sigma_j^2+1/\tau^2}\right]^2+C, \end{aligned}

其中 CCωj\omega_j 无关。平方项的中心给出后验均值,二次项系数的倒数给出后验方差。

定义数据权重

λj=τ2σj2+τ2,\lambda_j=\frac{\tau^2}{\sigma_j^2+\tau^2},

ω^j=λjyˉj+(1λj)μ.\widehat\omega_j=\lambda_j\bar y_{\cdot j}+(1-\lambda_j)\mu.

σj\sigma_j 小时,本组估计精确,λj\lambda_j 接近 1;当 τ\tau 小时,组参数更接近共同中心,λj\lambda_j 接近 0。这给出了部分汇聚的精确权重。

超参数后验

因为

yˉj=ωj+εj,ωjN(μ,τ2),εjN(0,σj2),\bar y_{\cdot j}=\omega_j+\varepsilon_j, \qquad \omega_j\sim\mathcal N(\mu,\tau^2), \qquad \varepsilon_j\sim\mathcal N(0,\sigma_j^2),

所以卷积后

yˉjμ,τN(μ,σj2+τ2).\bar y_{\cdot j}\mid\mu,\tau \sim\mathcal N(\mu,\sigma_j^2+\tau^2).

也可以用矩母函数或直接积分验证:

p(yˉjμ,τ)=p(yˉjωj)p(ωjμ,τ)dωj=N(yˉjωj,σj2)N(ωjμ,τ2)dωj=N(yˉjμ,σj2+τ2).\begin{aligned} p(\bar y_{\cdot j}\mid\mu,\tau) &=\int p(\bar y_{\cdot j}\mid\omega_j) p(\omega_j\mid\mu,\tau)\,d\omega_j\\ &=\int\mathcal N(\bar y_{\cdot j}\mid\omega_j,\sigma_j^2) \mathcal N(\omega_j\mid\mu,\tau^2)\,d\omega_j\\ &=\mathcal N(\bar y_{\cdot j}\mid\mu,\sigma_j^2+\tau^2). \end{aligned}

σj2\sigma_j^2τ2\tau^2 相加,是因为前者来自观测误差,后者来自真实组参数的离散,两层变异相互独立。

因此联合超参数后验为

p(μ,τy)p(μ,τ)j=1JN(yˉjμ,σj2+τ2).p(\mu,\tau\mid y) \propto p(\mu,\tau) \prod_{j=1}^{J}\mathcal N(\bar y_{\cdot j}\mid\mu,\sigma_j^2+\tau^2).

在给定 τ\tau 并令 p(μτ)1p(\mu\mid\tau)\propto1,即均匀分布后,有

μτ,yN(μ^,Vμ),\mu\mid\tau,y\sim\mathcal N(\widehat\mu,V_\mu),

其中

μ^(τ)=j=1Jyˉj/(σj2+τ2)j=1J1/(σj2+τ2),Vμ(τ)={j=1J1σj2+τ2}1.\begin{aligned} \widehat\mu(\tau) &=\frac{\displaystyle\sum_{j=1}^{J} \bar y_{\cdot j}/(\sigma_j^2+\tau^2)} {\displaystyle\sum_{j=1}^{J}1/(\sigma_j^2+\tau^2)},\\ V_\mu(\tau) &=\left\{\sum_{j=1}^{J}\frac1{\sigma_j^2+\tau^2}\right\}^{-1}. \end{aligned}

当我们进一步积分掉 μ\mu,得到 τ\tau 的一维边缘后验:

p(τy)p(τ)Vμ(τ)1/2j=1J(σj2+τ2)1/2exp ⁣{12j=1J(yˉjμ^(τ))2σj2+τ2}.p(\tau\mid y) \propto p(\tau)V_\mu(\tau)^{1/2} \prod_{j=1}^{J}(\sigma_j^2+\tau^2)^{-1/2} \exp\!\left\{-\frac12\sum_{j=1}^{J} \frac{(\bar y_{\cdot j}-\widehat\mu(\tau))^2} {\sigma_j^2+\tau^2}\right\}.

上式中的 Vμ1/2V_\mu^{1/2} 来自对共同均值的高斯积分。把边缘后验写成二次型后,

j=1J(yˉjμ)2σj2+τ2=j=1J(yˉjμ^)2σj2+τ2+(μμ^)2Vμ,exp ⁣[(μμ^)22Vμ]dμ=2πVμ.\begin{aligned} &\sum_{j=1}^{J}\frac{(\bar y_{\cdot j}-\mu)^2}{\sigma_j^2+\tau^2}\\ &\quad=\sum_{j=1}^{J}\frac{(\bar y_{\cdot j}-\widehat\mu)^2}{\sigma_j^2+\tau^2} +\frac{(\mu-\widehat\mu)^2}{V_\mu},\\ &\int_{-\infty}^{\infty} \exp\!\left[-\frac{(\mu-\widehat\mu)^2}{2V_\mu}\right]d\mu =\sqrt{2\pi V_\mu}. \end{aligned}

τ\tau 无关的 2π\sqrt{2\pi} 可以略去,而 VμV_\mu 依赖 τ\tau,必须保留。

后验模拟

根据上面流程的反向推理,我们可以得到一个具体的后验模拟抽样流程,先抽取超参数 τ\tau 的分布,然后抽取超参数 μ\mu 的分布,最后得到了联合超参数的分布后,抽取组参数 ω\omega 的分布:

τ(s)p(τy),μ(s)p(μτ(s),y),ωj(s)p(ωjμ(s),τ(s),yj).\begin{aligned} \tau^{(s)}&\sim p(\tau\mid y),\\ \mu^{(s)}&\sim p(\mu\mid\tau^{(s)},y),\\ \omega_j^{(s)}&\sim p(\omega_j\mid\mu^{(s)},\tau^{(s)},y_j). \end{aligned}

低维情况下可以在 τ\tau 网格上计算归一化密度并用逆 CDF 抽样。通用概率编程则直接在联合参数空间中用 HMC 抽样。两种方法应给出相容的后验结果。

Example

八校数据来自八个独立的 SAT 辅导实验。每个学校提供估计效应 yjy_j 及近似已知的标准误 σj\sigma_j

学校 yjy_j σj\sigma_j
A 28 15
B 8 10
C -3 16
D 7 11
E -1 9
F 1 11
G 18 10
H 12 18

不汇聚分析把 A 校效应中心放在 28,但其他学校的数据削弱了这种解释。完全汇聚分析则把八个真实效应强行设为相等,忽略了学校之间可能存在的差异。正态层级模型采用

yjωjN(ωj,σj2),ωjμ,τN(μ,τ2).\begin{aligned} y_j\mid\omega_j&\sim\mathcal N(\omega_j,\sigma_j^2),\\ \omega_j\mid\mu,\tau&\sim\mathcal N(\mu,\tau^2). \end{aligned}

对固定的 τ\tau,将 μ\mu 的后验不确定性也积分进去,可得

E(ωjτ,y)=λjyj+(1λj)μ^(τ),Var(ωjτ,y)=Vj+(1λj)2Vμ(τ),\begin{aligned} \mathbb E(\omega_j\mid\tau,y) &=\lambda_j y_j+(1-\lambda_j)\widehat\mu(\tau),\\ \operatorname{Var}(\omega_j\mid\tau,y) &=V_j+(1-\lambda_j)^2V_\mu(\tau), \end{aligned}

其中

λj=τ2σj2+τ2,Vj=σj2τ2σj2+τ2.\lambda_j=\frac{\tau^2}{\sigma_j^2+\tau^2}, \qquad V_j=\frac{\sigma_j^2\tau^2}{\sigma_j^2+\tau^2}.

第二个方差公式来自全方差公式。给定 (μ,τ)(\mu,\tau) 的条件方差是 VjV_j,条件均值中 μ\mu 的系数是 1λj1-\lambda_j,因此

Var(ωjτ,y)=E[Var(ωjμ,τ,y)τ,y]+Var[E(ωjμ,τ,y)τ,y]=Vj+(1λj)2Vμ(τ).\begin{aligned} \operatorname{Var}(\omega_j\mid\tau,y) &=\mathbb E[\operatorname{Var}(\omega_j\mid\mu,\tau,y)\mid\tau,y] +\operatorname{Var}[\mathbb E(\omega_j\mid\mu,\tau,y)\mid\tau,y]\\ &=V_j+(1-\lambda_j)^2V_\mu(\tau). \end{aligned}

八校模型中组间标准差的后验,以及条件后验均值和标准差随组间标准差的变化

τ=0\tau=0 时,八个学校完全汇聚;当 τ\tau\to\infty 时,估计逐渐接近不汇聚结果。数据中 p(τy)p(\tau\mid y) 在零附近较高,但对正值仍保留明显质量。仅把 τ\tau 固定在后验众数零会产生过强汇聚,因为它把关于异质性的全部不确定性删除了。

层级模型还能直接计算复合后验量,例如最大效应 maxjωj\max_j\omega_j、学校 A 的效应超过学校 C 的概率,以及任一学校效应超过某个实际阈值的概率。这些量只需在每次联合后验抽样中计算相应函数。

极端观测向总体中心收缩能够缓和选择最大值带来的偏差。这项调整已经包含在可交换层级模型的联合后验中,因注意在结果报告时,无须再把它作为传统多重比较校正附加到结果上。

两类后验预测

层级模型需要区分已有组的新观测与新组的新观测。

已有组的新观测

对已有组 jj,未来观测共享已经学习过的 ωj\omega_j

p(y~jy)=p(y~jωj)p(ωj,ϕy)dωjdϕ.p(\widetilde y_j\mid y) =\int p(\widetilde y_j\mid\omega_j) p(\omega_j,\phi\mid y)\,d\omega_j\,d\phi.

在正态模型中,若新观测方差为 σ~j2\widetilde\sigma_j^2,则

Var(y~jy)=σ~j2+Var(ωjy).\operatorname{Var}(\widetilde y_j\mid y) =\widetilde\sigma_j^2+\operatorname{Var}(\omega_j\mid y).

新组的新观测

对一个尚未出现的新组,先从总体分布抽取新参数 ω~\widetilde\omega,再抽取观测:

ϕ(s)p(ϕy),ω~(s)p(ω~ϕ(s)),y~(s)p(y~ω~(s)).\begin{aligned} \phi^{(s)}&\sim p(\phi\mid y),\\ \widetilde\omega^{(s)}&\sim p(\widetilde\omega\mid\phi^{(s)}),\\ \widetilde y^{(s)}&\sim p(\widetilde y\mid\widetilde\omega^{(s)}). \end{aligned}

正态层级模型中,新组真实效应的后验预测方差为

Var(ω~y)=E(τ2y)+Var(μy).\operatorname{Var}(\widetilde\omega\mid y) =\mathbb E(\tau^2\mid y)+\operatorname{Var}(\mu\mid y).

新组预测比总体均值 μ\mu 的后验更宽,因为它额外包含组间异质性。若还要预测新组的观测统计量,则再加入该统计量的抽样方差。

报告总体平均效应并不能替代新组效应预测。前者描述总体中心的不确定性,后者描述一个具体但尚未观测的可交换组可能落在何处。应用决策通常更关心后者。

层级模型用于 Meta 分析

设第 jj 个临床试验有治疗组与对照组。令 y1jy_{1j}n1jn_{1j} 为治疗组事件数和总人数,y0jy_{0j}n0jn_{0j} 为对照组对应数量。对数优势比的估计为

yj=logy1jn1jy1jlogy0jn0jy0j,y_j =\log\frac{y_{1j}}{n_{1j}-y_{1j}} -\log\frac{y_{0j}}{n_{0j}-y_{0j}},

其大样本抽样方差近似为

σj21y1j+1n1jy1j+1y0j+1n0jy0j.\sigma_j^2 \approx\frac1{y_{1j}}+\frac1{n_{1j}-y_{1j}} +\frac1{y_{0j}}+\frac1{n_{0j}-y_{0j}}.

于是可以使用与八校模型相同的正态层级结构:

yjωjN(ωj,σj2),ωjμ,τN(μ,τ2).\begin{aligned} y_j\mid\omega_j&\sim\mathcal N(\omega_j,\sigma_j^2),\\ \omega_j\mid\mu,\tau&\sim\mathcal N(\mu,\tau^2). \end{aligned}

μ\mu 是可交换试验总体的平均对数优势比,τ\tau 描述研究间异质性,ωj\omega_j 是第 jj 个已观测研究的真实效应。新研究效应 ω~\widetilde\omega 的后验预测比 μ\mu 的后验更宽。

某个 2×22\times2 表存在零单元格时,上述对数优势比与方差近似失效。简单连续性校正会影响小样本结果。更稳妥的模型直接使用二项似然,并在 logit 尺度上建立层级结构。

可交换性在 Meta 分析中是一项实质性假设。若研究在剂量、结局定义、患者构成或偏倚风险上存在系统差异,这些变量应进入组层回归,或者先划分为部分可交换的研究集合。研究筛选机制也会影响总体解释,不能由层级模型自动修复。

组间标准差 τ\tau 的先验

在上面的例子里,我们了解到了 τ\tau 决定部分汇聚强度。当组数较少或数据支持 τ\tau 接近零时,即完全汇聚时,先验会明显影响后验。但目前为止,我们还没有说过我们的 τ\tau 应该选用什么先验,在这里,我们进一步讨论 τ\tau 这个参数,因为其代表了组间标准差,而其先验的选择很重要。在我们之前提到非信息先验的选择时,我们通常会在对数尺度或者一般尺度上使用均匀分布,但在这里我们需要来看看设立这些先验都分别会有什么问题。

对数均匀先验的问题

logτ\log\tau 上均匀等价于

p(τ)1τ.p(\tau)\propto\frac1\tau.

τ0\tau\to0 时,正态层级模型的边缘似然趋近有限的非零值。因此后验在零附近的积分包含

0εcτdτ=,\int_0^\varepsilon\frac{c}{\tau}\,d\tau=\infty,

后验不是proper的。数据无法完全排除组间方差为零,所以不能在该区域放入无限先验质量。

τ\tau 上均匀

p(τ)1p(\tau)\propto1 在零附近可积。对正态层级模型,当 τ\tau\to\infty 时,

p(τy)τ(J1).p(\tau\mid y)\asymp\tau^{-(J-1)}.

但需要注意的是,只有 J>2J>2 时右尾积分才有限。

σj2+τ2τ2\sigma_j^2+\tau^2\asymp\tau^2 可得乘积项为 τJ\tau^{-J};同时

Vμ(τ)={j=1J(σj2+τ2)1}1τ2J,Vμ(τ)1/2j=1J(σj2+τ2)1/2ττJ=τ(J1).\begin{aligned} V_\mu(\tau) &=\left\{\sum_{j=1}^{J}(\sigma_j^2+\tau^2)^{-1}\right\}^{-1} \asymp\frac{\tau^2}{J},\\ V_\mu(\tau)^{1/2}\prod_{j=1}^{J}(\sigma_j^2+\tau^2)^{-1/2} &\asymp\tau\cdot\tau^{-J}=\tau^{-(J-1)}. \end{aligned}

指数项在该极限下趋近常数,所以尾部阶数由上式决定。

τ2\tau^2 上均匀意味着 p(τ)τp(\tau)\propto\tau,右尾更厚,需要 J>3J>3 才能得到正常后验,而且更容易产生过大的异质性估计。

小参数 inverse-gamma 先验

τ2\tau^2 使用 Inv-Gamma(ϵ,ϵ)\operatorname{Inv\text{-}Gamma}(\epsilon,\epsilon) 看似接近无信息,但当 ϵ0\epsilon\to0 时不存在稳定的正常后验极限。只要似然在 τ=0\tau=0 附近仍有质量,后验就可能对 ϵ\epsilon 极为敏感。把 ϵ\epsilon0.010.01 改为 0.0010.001 并不是单纯地减少先验信息,它会改变近零区域的形状。

half-Cauchy 与 half-tt

half-Cauchy 先验的密度为

p(τ)=2πA{1+(τ/A)2},τ>0.p(\tau)=\frac{2}{\pi A\{1+(\tau/A)^2\}}, \qquad \tau>0.

它在零附近有限,右尾较厚,并由尺度 AA 表达异质性的合理数量级。更一般的 half-tt 先验也常用于组层标准差。尺度不应脱离结果变量的单位设置。

八校与三校数据中,不同组间标准差先验对后验的影响

八校数据中,在 τ\tau 上均匀的先验仍能得到可用后验,而 inverse-gamma 先验明显约束了近零区域。只保留三个学校时,均匀先验产生很长的右尾;具有有限尺度的 half-Cauchy 去除了缺乏实际意义的超大异质性,同时保留了高似然区域。

弱信息先验仍然是模型的一部分。拟合后应比较先验与后验、检查不同合理尺度下的敏感性,并把实际不可接受的 τ\tau 范围在拟合前表达出来。用极宽的有限区间替代不正常先验,可能也只是把问题推到一个更遥远的边界,仍然没有解决问题。

使用 pybrms 拟合层级模型

pybrms 是对 R 包 brms 的 Python 接口。其公开版本停留在 0.0.33,发布于 2020 年,内部依赖 rpy2、brms 和旧版 PyStan。

例子里的正态层级模型

brms 公式中的 se(se) 表示每个效应估计有已知标准误且不另加残差尺度,(1 | school) 表示学校层随机截距。它对应

yjωjN(ωj,σj2),ωj=μ+uj,ujN(0,τ2).y_j\mid\omega_j\sim\mathcal N(\omega_j,\sigma_j^2), \qquad \omega_j=\mu+u_j, \qquad u_j\sim\mathcal N(0,\tau^2).
import pandas as pd
import pybrms
import arviz as az

schools = pd.DataFrame({
    'school': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
    'effect': [28, 8, -3, 7, -1, 1, 18, 12],
    'se': [15, 10, 16, 11, 9, 11, 10, 18],
})

fit_8schools = pybrms.fit(
    formula='effect | se(se) ~ 1 + (1 | school)',
    data=schools,
    family='gaussian',
    priors=[
        ('normal(0, 50)', 'Intercept'),
        ('student_t(3, 0, 25)', 'sd'),
    ],
    chains=4,
    iter=4000,
    warmup=2000,
    seed=20260812,
)

idata_8schools = az.from_pystan(fit_8schools)
print(az.summary(idata_8schools, round_to=2))
az.plot_trace(idata_8schools)
az.plot_posterior(idata_8schools)

student_t(3, 0, 25) 作用于标准差类参数时由 brms 截断到正半轴,相当于 half-tt 先验。尺度 25 继承了八校问题中以 SAT 分数为单位的量级,不应直接搬到其他结果变量。

二项分布层级模型

pybrms 中最直接的多组二项模型使用 logit-normal 组层分布:

yjωjBinomial(nj,ωj),logit(ωj)=μ+uj,ujN(0,τ2).\begin{aligned} y_j\mid\omega_j&\sim\operatorname{Binomial}(n_j,\omega_j),\\ \operatorname{logit}(\omega_j)&=\mu+u_j,\\ u_j&\sim\mathcal N(0,\tau^2). \end{aligned}
import pandas as pd
import pybrms

rat_data = pd.DataFrame({
    'experiment': ['e01', 'e02', 'e03', 'e04', 'e05', 'e06'],
    'tumor': [0, 1, 2, 3, 1, 4],
    'total': [20, 20, 20, 20, 14, 20],
})

fit_rat = pybrms.fit(
    formula='tumor | trials(total) ~ 1 + (1 | experiment)',
    data=rat_data,
    family='binomial',
    priors=[
        ('normal(-2, 1.5)', 'Intercept'),
        ('student_t(3, 0, 1)', 'sd'),
    ],
    chains=4,
    iter=4000,
    warmup=2000,
    seed=20260812,
)

print(fit_rat)

计算结果的检查

在实际应用里,我们构建层级模型后对其进行采样需要检查下面几点:

  1. 检查所有总体参数、组层标准差和代表性组参数的 R^\widehat R 与有效样本量。
  2. 检查发散、最大树深和能量诊断;漏斗形后验在小 τ\tau 时尤其容易暴露参数化问题。
  3. 比较中心化与非中心化参数化。数据较弱且组数少时,非中心化通常更稳定
  4. 做先验预测,确认 μ\muτ\tau 和观测尺度上的先验能够生成合理数据。
  5. 做后验预测,分别检查组内拟合、组间离散和极端组。
  6. τ\tau 的先验尺度进行敏感性分析,并报告它对收缩和新组预测的影响。