📑 查看全课大纲(第 34 / 41 节)
- 1.数理统计中的基本概念
- 2.统计量与抽样分布(一)
- 3.统计量与抽样分布(二)
- 4.次序统计量
- 5.充分统计量与完备统计量
- 6.统计中常用分布族(一)
- 7.统计中常用分布族(二)
- 8.矩估计
- 9.极大似然估计
- 10.无偏估计与一致最小方差无偏估计(一)
- 11.无偏估计与一致最小方差无偏估计(二)
- 12.完备统计量
- 13.CR不等式及有效估计
- 14.相合估计
- 15.置信区间
- 16.正态总体参数的置信区间
- 17.大样本置信区间
- 18.Fisher显著性检验
- 19.正态总体参数的假设检验(一)
- 20.正态总体参数的假设检验(二)
- 21.似然比检验
- 22.Neyman-Pearson基本引理
- 23.一致最优势检验
- 24.无偏检验与一致最优势无偏检验
- 25.正态概率纸检验
- 26.拟合优度检验
- 27.列联表的独立性检验
- 28.Kolmogorov检验
- 29.正态性检验
- 30.Bayes统计
- 31.先验分布的确定
- 32.Bayes统计推断
- 33.统计判决理论
- 34.Minimax准则
- 35.非参数统计
- 36.符号检验
- 37.Wilcoxon符号秩检验
- 38.抽样调查
- 39.简单随机抽样
- 40.分层随机抽样
- 41.整群随机抽样
Minimax准则
约 13 分钟
Minimax准则
小象实战讲义 · 数据科学的统计基础
在统计决策理论中,我们追求“最优”的决策函数。然而,一致最优决策函数通常难以找到甚至不存在。为此,我们需要引入更实际、更稳健的决策准则。本节介绍的Minimax准则(极小化极大准则)就是一种“最坏情况最优”的准则:它寻找的是在最不利参数取值下,风险最小的那个决策函数。学完本节,你将理解Minimax准则的思想,掌握其定义,并了解如何通过贝叶斯解来构造Minimax解,从而在面对不确定性时,做出更稳健的统计决策。
💡 核心导读
- 一致最优的困境:回顾统计决策理论的基本框架(决策函数、损失函数、风险函数),理解为何一致最优决策函数通常不存在。
- Minimax准则的思想:从“最坏情况”出发,定义决策函数的最大风险,并寻求使该最大风险最小的决策函数。
- Minimax解与贝叶斯解的联系:掌握两个关键定理,理解如何通过寻找风险函数为常数的贝叶斯解,或者通过一列贝叶斯解的极限来验证Minimax解。
- Minimax估计的求解示例:通过正态总体均值的估计问题,具体演示如何应用定理求解Minimax估计。
- 准则的适用性与局限性:认识Minimax准则的稳健性特点及其在实际求解中的复杂性。
统计决策理论回顾
在正式介绍Minimax准则前,我们需要回顾统计决策理论的基本要素。
一个统计决策问题包含以下核心概念:
- 样本空间 :所有可能观测样本的集合。
- 参数空间 :未知参数 所有可能取值的集合。
- 决策空间 :所有可能采取的行动或决策的集合。
- 损失函数 :当参数真值为 时,采取行动 所造成的损失。它是一个非负函数。
- 决策函数 :一个从样本空间 到决策空间 的映射,。它根据观测到的样本 来决定采取什么行动 。
- 风险函数 :由于损失函数依赖于随机样本 ,我们考虑其期望值来消除随机性。决策函数 在参数 下的风险函数定义为: 对于离散情形,积分替换为求和。风险函数衡量了采用决策函数 的“平均”损失。
我们的目标是找到一个“最优”的决策函数 。最理想的标准是一致最优(Uniformly Best):如果存在决策函数 ,使得对于所有参数 和所有其他决策函数 ,都有 ) \le R(\theta, \delta) 则称 为一致最优决策函数。遗憾的是,在大多数实际问题中,这样“全能”的最优解并不存在。
Minimax准则:最坏情况下的最优
既然一致最优难以实现,我们需要放宽标准。Minimax准则选择了一个新的视角:关注最坏情况。
最大风险的定义
对于一个给定的决策函数 ,我们考虑其风险函数 在整个参数空间 上的最大值。这个最大值被称为 的最大风险(Maximum Risk),记为 : 最大风险 衡量了采用决策函数 时,可能遭受的“最坏”风险(即最大平均损失)。
Minimax准则的定义
Minimax准则的核心思想是:在所有可能的决策函数中,选择那个最大风险最小的。也就是说,我们比较的是各个决策函数的“最坏情况”,并选择“最坏情况最好”的那个。
- 优劣比较:设 和 是同一决策问题的两个决策函数。如果 ,则称 优于 (在Minimax意义下)。
- Minimax解:如果存在一个决策函数 ,使得对于任何其他决策函数 ,都有 ) \le M(\delta) 则称 为该统计决策问题的 Minimax解(或称Minimax决策函数)。
- Minimax估计与检验:当决策问题是参数估计时,Minimax解称为 Minimax估计;当决策问题是假设检验时,则称为 Minimax检验。
Minimax准则的名称直接体现了其思想:Minimize the Maximum risk(极小化极大风险)。它是一种非常保守或稳健的准则,适用于决策者极度厌恶风险,希望确保即使在最不利的情形下,损失也能被控制在尽可能低的水平。
Minimax解的求法:与贝叶斯解的联系
直接求解Minimax解通常比较困难。下面的定理揭示了Minimax解与贝叶斯解之间的深刻联系,为我们提供了求解和验证Minimax解的重要途径。
定理一:常数风险的贝叶斯解
定理 7.5.1:设 是某个先验分布 (\theta) 下的贝叶斯解(即最小化贝叶斯风险 的解)。如果 的风险函数 ) 是一个常数(即与参数 无关),那么 也是该决策问题的Minimax解。
直观理解:贝叶斯解是在先验分布下平均风险最小的解。如果这个解的风险函数恰好是常数 ,那么它的最大风险 ) = C。对于任何其他决策函数 ,其贝叶斯风险 , \delta) \ge r(\pi^, \delta^) = C。这意味着 的风险函数 在先验 下的平均值至少为 ,那么 的最大值 也必然至少为 。因此, 的最大风险 不大于任何 的最大风险,故为Minimax解。
这个定理是一个强大的验证工具。如果我们猜到一个决策函数可能是Minimax解,可以尝试寻找一个先验分布,使得该决策函数是它的贝叶斯解,并且验证其风险函数是否为常数。
定理二:贝叶斯解序列的极限
定理 7.5.2:设 是一个决策函数序列,其中 是先验分布为 时的贝叶斯解。记 为对应的贝叶斯风险。 假设该贝叶斯风险序列的极限存在且有限:。 若存在一个决策函数 ,满足 ) \le R,则 是该决策问题的Minimax解。
直观理解:这个定理提供了另一种构造Minimax解的方法。我们可以构造一列先验分布 ,计算对应的贝叶斯解序列 及其贝叶斯风险 。如果贝叶斯风险收敛到一个极限 ,并且我们能找到一个决策函数 ,其最大风险不超过这个极限 ,那么 就是Minimax解。通常,我们会选择 就是某个 ,或者是风险函数具有良好性质的简单估计量(如样本均值)。
示例:正态总体均值的Minimax估计
让我们通过一个经典例子来演示如何应用上述定理求解Minimax估计。
问题设定:
- 设 ,即方差已知为1。
- 参数空间 。
- 损失函数采用平方损失:。
- 目标是求参数 的Minimax估计。
求解过程:
构造先验分布序列: 我们考虑一列正态先验分布:,其中 。即先验均值为0,先验方差为 。
求贝叶斯解: 在平方损失下,贝叶斯估计是后验分布的均值。已知正态似然 与正态先验 共轭,其后验分布为 ,其中: 这里 是样本均值。由于先验均值为0,贝叶斯估计 就是后验均值 :
计算贝叶斯风险 : 先求 的风险函数。由 得 因此风险函数为: 再对先验 取期望(注意 ),得贝叶斯风险:
求贝叶斯风险的极限: 令 : 极限 存在且有限,满足定理7.5.2的条件。
应用定理7.5.2: 现在,我们有了贝叶斯风险序列的极限 。 考虑决策函数 (\mathbf{X}) = \bar{X},即样本均值。它的风险函数为: 这是一个常数,与 无关。因此, 的最大风险 。 由于 ,满足定理7.5.2的条件 (此处取等号)。 根据定理7.5.2,样本均值 是 的Minimax估计。
结论:在方差已知的正态总体中,对于平方损失函数,样本均值 不仅是UMVUE(一致最小方差无偏估计),也是Minimax估计。这个结果也符合定理7.5.1:当先验方差趋于无穷时(无信息先验),样本均值是贝叶斯解,且其风险函数为常数 ,因此它也是Minimax解。
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
# 模拟验证:样本均值的风险函数为常数,而其他估计量的最大风险可能更大
np.random.seed(42)
n = 10
true_thetas = np.linspace(-3, 3, 50) # 参数空间的一部分
num_sim = 10000
# 计算样本均值的风险(理论值)
risk_sample_mean = 1.0 / n # 常数风险
# 定义一个收缩估计量: delta_shrink = c * X_bar, 其中 c=0.8
c = 0.8
def simulate_risk(theta, estimator_func, n, num_sim):
"""模拟计算给定参数theta下,估计量的风险(MSE)"""
mse_vals = []
for _ in range(num_sim):
X = norm.rvs(loc=theta, scale=1.0, size=n)
estimate = estimator_func(X)
mse_vals.append((estimate - theta)**2)
return np.mean(mse_vals)
def estimator_shrink(X):
return c * np.mean(X)
# 计算收缩估计量在不同theta下的风险
risk_shrink = [simulate_risk(theta, estimator_shrink, n, num_sim) for theta in true_thetas]
max_risk_shrink = np.max(risk_shrink)
print(f"样本均值的风险(常数): {risk_sample_mean:.4f}")
print(f"收缩估计量(c={c})的最大风险(模拟): {max_risk_shrink:.4f}")
print(f"Minimax准则下,样本均值 {'优于' if risk_sample_mean < max_risk_shrink else '不优于'} 收缩估计量。")
# 可视化
plt.figure(figsize=(9, 5))
plt.plot(true_thetas, [risk_sample_mean]*len(true_thetas), 'r-', linewidth=2, label=r'样本均值 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mover accent="true"><mi>X</mi><mo>ˉ</mo></mover></mrow><annotation encoding="application/x-tex">\bar{X}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="katex-base"><span class="katex-strut" style="height:0.8201em;"></span><span class="mord katex-accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8201em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord mathnormal" style="margin-right:0.0785em;">X</span></span><span style="top:-3.2523em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.1667em;"><span class="mord">ˉ</span></span></span></span></span></span></span></span></span></span> (风险=<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mn>1</mn><mi mathvariant="normal">/</mi><mi>n</mi></mrow><annotation encoding="application/x-tex">1/n</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="katex-base"><span class="katex-strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord">1/</span><span class="mord mathnormal">n</span></span></span></span>)')
plt.plot(true_thetas, risk_shrink, 'b--', linewidth=1.5, label=rf'收缩估计 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>c</mi><mover accent="true"><mi>X</mi><mo>ˉ</mo></mover></mrow><annotation encoding="application/x-tex">{c}\bar{{X}}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="katex-base"><span class="katex-strut" style="height:0.8201em;"></span><span class="mord"><span class="mord mathnormal">c</span></span><span class="mord katex-accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8201em;"><span style="top:-3em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.0785em;">X</span></span></span><span style="top:-3.2523em;"><span class="pstrut" style="height:3em;"></span><span class="accent-body" style="left:-0.1667em;"><span class="mord">ˉ</span></span></span></span></span></span></span></span></span></span>')
plt.fill_between(true_thetas, 0, max_risk_shrink, color='blue', alpha=0.1, label='收缩估计的最大风险区域')
plt.axhline(y=max_risk_shrink, color='blue', linestyle=':', alpha=0.7)
plt.xlabel(r'参数真值 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>θ</mi></mrow><annotation encoding="application/x-tex">\theta</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="katex-base"><span class="katex-strut" style="height:0.6944em;"></span><span class="mord mathnormal" style="margin-right:0.0278em;">θ</span></span></span></span>')
plt.ylabel(r'风险函数 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>R</mi><mo stretchy="false">(</mo><mi>θ</mi><mo separator="true">,</mo><mi>δ</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">R(\theta, \delta)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="katex-base"><span class="katex-strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.0077em;">R</span><span class="mopen">(</span><span class="mord mathnormal" style="margin-right:0.0278em;">θ</span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord mathnormal" style="margin-right:0.0379em;">δ</span><span class="mclose">)</span></span></span></span>')
plt.title(f'Minimax准则对比:样本均值 vs 收缩估计 (n={n})')
plt.legend()
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()📝 动手练一练
理解最大风险 设 ,其中 。考虑估计 ,损失函数为 。现有两个估计量: (样本比例), (拉普拉斯平滑估计)。 a) 计算(或推导)两个估计量的风险函数 和 。 b) 当 时,通过数值模拟或理论分析,近似找出两个估计量的最大风险 和 分别在 为何值时达到?哪个估计量在Minimax准则下更优?
验证Minimax估计 对于练习1中的二项分布模型,考虑先验分布 ,其中 为常数。 a) 在平方损失下,写出 的贝叶斯估计 (即后验期望)的表达式。 b) 证明当 时, 的风险函数为常数(提示:展开风险函数的分子并合并同类项)。 c) (选做)根据定理7.5.1,说明 是 的Minimax估计。
参考答案:
a)
- .
- . 化简后可得:. b) 对于 ,,这是一个关于 的二次函数,在 时取得最大值 。故 。 对于 ,需要分析函数 在 上的最大值。这是开口向下的二次函数,由 得驻点 ,即最大值在 处达到,。故 。 由于 ,因此在Minimax准则下, 优于 。
a) 当先验为 ,似然为二项分布时,后验分布为 。在平方损失下,贝叶斯估计为后验均值: b) 风险函数为 。利用 ,: - ,故 ; - 。 合并得: 当 时,,代入并展开分子: 分子 = 项与 项恰好完全抵消,分子恒等于常数 。 因此,,与 无关,是常数。 c) 根据定理7.5.1, 是 先验下的贝叶斯解,且其风险函数为常数。因此,它是 的 精确Minimax估计,它在整个参数空间上提供了完全均匀的风险控制。
本章小结
本节我们学习了统计决策理论中一个重要的稳健性准则——Minimax准则。
- 核心思想:Minimax准则是一种保守的决策原则,它致力于最小化决策函数在最坏参数情况下的最大风险 。这适用于风险厌恶型决策者。
- 与贝叶斯解的联系:Minimax解通常可以通过贝叶斯解来构造或验证。关键定理指出:
- 风险函数为常数的贝叶斯解一定是Minimax解。
- 若一列贝叶斯解的贝叶斯风险收敛于有限值 ,且存在某决策函数的最大风险不超过 ,则该决策函数是Minimax解。
- 求解与应用:直接求解Minimax解较困难,通常利用上述定理。正态总体均值在平方损失下的Minimax估计就是样本均值,这是一个经典结论。
- 特点:Minimax准则非常稳健,能保证在最坏情况下的表现。但其解可能过于保守,且在实际复杂模型中的求解颇具挑战。
行动清单
- 概念辨析:清晰区分“风险函数”、“最大风险”、“贝叶斯风险”和“Minimax解”这几个核心概念。
- 定理应用:尝试对简单的统计模型(如伯努利分布、泊松分布),仿照本节示例,构造先验序列并验证某个常见估计量(如样本均值)是否为Minimax估计。
- 代码验证:使用提供的Python代码框架,修改估计量函数和损失函数,模拟比较不同估计量在Minimax准则下的优劣,直观理解“最大风险最小化”的含义。
— 小象教研组
- 第6章课件:Bayes统计与统计判决理论(PDF · 3.6MB)下载
领取《小象 11GB VIP 课件资料包与大厂真题手册》
包含全套实战 Jupyter 源码、清洗后数据集、大厂高频面试真题与专属学员答疑交流群。
- ✔完整 Python / 数据分析 Jupyter 实战源码
- ✔大厂真实业务数据集与练习题
- ✔微信扫码添加课程顾问,免费获取网盘下载链接
微信扫码添加顾问