---
title: "用秩统计和覆盖率检查后验是否校准"
description: "把真值放进后验抽样里排名次。名次均匀说明校准；鼓包、凹槽和斜坡各对应一种毛病。"
canonical_url: "https://sandboxphysics.com/zh/stories/simulation-based-inference/rank-tests-for-posterior-calibration/"
language: "zh-CN"
page_type: "story"
alternate_languages:
  en: "https://sandboxphysics.com/stories/simulation-based-inference/rank-tests-for-posterior-calibration/"
last_modified: "2026-11-12"
---

[从模拟里学到的后验能不能信](https://sandboxphysics.com/zh/stories/simulation-based-inference/)

# 用秩统计和覆盖率检查后验是否校准

Sandbox Physics · 2026-11-12

从先验里抽一个真值，生成数据，再从后验里抽样，数一数有几个样本比真值小。后验精确时，这个数（叫作秩）取每个可能值的机会都一样。把几千次模拟的秩画成直方图，应该是平的。中间鼓包说明后验太宽，两头翘起成凹槽说明太窄，整体倾斜说明后验偏到了一边。

本章接着 [后验分布与 90% 可信区域到底保证什么](https://sandboxphysics.com/zh/stories/simulation-based-inference/posterior-and-credible-regions/)，沿用同一个共轭高斯模型。新用到的工具是二项分布和卡方检验，用到时再介绍。文中数字都来自 [方法教程](https://sandboxphysics.com/zh/stories/simulation-based-inference/recompute-the-ringdown-calibration/) 里保存的那次运行。

## 精确后验的秩为什么是均匀的

模拟校准（SBC）把下面四步重复 $N$ 次。

1. 从先验 $p(\theta)$ 抽一个真值 $\tilde\theta$。
2. 按似然 $p(y\mid\tilde\theta)$ 生成数据 $\tilde y$。
3. 从待检验的后验 $q(\theta\mid\tilde y)$ 抽 $L$ 个样本 $\theta_1,\dots,\theta_L$。
4. 记下秩 $r=\#\{\ell:\theta_\ell<\tilde\theta\}$，它是 $0$ 到 $L$ 之间的整数。

$(\tilde\theta,\tilde y)$ 这一对是从 $p(\theta)\,p(y\mid\theta)$ 抽出来的。由贝叶斯定理，它等于 $p(y)\,p(\theta\mid y)$，所以给定 $\tilde y$ 以后，真值本身就是从精确后验里抽的一个样本。如果 $q$ 就是精确后验，那么 $\tilde\theta,\theta_1,\dots,\theta_L$ 是同一个连续分布的 $L+1$ 个独立样本，任何一种排列顺序都同样可能，真值排在 $L+1$ 个位置中的哪一个，机会都相等：

$$
\Pr(r=k)=\frac{1}{L+1},\qquad k=0,1,\dots,L .
$$

这是 Talts 等人整套方法的核心结论。[Talts 等，2018，第 4.1 节](https://arxiv.org/abs/1804.06788v2) 论证里没用到后验必须是正态、参数必须只有一个；实际使用时一次检验一个参数。

## 每根柱子该有多高

保存的那次运行取 $N=4000$ 次模拟、$L=99$ 个样本，秩一共有 100 种可能。每五个秩并成一根柱子，就是 20 根。后验精确时，每次模拟落进某根柱子的概率是 $1/20$，各次互不相干，所以一根柱子的计数 $c$ 服从 4000 次试验、成功概率 $0.05$ 的二项分布，均值和标准差分别是

$$
\langle c\rangle=4000\times0.05=200,\qquad \sigma_c=\sqrt{4000\times0.05\times0.95}\simeq13.8 .
$$

这个二项分布中间 99% 的范围是 $165$ 到 $236$。Talts 等人把这条带画在直方图后面。单单一根柱子出了带，并不说明什么：20 根柱子里，精确后验也有不小的机会偏出一根。要整体判断，可以算卡方统计量

$$
X^2=\sum_{b=1}^{20}\frac{(c_b-200)^2}{200},
$$

$c_b$ 是第 $b$ 根柱子的计数。直方图平的时候，$X^2$ 服从自由度为 19 的卡方分布；尾部概率很小，就是警告。

警告也会碰巧出现。保存的那次运行里，精确后验自己就得到 $X^2=36.5$，尾部概率 $0.0093$，有两根柱子出了带。这次结果原样保留，没有换随机种子重跑。另做了一项研究，把整个实验独立重复 200 次：在 1% 的门槛下，精确后验被标出 2 次，和门槛本身许诺的 1% 误报率差不多；下面每一种错误的后验，200 次全被标出。

## 从形状读出毛病

保存的运行拿四种故意做错的后验和精确后验对比。错误的后验也都是正态分布，所以不必模拟，就能预先算出它们的秩直方图。令 $z=(\tilde\theta-\mu)/\sqrt v$，即以精确后验的标准差为单位量出的真值，$z$ 服从标准正态分布；错误后验里比真值小的那部分比例，是 $z$ 的一个已知函数。中心对、宽度乘了 $k$ 的后验，这个比例是 $u(z)=\Phi(z/k)$，秩就服从成功概率为 $u(z)$ 的二项分布。

**表 3.1** 共轭高斯检验里的错误后验，$n=4$、$s=1$、$N=4000$、$L=99$。

| 后验 | 直方图形状 | 落在 99% 带外的柱子数 | 90% 中央区间覆盖率（模拟） | 90% 中央区间覆盖率（预测） |
| --- | --- | --- | --- | --- |
| 精确 | 平 | $2$ | $0.914$ | $0.900$ |
| 整体上移半个标准差 | 向右下降的斜坡 | $15$ | $0.864$ | $0.858$ |
| 宽度乘 $1.5$ | 鼓包 | $15$ | $0.988$ | $0.986$ |
| 宽度乘 $0.6$ | 凹槽 | $16$ | $0.685$ | $0.676$ |
| 先验标准差取 $0.5$ | 凹槽 | $15$ | $0.704$ | $0.702$ |

窄后验的预测覆盖率一行就能算出。它的 90% 区间离中心最远 $1.645\times0.6\simeq0.987$ 个精确标准差，而 $z$ 服从标准正态，所以覆盖率是 $2\Phi(0.987)-1\simeq0.676$。宽后验换成 $1.645\times1.5$，同样算得 $0.986$。

每种形状都能直接读懂。后验太窄，真值常常落在所有样本之外，秩就堆到两头的柱子里，成了凹槽。后验太宽，几乎总把真值围在中间，秩聚到中部，成了鼓包。后验整体上移，大多数样本都比真值大，小的秩就多。后验用的先验比生成数据用的先验更窄，就会往零收缩得过头，结果也偏窄，同样给出凹槽。Talts 等人在一个用了过窄先验的回归模型里，看到的正是这种凹槽。[Talts 等，2018，第 4.2 节和第 6.1 节](https://arxiv.org/abs/1804.06788v2)

## 每个水平上的期望覆盖率

秩直方图一次只看一个参数。Hermans 等人定义的期望覆盖率改用后验自己的最高密度区域，因此能检验几个参数的联合分布。对每一对模拟出来的真值和数据，找出恰好把真值包进去的最高密度区域，记下它的可信水平 $\alpha$。后验校准时，$\alpha$ 在零到一之间均匀分布，于是对任何水平，$\alpha$ 低于它的模拟所占的比例就等于这个水平。曲线落在对角线下方，说明区域画得过于自信。[Hermans 等，2022，第 2 节](https://arxiv.org/abs/2110.06581v3)

Lab 里冻结的神经后验沿用 Papamakarios 和 Murray 的混合密度做法。它学习合成振铃的双参数后验：网络输出若干高斯分量之和，只用模拟出来的“源—记录”对训练。[Papamakarios 与 Murray，2016](https://arxiv.org/abs/1605.06376v4) 从先验里重新抽 2000 个源来考它，它的 90% 联合区域罩住真实源的比例是 $0.897$，和精确网格后验一样。秩检验的尾部概率，频率是 $0.462$，衰减时间是 $0.800$。

## 对先验求平均会漏掉什么

上面每项检验，都是对从先验里抽出的源取平均。平均值里能藏住三种毛病。

第一种，一维的每一块都对，联合分布却错了。搭建 Lab 的时候，网络的抽样程序在控制频率与衰减时间相关性的那一项上写错了。秩检验照样通过，尾部概率是 $0.462$ 和 $0.781$。直接比较抽样结果的矩和密度函数本身的矩，才把它抓出来：两者相差 $0.223$，修好以后只差 $0.0038$。

第二种，后验根本不看数据。如果 $q(\theta\mid y)$ 直接交回先验，真值和样本又成了同一个分布的独立样本，秩完全是平的。秩检验查的是校准，不查后验够不够窄。

第三种，平均下来对，参数空间某个角落却不对。把 400 次模拟一组的检验按噪声水平分开，就能看出校准是不是在整个训练范围里都成立。

**表 3.2** 训练范围各部分里网络 90% 区域的覆盖率，每组 400 条合成记录。

| 子集 | 网络 | 精确网格 |
| --- | --- | --- |
| 噪声水平 $0.15$ 到 $0.25$ | $0.898$ | $0.903$ |
| 噪声水平 $0.25$ 到 $0.4$ | $0.915$ | $0.915$ |
| 噪声水平 $0.4$ 到 $0.6$ | $0.903$ | $0.910$ |
| 衰减时间 $2$ 到 $3$ 毫秒 | $0.940$ | $0.925$ |

400 条记录时，覆盖率在 $0.9$ 附近的标准误约为 $\sqrt{0.9\times0.1/400}=0.015$。四行都和 $0.9$ 相符，彼此之间也只差两三个标准误以内；而且每一行里，网络都紧跟着精确网格。

## Lab 任务

打开 [神经后验 Lab](https://sandboxphysics.com/zh/labs/neural-posterior-calibration/)，展开数据行下方的离线秩检验。

1. 预测：如果网络是精确的，每个参数的 20 根柱子里，你预计有几根落在 99% 带外？然后数一数。
2. 比较：换到“微弱短促的振荡”，等累计覆盖率稳定后读数。这是网络的毛病，还是精确后验在靠近先验边缘的固定源上本来就有的性质？
3. 解释：为什么训练条件下的离线曲线在每个水平上都贴着对角线，而一个固定源的累计曲线却可以低于 $0.9$？

## 练习

1. $N=1000$ 次模拟、20 根柱子，后验精确时一根柱子计数的均值和标准差各是多少？
2. 一个后验宽度正确，但中心偏低半个标准差。秩直方图哪一头会堆高？
3. 为什么秩直方图是平的，还不足以说明后验有用？

答案

1. 每根柱子服从 1000 次试验、概率 $0.05$ 的二项分布。均值是 $50$，标准差是 $\sqrt{1000\times0.05\times0.95}\simeq6.9$。Talts 等人建议每根柱子至少约 20 次模拟，所以 1000 次模拟最多分 50 根左右。
2. 现在大多数样本都比真值小，秩通常很大，高的一头堆起来，成了向右上升的斜坡，正好是表 3.1 里上移那一行的镜像。
3. 先验本身就能通过这项检验，因为对数据取平均后，精确后验就回到先验。有用的后验还得在数据有信息量的地方足够窄，这要靠另一种量度，比如区域宽度，或者真值处对数密度的平均值。

## 来源

1. [Talts 等，2018，第 4.1 节](https://arxiv.org/abs/1804.06788v2)
2. [Hermans 等，2022，第 2 节](https://arxiv.org/abs/2110.06581v3)
3. [Papamakarios 与 Murray，2016](https://arxiv.org/abs/1605.06376v4)

## 继续阅读

从模拟里学到的后验能不能信 · 阅读路径

### 从后验到校准，再到模型失配

1. [文章 **神经网络给出的漂亮后验，怎样证明可以相信**](https://sandboxphysics.com/zh/stories/simulation-based-inference/trusting-a-neural-posterior/)
2. [文章 **后验分布与 90% 可信区域到底保证什么**](https://sandboxphysics.com/zh/stories/simulation-based-inference/posterior-and-credible-regions/)
3. [当前页面 **用秩统计和覆盖率检查后验是否校准**](https://sandboxphysics.com/zh/stories/simulation-based-inference/rank-tests-for-posterior-calibration/)
4. [文章 **用重要性权重和残差检验找出错误的模拟器**](https://sandboxphysics.com/zh/stories/simulation-based-inference/model-mismatch-and-importance-weights/)
5. [文章 **动手复算振铃后验的校准检验**](https://sandboxphysics.com/zh/stories/simulation-based-inference/recompute-the-ringdown-calibration/)
6. [文章 **读懂 DINGO 论文里的 P–P 图、散度和采样效率**](https://sandboxphysics.com/zh/stories/simulation-based-inference/reading-dingo-calibration-evidence/)
