helloGPT贝叶斯统计教程
贝叶斯统计把不确定性当成概率,利用先验把已有知识写进模型,再用数据通过贝叶斯定理更新成后验,从而得到完整的概率分布供推断和预测。这个过程包含选先验、写似然、求后验、用后验做预测与诊断;实际应用里既有解析解(共轭族),也常靠MCMC或变分推断来计算。

先从直观说起:为什么要用贝叶斯?
想象你在下雨前决定带伞。你有天气预报(先验)和窗外的云层情况(新数据)。把两者合起来再做决定,这就是贝叶斯思想:把已有信息形式化为先验,把新证据通过似然函数引入,最后得到更合理的判断(后验)。
核心一句话
贝叶斯定理:后验 ∝ 似然 × 先验。用数学写就是 p(θ|y) ∝ p(y|θ) p(θ)。这看起来简单,但含义强大:把不确定性全用概率来表示和传递。
贝叶斯的基本要素
- 先验(Prior):在看到当前数据前对参数的信念,既可以是有信息的,也可以是弱信息/非信息的。
- 似然(Likelihood):数据出现的概率模型,告诉我们参数如何产生数据。
- 后验(Posterior):把先验与似然结合后的更新信念,是我们最后用于推断的对象。
- 边际似然 / 证据(Marginal likelihood):p(y)=∫p(y|θ)p(θ)dθ,用于模型比较(例如贝叶斯因子)。
- 预测分布(Predictive):用后验预测新数据,形式为 p(y_new|y)=∫p(y_new|θ)p(θ|y)dθ。
常见解析例子(帮助理解)
1. Beta–Binomial(投硬币示例)
假设你在意一个硬币偏不偏。先验设为 Beta(α,β),数据为 n 次投掷中出现 k 次正面(Binomial(n,k))。
似然:p(k|θ)=C(n,k) θ^k (1-θ)^(n-k)。先验:p(θ) ∝ θ^(α-1)(1-θ)^(β-1)。合并后得到后验是 Beta(α+k, β+n-k)。
这很直观:先验参数像是“假想的观测次数”,数据把真实观测加进去。预测下次为正面的概率是后验均值 (α+k)/(α+β+n)。
2. 正态-正态共轭(已知方差求均值)
观测 yi~N(μ, σ^2)(σ 已知),先验 μ~N(μ0, τ0^2)。后验仍为正态:
μ|y ~ N( μ_post, τ_post^2 ),其中 τ_post^2 = (n/σ^2 + 1/τ0^2)^(-1), μ_post = τ_post^2 ( n*ȳ/σ^2 + μ0/τ0^2 )。
这个公式把样本均值和先验加权平均,权重与不确定性相反(方差越小权重越大)。
计算方法:解析解 vs 数值解
解析解漂亮但局限;实际大多数模型无法解析积分,此时用数值方法:
- MCMC(马尔科夫蒙特卡洛):通过构造 Markov 链来画后验样本,常用算法有 Metropolis-Hastings、Gibbs、Hamiltonian Monte Carlo(HMC,Stan 常用)。优点是通用、理论完善;缺点是调参、诊断和收敛检测需要经验。
- 变分推断(VI):把后验近似为一个参数化分布族,求最接近的成员。速度快,适合大数据,但会低估不确定性。
- 拉普拉斯近似:在后验模式点做二阶近似,适合后验近似高斯的情况。
常见 MCMC 算法要点
- Metropolis-Hastings:通用但需慢慢调 proposal。
- Gibbs 采样:当能按条件分布逐一抽样时效率高。
- HMC / NUTS(自适应 HMC):利用梯度信息,常在高维度上比简单 MH 更快收敛,Stan 和 PyMC 提供实现。
诊断与模型检验(别偷懒)
画图总不会错:看 trace plot(轨迹图)、后验密度、ACF(自相关)。常用量化诊断包括 R̂(Rhat)和有效样本量 ESS。R̂ 接近 1 表示链已混合良好。
后验预测检验(Posterior Predictive Check)
基于后验模拟新数据,比较模拟数据与观测数据的统计量(均值、极值、频次等)。如果模型不能再现观测数据的关键特征,说明模型需要改进。
模型比较:Bayes 因子、WAIC、LOO
- 贝叶斯因子(Bayes factor):比对边际似然 p(y|M1)/p(y|M2)。概念直接但计算通常困难,且对先验敏感。
- 信息准则(WAIC)和近似交叉验证(LOO-CV):更侧重预测性能,实践中更推荐使用 LOO 或 WAIC 来比较模型的预测能力。
- 模型平均(Bayesian model averaging, BMA)与 stacking:当单一模型不够好时,可以对预测进行加权平均,stacking 在实务中表现良好。
常见误区与实践建议
- “非信息先验”并非万能:很多所谓非信息先验在参数化下并非不带信息,可能导致奇异后果。建议先验要结合问题和尺度选择。
- 先验敏感性分析:尝试几种合理先验,观察后验变化;若结论对先验敏感,应坦诚报告并寻找更多数据或更稳健的先验。
- 不要把置信区间和可信区间混淆:贝叶斯的 95% 可信区间是“参数在区间内的概率为 0.95”,而频率学派的置信区间是基于重复采样的构造概率。
- 过拟合与正则化:先验可以自然起到正则化作用,合适的层次先验对复杂模型尤其重要。
一步步实战流程(可复制的工作流)
- 1) 明确问题与预测目标:是点估计、区间还是预测?
- 2) 选择观测模型(似然):根据数据类型(连续、计数、分类)选分布。
- 3) 设定先验:结合学科知识和参数尺度,做敏感性分析。
- 4) 计算后验:先看是否有解析解;没有则选 MCMC 或 VI。
- 5) 诊断收敛:R̂、ESS、轨迹图、后验自相关。
- 6) 后验预测检验和残差分析:确保模型能再现数据重要特征。
- 7) 比较模型(LOO/WAIC),必要时做模型平均。
- 8) 报告:给出后验分布图、可信区间、敏感性结果和预测检验图,透明说明先验选择理由。
一个完整但简短的手算示例(投掷 10 次,6 次正面)
假设先验 Beta(2,2),数据 k=6, n=10。
- 后验:Beta(2+6, 2+4)=Beta(8,6)。
- 后验均值 = 8/(8+6)=0.571。
- 95% 可信区间可用 Beta 分布分位数计算(数值工具得到大约 [0.34, 0.78])。
- 下一次投掷为正面的预测概率 = 后验均值 ≈ 0.571。
比较表:贝叶斯 vs 频率学派(简要)
| 维度 | 贝叶斯 | 频率方法 |
| 不确定性表达 | 参数用概率表示(后验) | 参数固定,概率针对数据 |
| 先验信息 | 可引入先验,便于信息融合 | 通常不使用先验信息 |
| 计算 | 常需数值方法(MCMC、VI) | 许多估计有解析解,假设检验成熟 |
| 小样本 | 常表现更稳健(若先验合理) | 估计方差可能较大 |
实用工具与进阶读物
- 工具:Stan(HMC)、PyMC、JAGS、BUGS、TensorFlow Probability、emcee(天文常用)
- 书籍推荐:Gelman 等《Bayesian Data Analysis》、McElreath《Statistical Rethinking》——两本各有侧重,前者系统全面,后者以直觉和实践见长。
结语式的自然收尾(像边写边想)
说到这里,可能你会觉得贝叶斯既直观又有点复杂——对,开始时会被先验、后验和计算细节绕住,但一旦用几个简单例子(比如 Beta–Binomial)把概念练熟,后面就像在搭积木:先把模型和先验定好,再用合适的计算工具去取样、诊断、检验和改进。实践里最重要的两件事:一是清楚地把你的先验来源写出来,二是做敏感性与预测检验。光有理论没验证,是不够的。好了,拿个真实问题试一试吧,我的意思是——从一个小数据集开始,不用一下子搞很复杂的层次模型,慢慢把贝叶斯的思维练成直觉。