3. 贝叶斯建模与后验预测分布

在概率校准的语境下,贝叶斯建模并不是为了得到一个“最优点估计”,而是要把模型参数的不确定性完整地保留下来,并把它传递到最终的预测概率上。校准所关心的核心问题是:模型输出的概率是否与真实频率一致。要回答这个问题,我们需要一条从先验、似然到后验、再到后验预测分布的完整概率链条。本节围绕这条链条展开,说明每一步在做什么、实际怎么落地,以及它如何为后续的校准与不确定性评估提供概率输出基础。

先验选择:把领域知识写成分布

先验 p(θ) 表达的是在看到数据之前,我们对参数 θ 的信念。先验不是可有可无的装饰,它直接影响小样本下的后验形状,也影响后验预测分布的尾部行为。实际建模中常见的做法有三类:一是弱信息先验,例如对 logistic 回归的系数取标准正态 N(0, 2²),既允许较大取值又对极端值施加温和惩罚;二是基于历史数据的经验先验,例如用上一周期同类模型的校准斜率作为先验均值;三是带约束的结构先验,例如校准温度参数 T 取正值,可用 HalfNormal(1) 或 LogNormal(0, 0.5) 约束。

选择先验时要问三个问题:参数的量纲和合理范围是什么?先验是否会在数据稀少时主导后验?先验是否可被后续数据推翻(即先验预测是否覆盖真实数据)?一个实用的检查是先验预测检查:只从先验采样参数,再生成模拟观测,看模拟数据是否落在合理范围内。如果先验预测产生的数据明显不合理,说明先验过强或设定有误,应先修正再进入似然构建。

似然构建:让数据决定参数

似然 p(y|θ) 描述在给定参数下观测到当前数据的概率。校准任务中最常见的是二分类概率输出,此时似然取伯努利形式:对样本 i,若真实标签为 yi∈{0,1},模型给出的原始分数经参数化变换后得到概率 pi(θ),则似然为 ∏ piyi(1−pi)1−yi。若采用温度缩放校准,则 pi = σ(zi/T),其中 zi 是原始 logit,T 是待估参数;若采用 Platt 缩放,则 pi = σ(a·zi+b),参数为 (a, b)。

似然构建的关键是把“模型输出”与“概率”之间的映射关系显式写出来,并保证参数可辨识。例如在温度缩放中,T 必须为正,否则概率方向会反转;在 Platt 缩放中,a 的符号决定了分数与概率是否同向。构建完成后,建议先用最大似然或矩估计给出一组粗略初值,作为后续采样的起点参考,但不要把它当作最终结果——贝叶斯推断的价值在于保留整个后验分布。

后验采样:从分布而不是从点出发

后验 p(θ|y) ∝ p(y|θ)p(θ) 通常没有解析形式,需要数值采样。工程上最常用的是 MCMC(如 NUTS/HMC)或变分推断。以 PyMC 为例,一个温度缩放校准模型可以写成:

import pymc as pm
import numpy as np

# z: 原始 logit, y: 真实标签 (0/1)
with pm.Model() as calib:
    T = pm.HalfNormal("T", sigma=1.0)          # 温度参数,正约束
    p = pm.math.sigmoid(z / T)                  # 校准后概率
    pm.Bernoulli("obs", p=p, observed=y)        # 伯努利似然
    idata = pm.sample(draws=2000, tune=1000,
                      chains=4, target_accept=0.9)

采样后不要只看均值。应检查:R̂ 是否接近 1.0(一般要求小于 1.01)、有效样本量 ESS 是否足够、迹图是否充分混合、是否存在发散转移。若出现发散,可提高 target_accept 或对参数做非中心化重参数化。得到的 idata 中包含 T 的完整后验样本,这就是后续所有概率输出的不确定性来源。

后验预测分布:把参数不确定性传到预测上

后验预测分布是校准输出的最终形态:p(ỹ|x, y) = ∫ p(ỹ|θ)p(θ|y)dθ。它的含义是,对新样本 x,在考虑了参数不确定性之后,预测标签为 1 的概率分布。实现上就是对每个后验样本 θ(s) 计算 p(ỹ|θ(s)),得到一组预测概率,这组样本的分布即后验预测分布。其均值可作为点预测概率,其分位数(如 5% 与 95%)给出预测的概率区间。

这一步对校准至关重要:传统点估计校准只给一个概率值,无法说明“这个概率有多可信”;而后验预测分布同时给出概率的中心和宽度。若某样本的预测概率区间很宽,说明模型对该样本的校准信心不足,下游决策应更保守。实际输出时,可对每个样本报告后验预测均值、标准差和 90% 区间,作为校准与不确定性评估的统一输入。

先验 p(θ) T ~ HalfNormal(1) a,b ~ N(0,2²) 先验预测检查 似然 p(y|θ) p = σ(z / T) y ~ Bernoulli(p) 参数可辨识性检查 后验 p(θ|y) MCMC / NUTS 采样 R̂ < 1.01, ESS 足够 迹图与发散诊断 后验预测 p(ỹ|x,y) 均值 + 区间 概率宽度 后验样本展开为预测概率分布(示例:单个样本 x 的校准输出) θ⁽¹⁾ θ⁽²⁾ θ⁽³⁾ θ⁽⁴⁾ θ⁽⁵⁾ p(ỹ|θ⁽ˢ⁾) 0.0 0.5 1.0 后验预测均值 90% 预测区间

从概率输出到校准基础

把上述链条走通之后,我们得到的不是单个校准概率,而是一组带不确定性的概率输出。这为校准提供了三样东西:第一,后验预测均值可作为校准后的点概率,用于可靠性图与 ECE 计算;第二,后验预测区间可用于识别“高不确定样本”,在可靠性图中单独标注或分层评估;第三,参数后验本身可用于比较不同校准方法(如温度缩放与 Platt 缩放)在同一数据下的后验证据或信息准则。需要强调的是,后验预测分布反映的是参数不确定性,它并不自动包含模型结构错误带来的不确定性;若怀疑模型形式不当,应通过后验预测检查(如对模拟数据的覆盖率检验)来发现,而不是指望采样自动修正。

实操建议:先做先验预测检查,再做后验采样诊断,最后才看后验预测分布。顺序颠倒容易把采样问题误判为校准问题。对每个样本同时保存后验预测均值、标准差和 90% 区间,后续校准评估可直接复用,避免重复采样。

至此,先验、似然、后验与后验预测分布构成了一条完整的概率输出链。它让校准从“给一个数”升级为“给一个分布”,既保留了概率的中心趋势,也保留了可信程度,为后续的校准度量与不确定性评估打下了可复现、可诊断的基础。