02贝叶斯推断基础

从 prior、likelihood 与 posterior 出发,理解 credible interval、posterior probability、prior sensitivity 和 Bayesian model diagnostics。

2026-08-05
Bayesian StatisticsPriorLikelihoodPosteriorR
本章目录 · 17

贝叶斯推断把未知参数的不确定性表示为概率分布:分析前用 prior 描述已有信息,观测数据通过 likelihood 提供证据,二者结合得到 posterior。

prior + likelihood → posterior

Posterior 不是简单地“相信过去经验”,而是在明确模型下回答:看到当前数据以后,不同参数值还剩下多少相对支持。

贝叶斯公式

设未知参数为 θ\theta,观测数据为 DD

p(θD)=p(Dθ)p(θ)p(D)p(\theta \mid D) = \frac{p(D \mid \theta)p(\theta)}{p(D)}
部分 名称 含义
p(θ)p(\theta) Prior 看到当前数据前,对参数的描述
p(Dθ)p(D \mid \theta) Likelihood 给定参数时,当前数据有多相容
p(D)p(D) Evidence / marginal likelihood 对所有参数可能性积分后的标准化常数
p(θD)p(\theta \mid D) Posterior 看到数据后更新的参数分布

Evidence 为:

p(D)=p(Dθ)p(θ)dθp(D) = \int p(D \mid \theta)p(\theta)\,d\theta

只关心 posterior 的相对形状时,常写成:

p(θD)p(Dθ)p(θ)p(\theta \mid D) \propto p(D \mid \theta)p(\theta)

Likelihood 是参数的函数,但不是“参数为真的概率”。Posterior 才是在模型与 prior 条件下对参数不确定性的概率描述。

一个直观例子:Beta–Binomial 更新

假设 θ\theta 是某事件的发生概率。分析前使用:

θBeta(2,2)\theta \sim \operatorname{Beta}(2, 2)

它以 0.5 为中心,但分布较宽。观察 10 次独立试验,其中 8 次成功:

yθBinomial(10,θ)y \mid \theta \sim \operatorname{Binomial}(10, \theta)

Beta prior 与 Binomial likelihood 共轭,因此 posterior 可以直接写出:

θyBeta(2+8,2+2)=Beta(10,4)\theta \mid y \sim \operatorname{Beta}(2 + 8, 2 + 2) = \operatorname{Beta}(10, 4)

在 R 中查看 prior 与 posterior:

theta <- seq(0, 1, length.out = 1000)

prior <- dbeta(theta, shape1 = 2, shape2 = 2)
posterior <- dbeta(theta, shape1 = 10, shape2 = 4)

plot(
  theta,
  prior,
  type = "l",
  lty = 2,
  xlab = expression(theta),
  ylab = "Density"
)

lines(theta, posterior, lwd = 2)
legend(
  "topleft",
  legend = c("Prior: Beta(2, 2)", "Posterior: Beta(10, 4)"),
  lty = c(2, 1),
  lwd = c(1, 2),
  bty = "n"
)

95% equal-tailed credible interval:

qbeta(c(0.025, 0.975), shape1 = 10, shape2 = 4)

计算 θ>0.5\theta > 0.5 的 posterior probability:

1 - pbeta(0.5, shape1 = 10, shape2 = 4)

这类概率陈述是贝叶斯结果最直接的表达之一:在当前模型、prior 与数据条件下,参数超过阈值的 posterior probability 是多少。

Prior 怎样选择

Prior 不只有“主观经验”一种来源,可以按信息强度区分:

类型 目的
Weakly informative prior 排除极端、不合理参数,同时让数据保留较大影响
Informative prior 纳入可靠的既往研究或领域知识
Skeptical prior 把较多质量放在无效应附近,要求数据提供更强证据
Regularizing prior 稳定高维、稀疏或弱识别模型

Prior 应定义在参数有意义的尺度上。例如 logistic regression coefficient 位于 log-odds scale;直接说“使用 Normal(0, 10)”并不能判断它是否宽松,必须换算其隐含的 odds-ratio 范围。

Prior predictive simulation 可以在看到 outcome data 之前检查 prior 会生成什么样的结果:

draw parameters from prior

simulate outcomes from likelihood

check whether simulated data are plausible

如果 prior 经常生成现实中不可能的数据,它即使被称为“non-informative”,也不是一个好的默认选择。

Bayesian 与 frequentist 推断的区别

问题 Frequentist Bayesian
未知参数 在重复抽样框架中视为固定但未知 用概率分布描述当前不确定性
数据 假想重复样本中的随机变量 观测后作为已知条件
区间 Confidence interval Credible interval
检验 p-value、test statistic Posterior probability、Bayes factor、decision rule
外部信息 可通过设计、约束、penalty 或模型纳入 通过 prior 显式进入概率模型

二者不是“只用数据”与“数据加主观意见”的简单对立。Frequentist analysis 也需要选择模型、变量、penalty 和 stopping rule;Bayesian analysis 也不能用 prior 替代数据质量和研究设计。

Confidence interval 与 credible interval

95% confidence interval 的概率陈述针对产生区间的长期程序:在重复抽样中,按同一方法构造的区间有 95% 覆盖真实参数。

95% Bayesian credible interval 则可以在给定模型、prior 与当前数据后解释为:posterior distribution 中有 95% 的概率质量位于该区间。

两种区间可能数值接近,但其概率对象和解释不同,不能只换名称。

贝叶斯线性回归

构造一个确实满足 y=3+2x+εy = 3 + 2x + \varepsilon 的模拟数据集:

set.seed(123)

df <- data.frame(
  x = rnorm(100, mean = 5, sd = 2)
)

df$y <- 3 + 2 * df$x + rnorm(100, mean = 0, sd = 1)

使用 rstanarm

library(rstanarm)

fit <- stan_glm(
  y ~ x,
  data = df,
  family = gaussian(),
  prior = normal(location = 0, scale = 2.5),
  prior_intercept = normal(location = 0, scale = 5),
  prior_aux = exponential(rate = 1),
  chains = 4,
  iter = 2000,
  seed = 123,
  refresh = 0
)

查看 posterior summaries:

print(fit, digits = 2)
posterior_interval(fit, prob = 0.95)

这里的 coefficient 不是一个孤立的“最佳值”,而是一组 posterior draws。可以计算斜率大于 0 的 posterior probability:

draws <- as.matrix(fit)
mean(draws[, "x"] > 0)

这个概率依赖线性关系、Gaussian residual、prior 和其他模型条件。它不是研究设计之外的因果概率。

Posterior predictive checking

模型拟合后,从 posterior draws 生成 replicated data,并与 observed data 比较:

pp_check(fit)

Posterior predictive check 可以发现模型是否无法重现:

  • outcome 分布的形状;
  • 均值与方差;
  • 极端值;
  • zero inflation;
  • 分组差异或非线性结构。

模型得到稳定 posterior 不等于模型适合数据。一个错误但计算稳定的 likelihood 仍会产生精确而误导的结果。

MCMC 诊断

复杂模型通常不能解析积分,需要 Markov chain Monte Carlo 或其他近似方法。此时先检查计算,再解释科学结果。

诊断 关注点
Multiple chains 不同初值是否探索到同一 posterior 区域
R^\hat{R} 链间与链内变异是否一致,通常应接近 1
Effective sample size 自相关后还剩多少有效信息
Trace plots chains 是否混合并稳定探索
Divergences Hamiltonian trajectory 是否暴露 posterior geometry 问题
summary(fit)
plot(fit, plotfun = "trace")

增加 iterations 不能自动修复 divergences、弱识别或错误模型。需要重新检查参数化、prior、变量尺度和模型结构。

Prior sensitivity

Posterior 由 prior 与 likelihood 共同决定。样本较少、数据噪声大或模型弱识别时,prior 的影响尤其明显。

一个稳妥流程是:

  1. 写明主要 prior 及其来源;
  2. 做 prior predictive check;
  3. 使用若干合理但不同强度的 priors 重新拟合;
  4. 比较关键 posterior summaries 与决策是否改变;
  5. 报告对 prior 敏感的结论。

Sensitivity analysis 不是不断尝试 priors 直到结果符合期待,而是检查合理选择空间内结论是否稳定。

Bayes factor 与模型比较

Bayes factor 比较两个模型对 observed data 的 marginal likelihood:

BF10=p(DM1)p(DM0)BF_{10} = \frac{p(D \mid M_1)}{p(D \mid M_0)}

它表示数据在模型 1 下相对于模型 0 有多大支持,但对 prior,尤其是模型特有参数的 prior,可能非常敏感。

Bayes factor 不是 posterior probability,除非再结合 model prior probabilities。模型比较还可以使用 posterior predictive performance、LOO cross-validation 或明确的 decision utility,不能把所有问题都压缩成一个 BF threshold。

常见应用

  • 参数估计:linear、logistic、survival 与 hierarchical models;
  • 部分汇聚:多中心、重复测量或小组样本量不均衡的数据;
  • 动态更新:在预先规定的 sequential design 中随新数据更新 posterior;
  • 预测:把 parameter uncertainty 传播到 posterior predictive distribution;
  • 测量误差与缺失数据:在联合概率模型中表达不确定性;
  • 复杂机制模型:结合领域约束估计难以直接观测的过程。

“样本量小”本身不是选择 Bayesian method 的充分理由。小样本意味着数据提供的信息少,posterior 可能更依赖 prior;如果没有可靠 prior 或模型不可识别,贝叶斯计算不会凭空创造信息。

常见误解

“Bayesian 等于主观”

Prior 需要判断,但可以来自外部数据、机制约束或弱信息正则化。关键不是假装没有选择,而是把选择写出来并检查敏感性。

“Posterior probability 就是因果概率”

Posterior 只在给定模型和数据生成假设下成立。Observational data 中的 confounding、selection bias 和 measurement error 不会因使用 Bayesian software 自动消失。

“Credible interval 不包含 0 就证明效应存在”

区间仍依赖 prior、likelihood、模型设定和阈值。应同时报告 effect size、uncertainty、predictive implications 和研究设计边界。

“模型运行完就说明收敛”

必须检查 R^\hat{R}、effective sample size、trace plots、divergences 和 posterior predictive fit。没有 error message 只说明程序完成,不说明 inference 可靠。

最小工作流

define estimand and likelihood

choose interpretable priors

prior predictive check

fit model

computational diagnostics

posterior predictive check

prior sensitivity

report posterior + assumptions

贝叶斯方法最有价值的地方不是把 p-value 换成另一套术语,而是让研究者显式描述未知量、已有信息、数据生成过程和完整不确定性。

延伸阅读:John Kruschke, Doing Bayesian Data Analysis;Richard McElreath, Statistical Rethinking;Gelman et al., Bayesian Data Analysis。常用 R interfaces 包括 rstanarmbrmscmdstanr;Python 中常见 PyMCPyro