TTiti的学习笔记
首页 / 专业知识 / 05-Courses/数理统计/02-Notes/统计推断/07_Bayes方法和统计决策理论/章节学习页.md

章节学习页

专业知识 · 05-Courses/数理统计/02-Notes/统计推断/07_Bayes方法和统计决策理论/章节学习页.md

# 第 7 章 Bayes 方法和统计决策理论

本章在学什么

一句话:本章学习如何把先验知识和样本证据结合起来,得到后验分布,并在损失函数下做估计或决策。

在统计学习链条中的位置:


频率学派推断 -> Bayes 推断:先验 + 似然 -> 后验 -> 估计/区间/决策

课程和工作用途:当你有历史经验、专家判断、先前实验结果,或样本量较小时,Bayes 方法提供了一种把“已有知识”和“新数据”合并的统计语言。

教材目录

  • 7.1 引言和若干基本概念
  • 7.2 先验分布的确定
  • 7.3 Bayes 统计推断
  • 7.4 Bayes 统计决策理论
  • 7.5 Minimax 准则
  • 7.6 同变估计及可容许性
  • 习题 7

必须掌握的概念

  • [x] 先验分布 prior
  • [x] 似然函数 likelihood
  • [x] 后验分布 posterior
  • [x] 共轭先验 conjugate prior
  • [x] Bayes 估计
  • [x] 后验均值
  • [x] 后验众数 MAP
  • [x] 损失函数 loss function
  • [x] 决策函数 decision rule
  • [x] 后验风险 posterior risk

了解即可的内容

  • [ ] Minimax 准则:知道它关注最坏情况下风险最小,不追求完整证明。
  • [ ] 同变估计:知道它和变换不变性有关,本阶段只掌握概念定位。
  • [ ] 可容许性:知道它用于判断一个决策规则是否被其他规则全面支配。
  • [ ] 完整数学决策理论证明:先不作为两个月主攻内容。

概念填充区

Bayes 方法 Bayesian method

  • 一句话定义:Bayes 方法用先验分布表达已有知识,用似然函数表达样本证据,再通过 Bayes 公式得到后验分布。
  • 直觉解释:先有一个初始看法,看到数据后更新这个看法。
  • 专业表达:\(\pi(\theta|x)\propto L(\theta|x)\pi(\theta)\)。
  • 常见符号:\(\pi(\theta)\)、\(L(\theta|x)\)、\(\pi(\theta|x)\)。
  • 典型场景:小样本比例估计、A/B 测试、医学诊断、风险预测、模型参数更新。
  • 容易混淆的点:Bayes 方法不是“主观随便猜”,先验需要说明来源和敏感性。
  • 和后续学习的关系:现代机器学习、概率图模型、Bayesian optimization 和不确定性量化都依赖这个思想。
  • 给 AI 的高质量提示词:请用 Bayes 方法分析这个参数估计问题,明确先验、似然、后验和 Bayes 估计。

先验分布 prior distribution

  • 一句话定义:先验分布是在看到当前样本之前,对未知参数的概率表达。
  • 直觉解释:先验是“看数据前的初始判断”。
  • 专业表达:用 \(\pi(\theta)\) 表示参数 \(\theta\) 的先验分布。
  • 常见类型:信息先验、无信息先验、共轭先验。
  • 典型场景:根据历史转化率设定 Beta 先验;根据历史均值设定正态先验。
  • 容易混淆的点:先验影响后验,尤其在样本量小的时候;需要做敏感性分析。

似然函数 likelihood

  • 一句话定义:似然函数表示在不同参数取值下,当前样本出现的相对可能性。
  • 直觉解释:似然是“数据对参数的支持程度”。
  • 专业表达:\(L(\theta|x)=f(x|\theta)\)。
  • 和 MLE 的关系:MLE 最大化似然;Bayes 方法把似然和先验相乘得到后验。

后验分布 posterior distribution

  • 一句话定义:后验分布是在看到样本数据之后,对未知参数的更新后分布。
  • 直觉解释:后验 = 先验观点被数据修正后的结果。
  • 专业表达:

\[ \pi(\theta|x)=\frac{f(x|\theta)\pi(\theta)}{\int f(x|\theta)\pi(\theta)d\theta} \]

  • 常见用途:后验均值、后验众数、可信区间、预测分布。
  • 容易混淆的点:Bayes 后验可以说“参数落在某区间的后验概率”,这和频率学派置信区间含义不同。

共轭先验 conjugate prior

  • 一句话定义:如果先验和后验属于同一分布族,这个先验就是共轭先验。
  • 直觉解释:共轭先验让 Bayes 更新变得像“参数加法”,计算非常方便。
  • 专业表达:Bernoulli/Binomial 似然配 Beta 先验,Poisson 似然配 Gamma 先验,Normal 均值配 Normal 先验。
  • 典型场景:Beta-Binomial 用于成功率更新;Gamma-Poisson 用于事件率更新。

Bayes 估计 Bayes estimator

  • 一句话定义:Bayes 估计是在给定损失函数下,使后验期望损失最小的估计。
  • 直觉解释:不同损失函数代表不同错误代价,因此最优估计也不同。
  • 专业表达:选择 \(a\) 最小化 \(E[L(\theta,a)|x]\)。
  • 常见结论:平方损失下 Bayes 估计是后验均值;绝对损失下是后验中位数;0-1 损失下是后验众数或 MAP。
  • 容易混淆的点:Bayes 估计不是固定一种公式,而取决于后验分布和损失函数。

损失函数 loss function

  • 一句话定义:损失函数衡量采取某个估计或决策时,真实参数和行动之间的错误代价。
  • 直觉解释:它把“错多少”和“错的代价多大”量化。
  • 常见形式:平方损失 \((a-\theta)^2\)、绝对损失 \(|a-\theta|\)、0-1 损失。
  • 典型场景:估计误差、分类错误、风险决策、模型选择。
  • 容易混淆的点:损失函数不同,最优决策可能不同。

决策函数 decision rule

  • 一句话定义:决策函数是把样本观测映射到行动或估计结果的规则。
  • 专业表达:\(\delta(x)\) 表示看到样本 \(x\) 后采取的行动。
  • 典型场景:观察数据后选择是否治疗、是否报警、选择哪个模型、给出哪个估计值。

Minimax 准则

  • 一句话定义:Minimax 准则选择使最大风险最小的决策规则。
  • 直觉解释:它是“最坏情况也尽量不太坏”的保守策略。
  • 专业表达:选择 \(\delta\) 使 \(\sup_\theta R(\theta,\delta)\) 最小。
  • 典型场景:风险规避、对先验不放心、希望保证最坏情况表现。

可容许性 admissibility

  • 一句话定义:如果不存在另一个决策规则在所有参数下都不差、且至少某些参数下更好,那么该规则是可容许的。
  • 直觉解释:可容许表示“没有被另一个规则全面碾压”。
  • 学习要求:本阶段掌握概念,不追求证明。

公式与推导

Bayes 公式

离散形式:

\[ P(A|B)=\frac{P(B|A)P(A)}{P(B)} \]

参数推断形式:

\[ \pi(\theta|x)=\frac{f(x|\theta)\pi(\theta)}{m(x)} \]

其中:

\[ m(x)=\int f(x|\theta)\pi(\theta)d\theta \]

是边际似然,起归一化作用。

先验 x 似然 -> 后验

常写成比例形式:

\[ \pi(\theta|x)\propto L(\theta|x)\pi(\theta) \]

直觉:后验的形状由“数据支持”和“先验判断”共同决定。

Beta-Binomial 共轭更新

若:

\[ p\sim Beta(a,b) \]

样本中成功 \(x\) 次、失败 \(n-x\) 次,则:

\[ p|x\sim Beta(a+x,b+n-x) \]

直觉:Beta 先验中的 \(a,b\) 可以理解为先验成功和失败信息;看到数据后把成功次数和失败次数加进去。

Normal-Normal 共轭直觉

若总体方差已知,\(X_i\sim N(\mu,\sigma^2)\),先验 \(\mu\sim N(\mu_0,\tau^2)\),则后验均值是先验均值和样本均值的加权平均。

直觉:样本量越大、样本噪声越小,后验越靠近样本均值;先验越确定,后验越靠近先验均值。

平方损失下的 Bayes 估计

若损失函数为:

\[ L(\theta,a)=(\theta-a)^2 \]

则 Bayes 估计为:

\[ a^*=E(\theta|x) \]

即后验均值。

0-1 损失下的 MAP

在 0-1 损失或分类决策直觉下,常选择后验概率最大的参数值或类别:

\[ \hat\theta_{MAP}=\arg\max_\theta \pi(\theta|x) \]

代码任务 1:Beta-Binomial 后验更新


import numpy as np  # 导入 numpy,用于数值计算

from scipy import stats  # 导入 scipy.stats,用于 Beta 分布



prior_a = 2  # Beta 先验的第一个参数,可理解为先验成功信息

prior_b = 2  # Beta 先验的第二个参数,可理解为先验失败信息



n = 20  # 当前样本量,例如观察 20 个用户

success = 14  # 成功次数,例如 14 个用户转化

failure = n - success  # 失败次数



posterior_a = prior_a + success  # 后验成功参数 = 先验成功参数 + 观察成功次数

posterior_b = prior_b + failure  # 后验失败参数 = 先验失败参数 + 观察失败次数



posterior_mean = posterior_a / (posterior_a + posterior_b)  # Beta 分布后验均值

posterior_map = (posterior_a - 1) / (posterior_a + posterior_b - 2)  # 当参数大于 1 时的后验众数 MAP



print("后验分布: Beta", posterior_a, posterior_b)  # 输出后验分布参数

print("后验均值:", posterior_mean)  # 输出平方损失下的 Bayes 估计

print("后验众数 MAP:", posterior_map)  # 输出 MAP 估计

结果解释:先验 Beta(2,2) 和数据 14 次成功、6 次失败合并后得到 Beta(16,8)。后验均值是成功率的 Bayes 估计。

代码任务 2:画出先验和后验


import numpy as np  # 导入 numpy

import matplotlib.pyplot as plt  # 导入 matplotlib,用于画图

from scipy import stats  # 导入 scipy.stats



prior_a, prior_b = 2, 2  # 设置先验 Beta 分布参数

posterior_a, posterior_b = 16, 8  # 设置上一例得到的后验参数



p_grid = np.linspace(0, 1, 500)  # 在 0 到 1 之间生成 500 个点,用于画概率密度曲线



prior_density = stats.beta.pdf(p_grid, prior_a, prior_b)  # 计算先验密度

posterior_density = stats.beta.pdf(p_grid, posterior_a, posterior_b)  # 计算后验密度



plt.plot(p_grid, prior_density, label="Prior Beta(2,2)")  # 画先验曲线

plt.plot(p_grid, posterior_density, label="Posterior Beta(16,8)")  # 画后验曲线

plt.xlabel("p")  # 设置横轴标签,p 表示成功概率

plt.ylabel("density")  # 设置纵轴标签

plt.title("Prior and posterior distributions")  # 设置图标题

plt.legend()  # 显示图例

plt.show()  # 显示图形

结果解释:后验分布相对于先验更集中,并且中心向样本成功率附近移动。这体现了“先验被数据更新”。

代码任务 3:比较不同先验对后验的影响


import numpy as np  # 导入 numpy

from scipy import stats  # 导入 scipy.stats



n = 20  # 样本量

success = 14  # 成功次数

failure = n - success  # 失败次数



priors = [(1, 1), (2, 2), (20, 20)]  # 三种先验:均匀、温和先验、强先验



for a, b in priors:  # 遍历不同先验

    post_a = a + success  # 更新后验 a 参数

    post_b = b + failure  # 更新后验 b 参数

    post_mean = post_a / (post_a + post_b)  # 计算后验均值

    ci = stats.beta.ppf([0.025, 0.975], post_a, post_b)  # 计算 95% 后验可信区间



    print("先验:", (a, b))  # 输出先验参数

    print("后验:", (post_a, post_b))  # 输出后验参数

    print("后验均值:", post_mean)  # 输出后验均值

    print("95% 后验可信区间:", ci)  # 输出后验可信区间

结果解释:强先验 Beta(20,20) 会把后验往 0.5 拉回,说明样本量不大时先验影响明显。报告中应说明先验来源,并可做敏感性分析。

代码任务 4:用损失函数解释 Bayes 决策


import numpy as np  # 导入 numpy



posterior_samples = np.array([0.45, 0.50, 0.55, 0.60, 0.65])  # 用几个后验样本点做最小示例



actions = np.linspace(0.4, 0.7, 7)  # 候选决策,例如给出的估计值



for action in actions:  # 遍历每个候选估计值

    squared_loss = np.mean((posterior_samples - action) ** 2)  # 计算平方损失的后验平均

    absolute_loss = np.mean(np.abs(posterior_samples - action))  # 计算绝对损失的后验平均

    print("行动/估计:", action)  # 输出当前候选行动

    print("平方损失后验平均:", squared_loss)  # 输出平方损失风险

    print("绝对损失后验平均:", absolute_loss)  # 输出绝对损失风险

结果解释:平方损失下最优行动接近后验均值;绝对损失下最优行动接近后验中位数。不同损失函数会给出不同最优估计。

课后作业与答案

题 1:Bayes 方法的核心公式是什么?

答案:

\[ \pi(\theta|x)\propto L(\theta|x)\pi(\theta) \]

解释:后验分布由似然函数和先验分布相乘并归一化得到。

题 2:什么是先验分布和后验分布?

答案:先验分布是在看到当前数据前对参数的概率表达;后验分布是在看到数据后更新得到的参数分布。

解释:Bayes 推断的核心是从先验到后验的更新。

题 3:若 \(p\sim Beta(3,2)\),观察到 10 次试验中成功 7 次,后验分布是什么?

答案:

\[ p|x\sim Beta(3+7,2+3)=Beta(10,5) \]

解释:Beta-Binomial 共轭更新中,成功次数加到第一个参数,失败次数加到第二个参数。

题 4:平方损失下的 Bayes 估计是什么?

答案:后验均值。

解释:平方损失 \((\theta-a)^2\) 下,使后验期望损失最小的 \(a\) 是 \(E(\theta|x)\)。

题 5:后验均值和 MAP 有什么区别?

答案:后验均值是后验分布的平均值;MAP 是后验分布密度或概率最大的参数值。

解释:在对称分布中二者可能接近,在偏态分布中可能不同。

题 6:什么是共轭先验?

答案:如果先验和后验属于同一分布族,则该先验是共轭先验。

解释:例如 Binomial 似然和 Beta 先验共轭,后验仍是 Beta 分布。

题 7:代码题:用 Beta(1,1) 先验和 30 次中 18 次成功更新后验。


prior_a = 1  # 先验成功参数

prior_b = 1  # 先验失败参数

success = 18  # 观察成功次数

n = 30  # 总试验次数

failure = n - success  # 失败次数



posterior_a = prior_a + success  # 更新成功参数

posterior_b = prior_b + failure  # 更新失败参数

posterior_mean = posterior_a / (posterior_a + posterior_b)  # 后验均值



print(posterior_a, posterior_b)  # 输出后验 Beta 参数

print(posterior_mean)  # 输出后验均值

答案解释:后验为 Beta(19,13),后验均值为 \(19/(19+13)=0.59375\)。

题 8:报告表达题:如何解释 Bayes 推断?

答案:

本分析采用 Bayes 推断,将参数的不确定性表示为概率分布。先验分布反映观察数据前的已有信息,似然函数反映当前样本证据,二者结合得到后验分布。基于后验分布可以给出后验均值、MAP 估计和可信区间。由于先验会影响结果,尤其在样本量较小时,应说明先验来源并进行敏感性分析。

报告可写表达

  • “Bayes 方法将先验信息和样本似然结合,得到参数的后验分布。”
  • “在平方损失下,后验均值是 Bayes 估计。”
  • “共轭先验使后验分布仍属于同一分布族,从而简化计算。”
  • “与频率学派置信区间不同,Bayes 可信区间可以解释为参数落入该区间的后验概率。”
  • “样本量较小时,先验选择对后验影响较大,因此需要说明先验来源或做敏感性分析。”

可以追问老师/同学的问题

  • 本课程是否要求掌握 Bayes 决策理论的证明,还是只需会用常见损失函数结论?
  • 可信区间和置信区间在考试中如何区分表述?
  • 先验分布的选择是否需要客观依据?
  • Minimax 准则和 Bayes 准则在本教材中是否会出计算题?
  • 同变估计和可容许性是否只需概念理解?

给 AI 的高质量提示词

请用 Bayes 方法分析这个参数推断问题:明确先验分布、似然函数、后验分布;判断是否存在共轭更新;给出后验均值、MAP 和可信区间;说明所用损失函数和报告中如何解释先验敏感性。