贝叶斯数据分析(9)——贝叶斯层级模型
本笔记基于Bayesian Data Analysis Third Edition, Andrew Gelman et. al. 学习编写,由于是英文教材,可能在学习过程中一些翻译或者内容有误,如有问题或错误,可以发送至邮箱[email protected] 反馈。在学习本书中,需要有一定数学基础或者数理统计的基础,并且存在很多需要计算的场景,对于每一条定理,从头开始的证明会让你更明白每一步是如何实现的。
我们之前提及的贝叶斯模型里,我们基本不考虑数据来源的异质性,但实际上,很多贝叶斯模型同时包含一组相互关联的参数。例如,多个医院各有一个生存率,多个学校各有一个教学干预效应,多个临床试验各有一个治疗效应。分别估计这些参数会丢掉组间能够共享的信息;强行令它们相等又会抹去真实差异。层级模型在这两个极端之间建立概率模型,让数据决定信息共享的程度。
在贝叶斯层级模型里,共同分布需要可交换性作为依据,未知超参数会让各组在边缘上相互依赖,这种依赖最终表现为部分汇聚和更完整的不确定性。
层级模型的概率结构
设第 j j j 个组的数据为 y j y_j y j ,对应的组参数为 ω j \omega_j ω j ,全部组参数记为 ω = ( ω 1 , … , ω J ) \omega=(\omega_1,\ldots,\omega_J) ω = ( ω 1 , … , ω J ) 。组参数来自由超参数 ϕ \phi ϕ 控制的共同分布。最基本的层级结构为
y j ∣ ω j ∼ p ( y j ∣ ω 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} y j ∣ ω j ω j ∣ ϕ ϕ ∼ p ( y j ∣ ω j ) , ∼ p ( ω j ∣ ϕ ) , ∼ p ( ϕ ) .
在给定 ϕ \phi ϕ 时,各组参数通常设为条件独立;给定各自的 ω j \omega_j ω j 时,各组数据也通常条件独立。因此联合分布可以写成
p ( y , ω , ϕ ) = p ( ϕ ) p ( ω ∣ ϕ ) p ( y ∣ ω ) = p ( ϕ ) ∏ j = 1 J p ( ω j ∣ ϕ ) ∏ j = 1 J p ( y j ∣ ω 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} p ( y , ω , ϕ ) = p ( ϕ ) p ( ω ∣ ϕ ) p ( y ∣ ω ) = p ( ϕ ) j = 1 ∏ J p ( ω j ∣ ϕ ) j = 1 ∏ J p ( y j ∣ ω j ) .
数据通过似然更新组参数,全部组的数据又通过组参数共同更新 ϕ \phi ϕ 。于是第 j j j 组的推断会受到其他组数据的影响。这种影响不是额外添加的校正,而是联合后验分布本身的结果:
p ( ω , ϕ ∣ y ) ∝ p ( ϕ ) ∏ j = 1 J p ( ω j ∣ ϕ ) p ( y j ∣ ω j ) . p(\omega,\phi\mid y)
\propto p(\phi)\prod_{j=1}^{J}p(\omega_j\mid\phi)p(y_j\mid\omega_j). p ( ω , ϕ ∣ y ) ∝ p ( ϕ ) j = 1 ∏ J p ( ω j ∣ ϕ ) p ( y j ∣ ω j ) .
三种汇聚方式
当我们面对多个中心的数据时,常常有三个处理方式:不汇聚,即我们对单独中心进行分析;完全汇聚,即我们不考虑组间的异质性,认为其完全相同;部分汇聚,即考虑组件之间的异质性,这也正是我们层级模型所做的,同时也会更加复杂。
方式
参数关系
信息使用
主要问题
不汇聚
每个 ω j \omega_j ω j 分开估计
只使用本组数据
小样本组方差大,多重比较中容易高估极端效应
完全汇聚
ω 1 = ⋯ = ω J \omega_1=\cdots=\omega_J ω 1 = ⋯ = ω J
所有数据估计一个共同参数
无法表达真实的组间差异
部分汇聚
ω j \omega_j ω j 来自共同分布
本组数据与总体分布共同决定估计
需要估计组间差异及其不确定性
需要注意的是,部分汇聚不是固定比例的平均。样本信息精确的组通常保留更多自身特征,样本少或标准误大的组会更明显地向总体中心收缩 。组间方差越大,模型允许的组间差异越大,收缩也越弱。
层级模型把组估计收缩到总体中心。收缩强度由组内信息、组间变异和超参数不确定性共同决定;总体中心本身也由数据估计。所有组由此在同一个联合模型中相互借用信息。
可交换性
定义
如果对任意指标置换 p i pi p i ,联合分布均满足
p ( ω 1 , … , ω J ) = p ( ω π ( 1 ) , … , ω π ( J ) ) , p(\omega_1,\ldots,\omega_J)=p(\omega_{\pi(1)},\ldots,\omega_{\pi(J)}), p ( ω 1 , … , ω J ) = p ( ω π ( 1 ) , … , ω π ( J ) ) ,
则称 ( ω 1 , … , ω J ) (\omega_1,\ldots,\omega_J) ( ω 1 , … , ω J ) 是可交换的。这个定义表达的是先验联合分布对标签置换不变。它不表示各组在现实中完全相同,也不要求观测值相等。
可交换性的建模依据是:在进入模型的信息中,没有变量足以预先区分各组参数的分布。实验发生在不同地点或时间并不会自动否定可交换性。只有当地点、时间、实验设计或其他变量能够系统地区分组参数时,模型才应将这些信息编码为分组结构或协变量。
可交换性与独立性的区别
独立性要求联合分布可以分解:
p ( ω 1 , … , ω J ) = ∏ j = 1 J p j ( ω j ) . p(\omega_1,\ldots,\omega_J)=\prod_{j=1}^{J}p_j(\omega_j). p ( ω 1 , … , ω J ) = j = 1 ∏ J p j ( ω j ) .
可交换性要求联合分布在置换后不变。两者约束的是不同性质。
独立但不同分布的变量一般不可交换。
独立同分布变量一定可交换 。
可交换变量不一定独立 。
层级模型中的组参数通常在给定超参数后独立,在边缘分布下却相互依赖。
层级模型最常用的可交换表示为
p ( ω ∣ ϕ ) = ∏ j = 1 J p ( ω j ∣ ϕ ) , p ( ω ) = ∫ { ∏ j = 1 J p ( ω 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} p ( ω ∣ ϕ ) p ( ω ) = j = 1 ∏ J p ( ω j ∣ ϕ ) , = ∫ { j = 1 ∏ J p ( ω j ∣ ϕ ) } p ( ϕ ) d ϕ .
第一行是条件独立,第二行对未知的 ϕ \phi ϕ 做了平均。所有 ω j \omega_j ω j 共享同一个 ϕ \phi ϕ ,所以知道某个组参数会改变对 ϕ \phi ϕ 的判断,并进一步改变其他组参数的分布。
设在给定 ϕ \phi ϕ 时,ω j \omega_j ω j 与 ω k \omega_k ω k 条件独立且条件均值均为 m ( ϕ ) m(\phi) m ( ϕ ) 。边缘协方差由全协方差公式得到
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} Cov ( ω j , ω k ) = E [ Cov ( ω j , ω k ∣ ϕ ) ] + Cov ( E [ ω j ∣ ϕ ] , E [ ω k ∣ ϕ ] ) = 0 + Cov ( m ( ϕ ) , m ( ϕ )) = Var ( m ( ϕ )) .
只要超参数仍有不确定性,右侧通常大于零。条件独立没有推出边缘独立。数据更新 ϕ \phi ϕ 后,各组的后验分布也通过 ϕ \phi ϕ 联系起来。
层级混合产生的相关通常为正,但可交换性本身并不要求正相关。无放回抽样得到的序列可以可交换且负相关。有限维可交换分布还可能受到总和固定等约束,不能写成独立同分布混合。
de Finetti 表示的边界
对无限可交换 序列,在适当正则条件下,de Finetti 定理允许将其表示为条件独立同分布模型 的混合:
p ( ω 1 , … , ω J ) = ∫ ∏ j = 1 J p ( ω j ∣ ϕ ) p ( ϕ ) d ϕ . p(\omega_1,\ldots,\omega_J)=\int\prod_{j=1}^{J}p(\omega_j\mid\phi)p(\phi)\,d\phi. p ( ω 1 , … , ω J ) = ∫ j = 1 ∏ J p ( ω j ∣ ϕ ) p ( ϕ ) d ϕ .
这里的无限性条件不能省略。一个有限可交换分布未必能够扩展为无限可交换序列。实际建模中,条件独立同分布的混合仍然是表达可交换性的主要工具,但它是一种模型选择,不是有限维可交换性的同义定义。
部分可交换与条件可交换
当组具有已知协变量 x j x_j x j 时,直接假设 ω j \omega_j ω j 完全可交换可能过于粗糙。可以改为
p ( ω ∣ x ) = ∫ { ∏ j = 1 J p ( ω j ∣ ϕ , x j ) } 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. p ( ω ∣ x ) = ∫ { j = 1 ∏ J p ( ω j ∣ ϕ , x j ) } p ( ϕ ∣ x ) d ϕ .
此时相同或相近协变量条件下的组具有可比较的分布。实验室、地区和时间等离散结构可以形成更高一层的部分可交换模型;连续信息则可以进入组层回归。
对可交换性的有效质疑应落到可观测结构上。若某个变量能够系统解释组间差异,就把它写入模型。仅仅指出每个组都不同,并不足以否定共同分布,因为层级模型本来就允许 ω j \omega_j ω 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} ϕ ( s ) ω ( s ) y ( s ) ∼ p ( ϕ ∣ y ) , ∼ p ( ω ∣ ϕ ( s ) , y ) , ∼ p ( y ∣ ω ( s ) , ϕ ( s ) ) , s = 1 , … , S .
第二步在许多模型中可以按组并行,因为
p ( ω ∣ ϕ , y ) = ∏ j = 1 J p ( ω j ∣ ϕ , y j ) . p(\omega\mid\phi,y)=\prod_{j=1}^{J}p(\omega_j\mid\phi,y_j). p ( ω ∣ ϕ , y ) = j = 1 ∏ J p ( ω j ∣ ϕ , y j ) .
解析边缘化的价值不仅是降低维数。它还揭示了组参数共享信息的具体通道,并能用于检查通用采样器的结果。
实际计算中的 HMC
当超参数的边缘后验不能解析求出,或者模型包含非共轭似然、大量连续组参数、组层回归及相关结构时,实际分析通常直接对联合后验 p ( ω , ϕ ∣ y ) p(\omega,\phi\mid y) p ( ω , ϕ ∣ y ) 使用 HMC。相比随机游走式 Metropolis,HMC 在高维且参数相关的后验中能够进行更充分的移动,样本自相关通常更低,单位计算时间内得到的有效样本量也往往更高。HMC 适用于连续且对数密度可微的参数;离散潜变量通常需要先积分掉或采用其他处理方式。
Stan 和 brms 默认使用 HMC 的 NUTS 变体,因此后文的 pybrms 层级模型实际由 HMC/NUTS 完成抽样。HMC 的算法、NUTS 和调参已经在上一节 介绍,本章只强调它在层级模型中的使用。层级漏斗仍可能造成发散和低效抽样,因此实际拟合时需要结合非中心化参数化,并检查发散、最大树深、能量诊断、R ^ \widehat R R 与有效样本量。
在层级模型中使用比例符号时,需要确认被省略的项对当前变量确实是常数。例如,从 p ( ω , ϕ ∣ y ) p(\omega,\phi\mid y) p ( ω , ϕ ∣ y ) 推导 p ( ϕ ∣ y ) p(\phi\mid y) p ( ϕ ∣ y ) 时,p ( ω ∣ ϕ , y ) p(\omega\mid\phi,y) p ( ω ∣ ϕ , y ) 的归一化常数依赖 ϕ \phi ϕ ,不能随意删去。最稳妥的做法是显式积分,或者使用完整的规范化条件分布进行相除。
Beta-Binomial 层级模型
我们引入一个例子进行阐述,对于多个组别中,我们使用一种药物诱导若干只大鼠使其产生肿瘤,我们需要知道这个药物成功的概率是多少。因此在这里面,我们的组别即是我们层级模型里的异质性考虑因素。
大鼠肿瘤数据的模型
设第 j j j 个实验中有 n j n_j n j 只大鼠,其中 y j y_j y j 只出现肿瘤,肿瘤概率为 ω j \omega_j ω j 。模型为
y j ∣ ω j ∼ Binomial ( n j , ω 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} y j ∣ ω j ω j ∣ α , β ( α , β ) ∼ Binomial ( n j , ω j ) , ∼ Beta ( α , β ) , ∼ p ( α , β ) , j = 1 , … , J .
数据层描述每个实验内部的二项抽样误差,参数层则让不同实验的肿瘤率来自同一个 Beta 总体分布。α \alpha α 与 β \beta β 保留在概率模型中,但直接用它们解释总体位置与组间差异并不方便,因此先改写为总体均值 m m m 和集中度 κ \kappa κ 。
用 m m m 与 κ \kappa κ 表示总体分布
定义
m = α α + β , κ = α + β , α = m κ , β = ( 1 − m ) κ . \begin{aligned}
m&=\frac{\alpha}{\alpha+\beta},
&\kappa&=\alpha+\beta,\\
\alpha&=m\kappa,
&\beta&=(1-m)\kappa.
\end{aligned} m α = α + β α , = mκ , κ β = α + β , = ( 1 − m ) κ .
当 α , β > 0 \alpha,\beta>0 α , β > 0 时,( α , β ) (\alpha,\beta) ( α , β ) 与 ( m , κ ) (m,\kappa) ( m , κ ) 一一对应,其中 0 < m < 1 0<m<1 0 < m < 1 、κ > 0 \kappa>0 κ > 0 。这两个参数的作用可以直接从 Beta 分布的矩看出:
E ( ω j ∣ m , κ ) = m , Var ( ω j ∣ m , κ ) = m ( 1 − m ) κ + 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} E ( ω j ∣ m , κ ) Var ( ω j ∣ m , κ ) = m , = κ + 1 m ( 1 − m ) .
m m m 是总体分布的均值,表示各实验肿瘤率共同围绕的中心;κ \kappa κ 是集中度,决定不同实验的 ω j \omega_j ω j 围绕 m m m 的紧密程度。在 m m m 固定时,κ \kappa κ 越大,组间差异越小;κ \kappa κ 越小,Beta 分布越分散,组间异质性越强。
κ \kappa κ 有时被称为 Beta 先验的有效样本量,因为 α \alpha α 与 β \beta β 可以分别看作成功和失败方向上的先验伪计数,总量为 α + β = κ \alpha+\beta=\kappa α + β = κ 。它并不是真实观测数,只是在共轭更新中以与样本量相同的代数方式决定先验权重。因此,在理论上,将 κ \kappa κ 称为集中度更准确。
联合后验与组参数的条件后验
忽略只依赖观测数据的二项系数,联合后验为
p ( ω , α , β ∣ y ) ∝ p ( y ∣ ω , α , β ) p ( ω , α , β ) ∝ p ( y ∣ ω ) p ( α , β ) p ( ω ∣ α , β ) ∝ p ( α , β ) ∏ j = 1 J Γ ( α + β ) Γ ( α ) Γ ( β ) ω j α − 1 ( 1 − ω j ) β − 1 ω j y j ( 1 − ω j ) n j − y j = p ( α , β ) ∏ j = 1 J Γ ( α + β ) Γ ( α ) Γ ( β ) ω j α + y j − 1 ( 1 − ω j ) β + n j − y j − 1 . \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} p ( ω , α , β ∣ y ) ∝ p ( y ∣ ω , α , β ) p ( ω , α , β ) ∝ p ( y ∣ ω ) p ( α , β ) p ( ω ∣ α , β ) ∝ p ( α , β ) j = 1 ∏ J Γ ( α ) Γ ( β ) Γ ( α + β ) ω j α − 1 ( 1 − ω j ) β − 1 ω j y j ( 1 − ω j ) n j − y j = p ( α , β ) j = 1 ∏ J Γ ( α ) Γ ( β ) Γ ( α + β ) ω j α + y j − 1 ( 1 − ω j ) β + n j − y j − 1 .
因此给定 ( α , β ) (\alpha,\beta) ( α , β ) 后,各组条件后验相互独立(即上面等式的后面一部分):
ω j ∣ α , β , y ∼ Beta ( α + y j , β + n j − y j ) . \omega_j\mid\alpha,\beta,y
\sim\operatorname{Beta}(\alpha+y_j,\beta+n_j-y_j). ω j ∣ α , β , y ∼ Beta ( α + y j , β + n j − y j ) .
条件后验均值可以写成部分汇聚的形式:
E ( ω j ∣ α , β , y j ) = α + y j α + β + n j = n j n j + κ y j n j + κ n j + κ 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} E ( ω j ∣ α , β , y j ) = α + β + n j α + y j = n j + κ n j n j y j + n j + κ κ m .
其中 m&=\frac{\alpha}{\alpha+\beta},&\kappa&=\alpha+\beta,\\
数据比例 y j / n j y_j/n_j y j / n j 的权重为 n j / ( n j + κ ) n_j/(n_j+\kappa) n j / ( n j + κ ) ,总体中心 m m m 的权重为 κ / ( n j + κ ) \kappa/(n_j+\kappa) κ / ( n j + κ ) 。小样本实验向总体中心收缩得更多。换句话说,我们可以认为小样本的实验它对总的中心的权重或者贡献较小。
从组参数积分到超参数边缘后验
超参数 ( α , β ) (\alpha,\beta) ( α , β ) 控制所有组的总体分布。为了只研究这两个超参数,需要将每个组的潜在概率 ω j \omega_j ω j 从联合模型中积分掉。单组积分给出 Beta-Binomial 边缘分布:
利用 Beta 函数 B ( a , b ) = Γ ( a ) Γ ( b ) / Γ ( a + b ) B(a,b)=\Gamma(a)\Gamma(b)/\Gamma(a+b) B ( a , b ) = Γ ( a ) Γ ( b ) /Γ ( a + b ) ,单组边缘分布为
p ( y j ∣ α , β ) = ∫ 0 1 p ( y j ∣ ω j ) p ( ω j ∣ α , β ) d ω j = ( n j y j ) 1 B ( α , β ) ∫ 0 1 ω j α + y j − 1 ( 1 − ω j ) β + n j − y j − 1 d ω j = ( n j y j ) B ( α + y j , β + n j − y j ) B ( α , β ) = ( n j y j ) Γ ( α + β ) Γ ( α ) Γ ( β ) Γ ( α + y j ) Γ ( β + n j − y j ) Γ ( α + β + n j ) . \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} p ( y j ∣ α , β ) = ∫ 0 1 p ( y j ∣ ω j ) p ( ω j ∣ α , β ) d ω j = ( y j n j ) B ( α , β ) 1 ∫ 0 1 ω j α + y j − 1 ( 1 − ω j ) β + n j − y j − 1 d ω j = ( y j n j ) B ( α , β ) B ( α + y j , β + n j − y j ) = ( y j n j ) Γ ( α ) Γ ( β ) Γ ( α + β ) Γ ( α + β + n j ) Γ ( α + y j ) Γ ( β + n j − y j ) .
各组在给定 ( α , β ) (\alpha,\beta) ( α , β ) 后条件独立,因此完整的超参数边缘似然是各组边缘分布的乘积。再乘以超先验,才得到超参数的边缘后验:
p ( y ∣ α , β ) = ∏ j = 1 J ( n j y j ) B ( α + y j , β + n j − y j ) B ( α , β ) , p ( α , β ∣ y ) ∝ p ( α , β ) ∏ j = 1 J B ( α + y j , β + n j − y j ) B ( α , β ) = p ( α , β ) ∏ j = 1 J Γ ( α + β ) Γ ( α ) Γ ( β ) Γ ( α + y j ) Γ ( β + n j − y j ) Γ ( α + β + n j ) . \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} p ( y ∣ α , β ) p ( α , β ∣ y ) = j = 1 ∏ J ( y j n j ) B ( α , β ) B ( α + y j , β + n j − y j ) , ∝ p ( α , β ) j = 1 ∏ J B ( α , β ) B ( α + y j , β + n j − y j ) = p ( α , β ) j = 1 ∏ J Γ ( α ) Γ ( β ) Γ ( α + β ) Γ ( α + β + n j ) Γ ( α + y j ) Γ ( β + n j − y j ) .
其中二项系数只依赖观测数据,在写后验核时已经省去。积分后的似然仍然同时包含总体中心和组间异质性的信息:m m m 决定肿瘤率的总体位置,κ \kappa κ 决定各组能否被一个很窄的 Beta 分布共同解释。现在还有一个问题,在于我们的 p ( α , β ) p(\alpha,\beta) p ( α , β ) , 之前我们可以用均匀分布进行一个非信息先验的假设,但这里,我们不使用这个简单的非信息先验:
超先验、参数变换与 Jacobian
这一部分会涉及三套坐标。( α , β ) (\alpha,\beta) ( α , β ) 是模型坐标,( m , κ ) (m,\kappa) ( m , κ ) 是解释坐标,还有我们后面计算时再使用的
η = logit ( m ) = log m 1 − m = 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} η λ = logit ( m ) = log 1 − m m = log β α , = log κ = log ( α + β ) .
其中 η , λ ∈ R \eta,\lambda\in\mathbb{R} η , λ ∈ R ,适合建立数值积分网格。坐标改变后,同一小块区域所含的概率必须不变,但单位面积对应的密度会改变,Jacobian 就是这两种面积尺度之间的换算因子。
第一步:在可解释参数上定义超先验
为了计算方便,令
s = κ − 1 / 2 s=\kappa^{-1/2} s = κ − 1/2
其中,κ = α + β \kappa= \alpha+\beta κ = α + β , 并在 ( m , s ) (m,s) ( m , s ) 上采用均匀超先验,即 p ( m , s ) ∝ 1 p(m,s)\propto1 p ( m , s ) ∝ 1 。这里的 s s s 是总体分布集中度的反向尺度:κ \kappa κ 越大,s s s 越小。先从 ( m , s ) (m,s) ( m , s ) 变到 ( m , κ ) (m,\kappa) ( m , κ ) ,再变到 ( α , β ) (\alpha,\beta) ( α , β ) ,两次 Jacobian 为
∣ ∂ s ∂ κ ∣ = 1 2 κ − 3 / 2 , p ( m , κ ) = p ( m , s ) ∣ ∂ s ∂ κ ∣ ∝ κ − 3 / 2 , ∣ ∂ ( α , β ) ∂ ( m , κ ) ∣ = ∣ κ m − κ 1 − m ∣ = κ , ∣ ∂ ( 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} ∂ κ ∂ s p ( m , κ ) ∂ ( m , κ ) ∂ ( α , β ) ∂ ( α , β ) ∂ ( m , κ ) p ( α , β ) = 2 1 κ − 3/2 , = p ( m , s ) ∂ κ ∂ s ∝ κ − 3/2 , = κ − κ m 1 − m = κ , = κ − 1 , = p ( m , κ ) ∂ ( α , β ) ∂ ( m , κ ) ∝ κ − 3/2 κ − 1 = ( α + β ) − 5/2 .
这样得到的超先验是
p ( α , β ) ∝ ( α + β ) − 5 / 2 . p(\alpha,\beta)\propto(\alpha+\beta)^{-5/2}. p ( α , β ) ∝ ( α + β ) − 5/2 .
p ( m , s ) ∝ 1 p(m,s)\propto1 p ( m , s ) ∝ 1 在 s > 0 s>0 s > 0 上是non-proper超先验。我们选择 κ − 5 / 2 \kappa^{-5/2} κ − 5/2 的尾部衰减,正是为了可以得到一个proper的后验分布。相反,若直接在 ( η , λ ) (\eta,\lambda) ( η , λ ) 上采用无限范围的均匀先验,后验在 κ → ∞ \kappa\to\infty κ → ∞ 时不可积。实际分析也可以改用proper、weak informative的超先验,并进行后验分布是否proper的检查。
第二步:把密度变到计算坐标
由 m = logit − 1 ( η ) m=\operatorname{logit}^{-1}(\eta) m = logit − 1 ( η ) 、κ = exp ( λ ) \kappa=\exp(\lambda) κ = exp ( λ ) ,从 ( η , λ ) (\eta,\lambda) ( η , λ ) 到 ( α , β ) (\alpha,\beta) ( α , β ) 的 Jacobian 可以沿着 ( η , λ ) → ( m , κ ) → ( α , β ) (\eta,\lambda)\to(m,\kappa)\to(\alpha,\beta) ( η , λ ) → ( m , κ ) → ( α , β ) 分解:
∣ ∂ ( m , κ ) ∂ ( η , λ ) ∣ = m ( 1 − m ) κ , ∣ ∂ ( α , β ) ∂ ( η , λ ) ∣ = ∣ ∂ ( α , β ) ∂ ( m , κ ) ∣ ∣ ∂ ( m , κ ) ∂ ( η , λ ) ∣ = κ ⋅ m ( 1 − m ) κ = α β . \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} ∂ ( η , λ ) ∂ ( m , κ ) ∂ ( η , λ ) ∂ ( α , β ) = m ( 1 − m ) κ , = ∂ ( m , κ ) ∂ ( α , β ) ∂ ( η , λ ) ∂ ( m , κ ) = κ ⋅ m ( 1 − m ) κ = α β .
因此,计算坐标上的超先验和边缘后验核分别为
p ( η , λ ) ∝ α β ( α + β ) − 5 / 2 , p ( η , λ ∣ y ) ∝ α β ( α + β ) − 5 / 2 ∏ j = 1 J B ( α + y j , β + n j − y j ) 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} p ( η , λ ) p ( η , λ ∣ y ) ∝ α β ( α + β ) − 5/2 , ∝ α β ( α + β ) − 5/2 j = 1 ∏ J B ( α , β ) B ( α + y j , β + n j − y j ) ,
其中
α = m κ , β = ( 1 − m ) κ , m = logit − 1 ( η ) , κ = exp ( λ ) . \alpha=m\kappa,\qquad
\beta=(1-m)\kappa,\qquad
m=\operatorname{logit}^{-1}(\eta),\qquad
\kappa=\exp(\lambda). α = mκ , β = ( 1 − m ) κ , m = logit − 1 ( η ) , κ = exp ( λ ) .
后验模拟与收缩
共轭模型的后验抽样可以分两步完成:
( α ( s ) , β ( s ) ) ∼ p ( α , β ∣ y ) , ω j ( s ) ∼ Beta ( α ( s ) + y j , β ( s ) + n j − y j ) , 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} ( α ( s ) , β ( s ) ) ω j ( s ) ∼ p ( α , β ∣ y ) , ∼ Beta ( α ( s ) + y j , β ( s ) + n j − y j ) , j = 1 , … , J .
对 ( α , β ) (\alpha,\beta) ( α , β ) 的后验不确定性进行平均,会使 ω j \omega_j ω j 的边缘后验比固定超参数的经验贝叶斯近似更宽。后者只使用 ( α ^ , β ^ ) (\widehat\alpha,\widehat\beta) ( α , β ) ,遗漏了总体分布估计误差。
图中的 45 ∘ 45^\circ 4 5 ∘ 线对应不汇聚估计 y j / n j y_j/n_j y j / n j 。后验中位数整体向总体肿瘤率移动,数据较少的实验区间更宽,收缩也更明显。
正态层级模型
正态层级模型是部分汇聚这种方式更直接的例子,也是许多 Meta 分析和随机效应模型的基础。
数据层与参数层
设第 j j j 个组的均值统计量为 y ˉ ⋅ j \bar y_{\cdot j} y ˉ ⋅ j ,其已知抽样方差为 σ j 2 \sigma_j^2 σ j 2 。模型为
y ˉ ⋅ j ∣ ω j ∼ N ( ω j , σ j 2 ) , ω 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} y ˉ ⋅ j ∣ ω j ω j ∣ μ , τ p ( μ , τ ) ∼ N ( ω j , σ j 2 ) , ∼ N ( μ , τ 2 ) , = p ( μ ∣ τ ) p ( τ ) ∝ p ( τ ) .
其中,第三条里,我们设立一个非信息均匀超先验分布给 p ( μ ∣ τ ) p(\mu|\tau) p ( μ ∣ τ ) , 则认为是一个常数
μ \mu μ 是组参数总体的中心,τ \tau τ 是组间标准差。σ j \sigma_j σ j 描述第 j j j 组估计的抽样误差,τ \tau τ 描述真实组参数之间的异质性,两者不能混为一项。
联合后验核为
p ( ω , μ , τ ∣ y ) ∝ p ( ω , μ , τ ) p ( y ∣ ω , μ , τ ) = p ( ω ∣ μ , τ ) p ( μ , τ ) p ( y ∣ ω , μ , τ ) = p ( ω ∣ μ , τ ) p ( μ , τ ) p ( y ∣ ω ) ∝ p ( μ , τ ) ∏ j = 1 J N ( ω j ∣ μ , τ 2 ) ∏ j = 1 J N ( y ˉ ⋅ j ∣ ω j , σ j 2 ) . \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} p ( ω , μ , τ ∣ y ) ∝ p ( ω , μ , τ ) p ( y ∣ ω , μ , τ ) = p ( ω ∣ μ , τ ) p ( μ , τ ) p ( y ∣ ω , μ , τ ) = p ( ω ∣ μ , τ ) p ( μ , τ ) p ( y ∣ ω ) ∝ p ( μ , τ ) j = 1 ∏ J N ( ω j ∣ μ , τ 2 ) j = 1 ∏ J N ( y ˉ ⋅ j ∣ ω j , σ j 2 ) .
给定超参数时的组参数后验
在给定 ( μ , τ ) (\mu,\tau) ( μ , τ ) 后,ω j \omega_j ω j 的后验仍为正态:
ω j ∣ μ , τ , y ∼ N ( ω ^ j , V j ) , \omega_j\mid\mu,\tau,y
\sim\mathcal N(\widehat\omega_j,V_j), ω j ∣ μ , τ , y ∼ N ( ω j , V j ) ,
其中
ω ^ j = y ˉ ⋅ j / σ j 2 + μ / τ 2 1 / σ j 2 + 1 / τ 2 = τ 2 σ j 2 + τ 2 y ˉ ⋅ j + σ j 2 σ j 2 + τ 2 μ , V j = ( 1 σ j 2 + 1 τ 2 ) − 1 = σ j 2 τ 2 σ j 2 + τ 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 V j = 1/ σ j 2 + 1/ τ 2 y ˉ ⋅ j / σ j 2 + μ / τ 2 = σ j 2 + τ 2 τ 2 y ˉ ⋅ j + σ j 2 + τ 2 σ j 2 μ , = ( σ j 2 1 + τ 2 1 ) − 1 = σ j 2 + τ 2 σ j 2 τ 2 .
这一点和我们在多参数模型里提到的很类似,这一结果可由配方直接得到。只保留与 ω j \omega_j ω j 有关的项:
log p ( ω j ∣ μ , τ , y j ) ≐ − ( y ˉ ⋅ j − ω j ) 2 2 σ j 2 − ( ω j − μ ) 2 2 τ 2 = − 1 2 ( 1 σ j 2 + 1 τ 2 ) [ ω j − y ˉ ⋅ j / σ j 2 + μ / τ 2 1 / σ j 2 + 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} log p ( ω j ∣ μ , τ , y j ) ≐ − 2 σ j 2 ( y ˉ ⋅ j − ω j ) 2 − 2 τ 2 ( ω j − μ ) 2 = − 2 1 ( σ j 2 1 + τ 2 1 ) [ ω j − 1/ σ j 2 + 1/ τ 2 y ˉ ⋅ j / σ j 2 + μ / τ 2 ] 2 + C ,
其中 C C C 与 ω j \omega_j ω j 无关。平方项的中心给出后验均值,二次项系数的倒数给出后验方差。
定义数据权重
λ j = τ 2 σ j 2 + τ 2 , \lambda_j=\frac{\tau^2}{\sigma_j^2+\tau^2}, λ j = σ j 2 + τ 2 τ 2 ,
则
ω ^ j = λ j y ˉ ⋅ j + ( 1 − λ j ) μ . \widehat\omega_j=\lambda_j\bar y_{\cdot j}+(1-\lambda_j)\mu. ω j = λ j y ˉ ⋅ j + ( 1 − λ j ) μ .
当 σ j \sigma_j σ j 小时,本组估计精确,λ j \lambda_j λ j 接近 1;当 τ \tau τ 小时,组参数更接近共同中心,λ j \lambda_j λ j 接近 0。这给出了部分汇聚的精确权重。
超参数后验
因为
y ˉ ⋅ j = ω j + ε j , ω j ∼ N ( μ , τ 2 ) , ε j ∼ N ( 0 , σ j 2 ) , \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 = ω j + ε j , ω j ∼ N ( μ , τ 2 ) , ε j ∼ N ( 0 , σ j 2 ) ,
所以卷积后
y ˉ ⋅ j ∣ μ , τ ∼ N ( μ , σ j 2 + τ 2 ) . \bar y_{\cdot j}\mid\mu,\tau
\sim\mathcal N(\mu,\sigma_j^2+\tau^2). y ˉ ⋅ j ∣ μ , τ ∼ N ( μ , σ j 2 + τ 2 ) .
也可以用矩母函数或直接积分验证:
p ( y ˉ ⋅ j ∣ μ , τ ) = ∫ p ( y ˉ ⋅ j ∣ ω j ) p ( ω j ∣ μ , τ ) d ω j = ∫ N ( y ˉ ⋅ j ∣ ω j , σ j 2 ) N ( ω j ∣ μ , τ 2 ) d ω j = N ( y ˉ ⋅ j ∣ μ , σ j 2 + τ 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} p ( y ˉ ⋅ j ∣ μ , τ ) = ∫ p ( y ˉ ⋅ j ∣ ω j ) p ( ω j ∣ μ , τ ) d ω j = ∫ N ( y ˉ ⋅ j ∣ ω j , σ j 2 ) N ( ω j ∣ μ , τ 2 ) d ω j = N ( y ˉ ⋅ j ∣ μ , σ j 2 + τ 2 ) .
σ j 2 \sigma_j^2 σ j 2 与 τ 2 \tau^2 τ 2 相加,是因为前者来自观测误差,后者来自真实组参数的离散,两层变异相互独立。
因此联合超参数后验为
p ( μ , τ ∣ y ) ∝ p ( μ , τ ) ∏ j = 1 J N ( y ˉ ⋅ j ∣ μ , σ j 2 + τ 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). p ( μ , τ ∣ y ) ∝ p ( μ , τ ) j = 1 ∏ J N ( y ˉ ⋅ j ∣ μ , σ j 2 + τ 2 ) .
在给定 τ \tau τ 并令 p ( μ ∣ τ ) ∝ 1 p(\mu\mid\tau)\propto1 p ( μ ∣ τ ) ∝ 1 ,即均匀分布后,有
μ ∣ τ , y ∼ N ( μ ^ , V μ ) , \mu\mid\tau,y\sim\mathcal N(\widehat\mu,V_\mu), μ ∣ τ , y ∼ N ( μ , V μ ) ,
其中
μ ^ ( τ ) = ∑ j = 1 J y ˉ ⋅ j / ( σ j 2 + τ 2 ) ∑ j = 1 J 1 / ( σ j 2 + τ 2 ) , V μ ( τ ) = { ∑ j = 1 J 1 σ j 2 + τ 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} μ ( τ ) V μ ( τ ) = j = 1 ∑ J 1/ ( σ j 2 + τ 2 ) j = 1 ∑ J y ˉ ⋅ j / ( σ j 2 + τ 2 ) , = { j = 1 ∑ J σ j 2 + τ 2 1 } − 1 .
当我们进一步积分掉 μ \mu μ ,得到 τ \tau τ 的一维边缘后验:
p ( τ ∣ y ) ∝ p ( τ ) V μ ( τ ) 1 / 2 ∏ j = 1 J ( σ j 2 + τ 2 ) − 1 / 2 exp { − 1 2 ∑ j = 1 J ( y ˉ ⋅ j − μ ^ ( τ ) ) 2 σ j 2 + τ 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\}. p ( τ ∣ y ) ∝ p ( τ ) V μ ( τ ) 1/2 j = 1 ∏ J ( σ j 2 + τ 2 ) − 1/2 exp { − 2 1 j = 1 ∑ J σ j 2 + τ 2 ( y ˉ ⋅ j − μ ( τ ) ) 2 } .
上式中的 V μ 1 / 2 V_\mu^{1/2} V μ 1/2 来自对共同均值的高斯积分。把边缘后验写成二次型后,
∑ j = 1 J ( y ˉ ⋅ j − μ ) 2 σ j 2 + τ 2 = ∑ j = 1 J ( y ˉ ⋅ j − μ ^ ) 2 σ j 2 + τ 2 + ( μ − μ ^ ) 2 V μ , ∫ − ∞ ∞ exp [ − ( μ − μ ^ ) 2 2 V μ ] 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} j = 1 ∑ J σ j 2 + τ 2 ( y ˉ ⋅ j − μ ) 2 = j = 1 ∑ J σ j 2 + τ 2 ( y ˉ ⋅ j − μ ) 2 + V μ ( μ − μ ) 2 , ∫ − ∞ ∞ exp [ − 2 V μ ( μ − μ ) 2 ] d μ = 2 π V μ .
与 τ \tau τ 无关的 2 π \sqrt{2\pi} 2 π 可以略去,而 V μ V_\mu V μ 依赖 τ \tau τ ,必须保留。
后验模拟
根据上面流程的反向推理,我们可以得到一个具体的后验模拟抽样流程,先抽取超参数 τ \tau τ 的分布,然后抽取超参数 μ \mu μ 的分布,最后得到了联合超参数的分布后,抽取组参数 ω \omega ω 的分布:
τ ( s ) ∼ p ( τ ∣ y ) , μ ( s ) ∼ p ( μ ∣ τ ( s ) , y ) , ω j ( s ) ∼ p ( ω j ∣ μ ( s ) , τ ( s ) , y j ) . \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} τ ( s ) μ ( s ) ω j ( s ) ∼ p ( τ ∣ y ) , ∼ p ( μ ∣ τ ( s ) , y ) , ∼ p ( ω j ∣ μ ( s ) , τ ( s ) , y j ) .
低维情况下可以在 τ \tau τ 网格上计算归一化密度并用逆 CDF 抽样。通用概率编程则直接在联合参数空间中用 HMC 抽样。两种方法应给出相容的后验结果。
Example
八校数据来自八个独立的 SAT 辅导实验。每个学校提供估计效应 y j y_j y j 及近似已知的标准误 σ j \sigma_j σ j :
学校
y j y_j y j
σ j \sigma_j σ 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,但其他学校的数据削弱了这种解释。完全汇聚分析则把八个真实效应强行设为相等,忽略了学校之间可能存在的差异。正态层级模型采用
y j ∣ ω j ∼ N ( ω j , σ j 2 ) , ω 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} y j ∣ ω j ω j ∣ μ , τ ∼ N ( ω j , σ j 2 ) , ∼ N ( μ , τ 2 ) .
对固定的 τ \tau τ ,将 μ \mu μ 的后验不确定性也积分进去,可得
E ( ω j ∣ τ , y ) = λ j y j + ( 1 − λ j ) μ ^ ( τ ) , Var ( ω j ∣ τ , y ) = V j + ( 1 − λ j ) 2 V μ ( τ ) , \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} E ( ω j ∣ τ , y ) Var ( ω j ∣ τ , y ) = λ j y j + ( 1 − λ j ) μ ( τ ) , = V j + ( 1 − λ j ) 2 V μ ( τ ) ,
其中
λ j = τ 2 σ j 2 + τ 2 , V j = σ j 2 τ 2 σ j 2 + τ 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}. λ j = σ j 2 + τ 2 τ 2 , V j = σ j 2 + τ 2 σ j 2 τ 2 .
第二个方差公式来自全方差公式。给定 ( μ , τ ) (\mu,\tau) ( μ , τ ) 的条件方差是 V j V_j V j ,条件均值中 μ \mu μ 的系数是 1 − λ j 1-\lambda_j 1 − λ j ,因此
Var ( ω j ∣ τ , y ) = E [ Var ( ω j ∣ μ , τ , y ) ∣ τ , y ] + Var [ E ( ω j ∣ μ , τ , y ) ∣ τ , y ] = V j + ( 1 − λ j ) 2 V μ ( τ ) . \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} Var ( ω j ∣ τ , y ) = E [ Var ( ω j ∣ μ , τ , y ) ∣ τ , y ] + Var [ E ( ω j ∣ μ , τ , y ) ∣ τ , y ] = V j + ( 1 − λ j ) 2 V μ ( τ ) .
当 τ = 0 \tau=0 τ = 0 时,八个学校完全汇聚;当 τ → ∞ \tau\to\infty τ → ∞ 时,估计逐渐接近不汇聚结果。数据中 p ( τ ∣ y ) p(\tau\mid y) p ( τ ∣ y ) 在零附近较高,但对正值仍保留明显质量。仅把 τ \tau τ 固定在后验众数零会产生过强汇聚,因为它把关于异质性的全部不确定性删除了。
层级模型还能直接计算复合后验量,例如最大效应 max j ω j \max_j\omega_j max j ω j 、学校 A 的效应超过学校 C 的概率,以及任一学校效应超过某个实际阈值的概率。这些量只需在每次联合后验抽样中计算相应函数。
极端观测向总体中心收缩能够缓和选择最大值带来的偏差。这项调整已经包含在可交换层级模型的联合后验中,因注意在结果报告时,无须再把它作为传统多重比较校正附加到结果上。
两类后验预测
层级模型需要区分已有组的新观测与新组的新观测。
已有组的新观测
对已有组 j j j ,未来观测共享已经学习过的 ω j \omega_j ω j :
p ( y ~ j ∣ y ) = ∫ p ( y ~ j ∣ ω j ) p ( ω j , ϕ ∣ y ) d ω j d ϕ . 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. p ( y j ∣ y ) = ∫ p ( y j ∣ ω j ) p ( ω j , ϕ ∣ y ) d ω j d ϕ .
在正态模型中,若新观测方差为 σ ~ j 2 \widetilde\sigma_j^2 σ j 2 ,则
Var ( y ~ j ∣ y ) = σ ~ j 2 + Var ( ω j ∣ y ) . \operatorname{Var}(\widetilde y_j\mid y)
=\widetilde\sigma_j^2+\operatorname{Var}(\omega_j\mid y). Var ( y j ∣ y ) = σ j 2 + Var ( ω j ∣ 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} ϕ ( s ) ω ( s ) y ( s ) ∼ p ( ϕ ∣ y ) , ∼ p ( ω ∣ ϕ ( s ) ) , ∼ p ( y ∣ ω ( s ) ) .
正态层级模型中,新组真实效应的后验预测方差为
Var ( ω ~ ∣ y ) = E ( τ 2 ∣ y ) + Var ( μ ∣ y ) . \operatorname{Var}(\widetilde\omega\mid y)
=\mathbb E(\tau^2\mid y)+\operatorname{Var}(\mu\mid y). Var ( ω ∣ y ) = E ( τ 2 ∣ y ) + Var ( μ ∣ y ) .
新组预测比总体均值 μ \mu μ 的后验更宽,因为它额外包含组间异质性。若还要预测新组的观测统计量,则再加入该统计量的抽样方差。
报告总体平均效应并不能替代新组效应预测。前者描述总体中心的不确定性,后者描述一个具体但尚未观测的可交换组可能落在何处。应用决策通常更关心后者。
设第 j j j 个临床试验有治疗组与对照组。令 y 1 j y_{1j} y 1 j 、n 1 j n_{1j} n 1 j 为治疗组事件数和总人数,y 0 j y_{0j} y 0 j 、n 0 j n_{0j} n 0 j 为对照组对应数量。对数优势比的估计为
y j = log y 1 j n 1 j − y 1 j − log y 0 j n 0 j − y 0 j , y_j
=\log\frac{y_{1j}}{n_{1j}-y_{1j}}
-\log\frac{y_{0j}}{n_{0j}-y_{0j}}, y j = log n 1 j − y 1 j y 1 j − log n 0 j − y 0 j y 0 j ,
其大样本抽样方差近似为
σ j 2 ≈ 1 y 1 j + 1 n 1 j − y 1 j + 1 y 0 j + 1 n 0 j − y 0 j . \sigma_j^2
\approx\frac1{y_{1j}}+\frac1{n_{1j}-y_{1j}}
+\frac1{y_{0j}}+\frac1{n_{0j}-y_{0j}}. σ j 2 ≈ y 1 j 1 + n 1 j − y 1 j 1 + y 0 j 1 + n 0 j − y 0 j 1 .
于是可以使用与八校模型相同的正态层级结构:
y j ∣ ω j ∼ N ( ω j , σ j 2 ) , ω 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} y j ∣ ω j ω j ∣ μ , τ ∼ N ( ω j , σ j 2 ) , ∼ N ( μ , τ 2 ) .
μ \mu μ 是可交换试验总体的平均对数优势比,τ \tau τ 描述研究间异质性,ω j \omega_j ω j 是第 j j j 个已观测研究的真实效应。新研究效应 ω ~ \widetilde\omega ω 的后验预测比 μ \mu μ 的后验更宽。
某个 2 × 2 2\times2 2 × 2 表存在零单元格时,上述对数优势比与方差近似失效。简单连续性校正会影响小样本结果。更稳妥的模型直接使用二项似然,并在 logit 尺度上建立层级结构。
可交换性在 Meta 分析中是一项实质性假设。若研究在剂量、结局定义、患者构成或偏倚风险上存在系统差异,这些变量应进入组层回归,或者先划分为部分可交换的研究集合。研究筛选机制也会影响总体解释,不能由层级模型自动修复。
组间标准差 τ \tau τ 的先验
在上面的例子里,我们了解到了 τ \tau τ 决定部分汇聚强度。当组数较少或数据支持 τ \tau τ 接近零时,即完全汇聚时,先验会明显影响后验。但目前为止,我们还没有说过我们的 τ \tau τ 应该选用什么先验,在这里,我们进一步讨论 τ \tau τ 这个参数,因为其代表了组间标准差,而其先验的选择很重要。在我们之前提到非信息先验的选择时,我们通常会在对数尺度或者一般尺度上使用均匀分布,但在这里我们需要来看看设立这些先验都分别会有什么问题。
对数均匀先验的问题
在 log τ \log\tau log τ 上均匀等价于
p ( τ ) ∝ 1 τ . p(\tau)\propto\frac1\tau. p ( τ ) ∝ τ 1 .
当 τ → 0 \tau\to0 τ → 0 时,正态层级模型的边缘似然趋近有限的非零值。因此后验在零附近的积分包含
∫ 0 ε c τ d τ = ∞ , \int_0^\varepsilon\frac{c}{\tau}\,d\tau=\infty, ∫ 0 ε τ c d τ = ∞ ,
后验不是proper的。数据无法完全排除组间方差为零,所以不能在该区域放入无限先验质量。
在 τ \tau τ 上均匀
p ( τ ) ∝ 1 p(\tau)\propto1 p ( τ ) ∝ 1 在零附近可积。对正态层级模型,当 τ → ∞ \tau\to\infty τ → ∞ 时,
p ( τ ∣ y ) ≍ τ − ( J − 1 ) . p(\tau\mid y)\asymp\tau^{-(J-1)}. p ( τ ∣ y ) ≍ τ − ( J − 1 ) .
但需要注意的是,只有 J > 2 J>2 J > 2 时右尾积分才有限。
由 σ j 2 + τ 2 ≍ τ 2 \sigma_j^2+\tau^2\asymp\tau^2 σ j 2 + τ 2 ≍ τ 2 可得乘积项为 τ − J \tau^{-J} τ − J ;同时
V μ ( τ ) = { ∑ j = 1 J ( σ j 2 + τ 2 ) − 1 } − 1 ≍ τ 2 J , V μ ( τ ) 1 / 2 ∏ j = 1 J ( σ j 2 + τ 2 ) − 1 / 2 ≍ τ ⋅ τ − J = τ − ( J − 1 ) . \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} V μ ( τ ) V μ ( τ ) 1/2 j = 1 ∏ J ( σ j 2 + τ 2 ) − 1/2 = { j = 1 ∑ J ( σ j 2 + τ 2 ) − 1 } − 1 ≍ J τ 2 , ≍ τ ⋅ τ − J = τ − ( J − 1 ) .
指数项在该极限下趋近常数,所以尾部阶数由上式决定。
在 τ 2 \tau^2 τ 2 上均匀意味着 p ( τ ) ∝ τ p(\tau)\propto\tau p ( τ ) ∝ τ ,右尾更厚,需要 J > 3 J>3 J > 3 才能得到正常后验,而且更容易产生过大的异质性估计。
小参数 inverse-gamma 先验
对 τ 2 \tau^2 τ 2 使用 Inv-Gamma ( ϵ , ϵ ) \operatorname{Inv\text{-}Gamma}(\epsilon,\epsilon) Inv - Gamma ( ϵ , ϵ ) 看似接近无信息,但当 ϵ → 0 \epsilon\to0 ϵ → 0 时不存在稳定的正常后验极限。只要似然在 τ = 0 \tau=0 τ = 0 附近仍有质量,后验就可能对 ϵ \epsilon ϵ 极为敏感。把 ϵ \epsilon ϵ 从 0.01 0.01 0.01 改为 0.001 0.001 0.001 并不是单纯地减少先验信息,它会改变近零区域的形状。
half-Cauchy 与 half-t t t
half-Cauchy 先验的密度为
p ( τ ) = 2 π A { 1 + ( τ / A ) 2 } , τ > 0. p(\tau)=\frac{2}{\pi A\{1+(\tau/A)^2\}},
\qquad \tau>0. p ( τ ) = π A { 1 + ( τ / A ) 2 } 2 , τ > 0.
它在零附近有限,右尾较厚,并由尺度 A A A 表达异质性的合理数量级。更一般的 half-t t t 先验也常用于组层标准差。尺度不应脱离结果变量的单位设置。
八校数据中,在 τ \tau τ 上均匀的先验仍能得到可用后验,而 inverse-gamma 先验明显约束了近零区域。只保留三个学校时,均匀先验产生很长的右尾;具有有限尺度的 half-Cauchy 去除了缺乏实际意义的超大异质性,同时保留了高似然区域。
弱信息先验仍然是模型的一部分。拟合后应比较先验与后验、检查不同合理尺度下的敏感性,并把实际不可接受的 τ \tau τ 范围在拟合前表达出来。用极宽的有限区间替代不正常先验,可能也只是把问题推到一个更遥远的边界,仍然没有解决问题。
使用 pybrms 拟合层级模型
pybrms 是对 R 包 brms 的 Python 接口。其公开版本停留在 0.0.33,发布于 2020 年,内部依赖 rpy2、brms 和旧版 PyStan。
例子里的正态层级模型
brms 公式中的 se(se) 表示每个效应估计有已知标准误且不另加残差尺度,(1 | school) 表示学校层随机截距。它对应
y j ∣ ω j ∼ N ( ω j , σ j 2 ) , ω j = μ + u j , u j ∼ N ( 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). y j ∣ ω j ∼ N ( ω j , σ j 2 ) , ω j = μ + u j , u j ∼ N ( 0 , τ 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-t t t 先验。尺度 25 继承了八校问题中以 SAT 分数为单位的量级,不应直接搬到其他结果变量。
二项分布层级模型
pybrms 中最直接的多组二项模型使用 logit-normal 组层分布:
y j ∣ ω j ∼ Binomial ( n j , ω j ) , logit ( ω j ) = μ + u j , u j ∼ N ( 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} y j ∣ ω j logit ( ω j ) u j ∼ Binomial ( n j , ω j ) , = μ + u j , ∼ N ( 0 , τ 2 ) .
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)
计算结果的检查
在实际应用里,我们构建层级模型后对其进行采样需要检查下面几点:
检查所有总体参数、组层标准差和代表性组参数的 R ^ \widehat R R 与有效样本量。
检查发散、最大树深和能量诊断;漏斗形后验在小 τ \tau τ 时尤其容易暴露参数化问题。
比较中心化与非中心化参数化。数据较弱且组数少时,非中心化通常更稳定 。
做先验预测,确认 μ \mu μ 、τ \tau τ 和观测尺度上的先验能够生成合理数据。
做后验预测,分别检查组内拟合、组间离散和极端组。
对 τ \tau τ 的先验尺度进行敏感性分析,并报告它对收缩和新组预测的影响。