极大似然估计
小象实战讲义 · 数据科学的统计基础
在上一节矩估计中,我们学习了如何利用样本矩去估计总体矩,这是一种直观且对总体分布形式要求不高的方法。然而,当我们已知或假设总体服从某种特定分布时,是否有更“聪明”的方法来利用这些信息,从而得到更精确的参数估计呢?本节将要介绍的极大似然估计(Maximum Likelihood Estimation, MLE)正是这样一种强大且应用广泛的参数估计方法。学完本节,你将能够理解“似然”的核心思想,掌握求解极大似然估计的一般步骤,并运用它来解决正态分布、均匀分布等经典问题,为后续学习更复杂的统计模型(如回归、分类)打下坚实的理论基础。
💡 核心导读
- 思想核心:理解“似然”的含义——在给定观测样本的条件下,寻找最有可能(即概率最大)产生这组样本的总体参数。
- 核心工具:掌握似然函数与对数似然函数的定义,并理解为何求解后者更为便捷。
- 求解方法:学习针对连续可导、存在间断点、离散参数等不同情况,如何求解极大似然估计。
- 重要性质:了解极大似然估计与充分统计量的关系,以及其不变性原理——函数参数的MLE等于参数MLE的函数。
- 实践验证:通过Python代码模拟抽样,直观验证极大似然估计量的性质。
从“看起来像”到数学原理
为了理解“似然”思想,我们先看一个经典的例子。
罐中黑白球问题:假设一个罐中放有大量白球和黑球,已知两种球的数量之比为1:3,但不知道哪种颜色是“1”,哪种是“3”。也就是说,有两种可能:
- 情况一:白球:黑球 = 1:3,即黑球比例 p=3/4。
- 情况二:白球:黑球 = 3:1,即黑球比例 p=1/4。
我们的目标是通过抽样来估计真实的 p。假设我们采用有放回抽样,抽取了 n=3 次,记录抽到黑球的个数 X。显然,X 服从二项分布 B(3,p)。我们可以计算在不同 p 取值下,观测到不同黑球个数 x 的概率:
| x (黑球个数) | P(X=x∣p=3/4) | P(X=x∣p=1/4) |
|---|
| 0 | (1/4)3 | (3/4)3 |
| 1 | 3×(3/4)×(1/4)2 | 3×(1/4)×(3/4)2 |
| 2 | 3×(3/4)2×(1/4) | 3×(1/4)2×(3/4) |
| 3 | (3/4)3 | (1/4)3 |
现在,假设我们实际抽样的结果是 x=0,即三次都没抽到黑球。比较上表第一行:
- 当 p=1/4 时,P(X=0)=(3/4)3=27/64。
- 当 p=3/4 时,P(X=0)=(1/4)3=1/64。
显然,27/64>1/64。这意味着,在观测到 x=0 的条件下,参数 p=1/4 比 p=3/4 使得该观测结果“发生”的可能性更大。因此,我们更倾向于认为真实的 p 是 1/4。
这就是极大似然原理的朴素思想:认为概率最大的事件是最有可能发生的。我们选取的参数估计值 p^,应该使得在它之下,观测到当前样本的概率达到最大。
似然函数与极大似然估计
现在我们将这一思想推广到一般情况。
似然函数的定义
设总体 X 的概率密度函数(连续型)或分布律(离散型)为 f(x;θ),其中 θ 是未知参数(可以是向量)。X1,X2,…,Xn 是来自该总体的一个样本,其观测值为 x1,x2,…,xn。
样本的联合密度函数(或联合分布律)为: L(θ)=L(θ;x1,…,xn)=i=1∏nf(xi;θ) 当我们把 x1,…,xn 看作固定的观测值,而将 θ 视为变量时,这个函数 L(θ) 就称为参数 θ 的似然函数。
理解关键:
- 样本产生机制:在频率学派的框架下,我们认为参数 θ 是固定但未知的常数。上帝先选定一个 θ,然后根据分布 f(x;θ) 随机生成了我们观测到的样本 x1,…,xn。
- 似然的含义:对于不同的候选参数值 θ1 和 θ2,如果 L(θ1)>L(θ2),则说明在 θ1 对应的总体下,“恰好”生成我们手中这组样本的可能性,要比在 θ2 对应的总体下更大。因此,θ1 “看起来更像”是真实的参数。这就是“似然”(Likelihood)一词的含义——看起来像。
- 与概率的区别:似然函数 L(θ) 是 θ 的函数,描述的是参数取不同值的相对可能性,其取值本身并不是概率(对 θ 的积分不一定为1)。而概率密度 f(x;θ) 是 x 的函数,描述在给定 θ 时随机变量取值的分布。
极大似然估计的定义
根据极大似然原理,我们选择使得似然函数 L(θ) 达到最大的那个 θ 值作为参数的估计。
形式上,若存在统计量 θ^=θ^(X1,…,Xn),使得 L(θ^)=θ∈ΘmaxL(θ) 其中 Θ 是参数空间,则称 θ^ 为 θ 的极大似然估计量(MLE),而相应的观测值 θ^(x1,…,xn) 称为极大似然估计值。求极大似然估计的方法称为极大似然估计法。
极大似然估计的求解方法
求解 MLE 本质上是一个优化问题:maxθL(θ)。根据似然函数的形式,我们有不同的求解策略。
情况一:连续可导情形(最常用)
如果似然函数 L(θ) 关于 θ 连续且可导,通常通过求导来寻找极值点。由于 L(θ) 是连乘形式,直接求导复杂。考虑到自然对数函数 ln(x) 是单调递增函数,最大化 L(θ) 等价于最大化其对数 lnL(θ)。
我们定义对数似然函数: ℓ(θ)=lnL(θ)=i=1∑nlnf(xi;θ) 对 ℓ(θ) 求导并令其为零,得到似然方程(通常指对数似然方程): ∂θ∂ℓ(θ)=0 解此方程得到的根 θ^,即为 θ 的极大似然估计。通常还需验证二阶条件(Hessian矩阵负定)以确保是极大值点,但在许多常见分布中,该解是唯一的极大值点。
例1:正态总体的极大似然估计 设总体 X∼N(μ,σ2),X1,…,Xn 为样本。求参数 μ 和 σ2 的 MLE。
写出似然函数: L(μ,σ2)=i=1∏n2πσ21exp(−2σ2(xi−μ)2)=(2πσ2)−n/2exp(−2σ21i=1∑n(xi−μ)2)
取对数,得对数似然函数: ℓ(μ,σ2)=−2nln(2π)−2nln(σ2)−2σ21i=1∑n(xi−μ)2
建立似然方程组并求解:
- 对 μ 求偏导: ∂μ∂ℓ=σ21i=1∑n(xi−μ)=0⇒i=1∑nxi−nμ=0 解得: μ^=n1i=1∑nXi=Xˉ
- 对 σ2 求偏导(将 μ^ 代入): 令 τ=σ2,则 ∂τ∂ℓ=−2τn+2τ21i=1∑n(xi−μ^)2=0 解得: σ^2=n1i=1∑n(Xi−Xˉ)2
结论:正态总体 N(μ,σ2) 的极大似然估计为 μ^=Xˉ,σ^2=n1∑i=1n(Xi−Xˉ)2。这与矩估计的结果一致。注意,这里的 σ^2 是有偏估计。
我们可以用 Python 来模拟验证这一结果。
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
# 设置随机种子,确保结果可复现
np.random.seed(321)
# 1. 生成模拟数据:假设真实参数 mu=5, sigma^2=4 (sigma=2)
true_mu, true_sigma2 = 5, 4
n = 1000 # 样本量
sample = np.random.normal(loc=true_mu, scale=np.sqrt(true_sigma2), size=n)
# 2. 计算样本的极大似然估计
mu_mle = np.mean(sample)
sigma2_mle = np.var(sample, ddof=0) # ddof=0 表示除n,即MLE;ddof=1表示除n-1,即无偏估计
print(f"真实参数: μ = {true_mu}, σ² = {true_sigma2}")
print(f"极大似然估计: μ_MLE = {mu_mle:.4f}, σ²_MLE = {sigma2_mle:.4f}")
print(f"无偏样本方差: σ²_unbiased = {np.var(sample, ddof=1):.4f}")
# 3. 可视化:绘制真实分布密度曲线与样本直方图
x_grid = np.linspace(true_mu - 3*np.sqrt(true_sigma2), true_mu + 3*np.sqrt(true_sigma2), 200)
pdf_true = stats.norm.pdf(x_grid, loc=true_mu, scale=np.sqrt(true_sigma2))
pdf_mle = stats.norm.pdf(x_grid, loc=mu_mle, scale=np.sqrt(sigma2_mle))
plt.figure(figsize=(10, 6))
plt.hist(sample, bins=30, density=True, alpha=0.6, color='skyblue', edgecolor='black', label='样本直方图')
plt.plot(x_grid, pdf_true, 'r-', lw=2, label=f'真实分布 N({true_mu}, {true_sigma2})')
plt.plot(x_grid, pdf_mle, 'g--', lw=2, label=f'MLE拟合分布 N({mu_mle:.2f}, {sigma2_mle:.2f})')
plt.xlabel('x')
plt.ylabel('概率密度')
plt.title('正态分布极大似然估计模拟验证')
plt.legend()
plt.grid(True, alpha=0.3)
plt.show()
情况二:似然函数有间断点
当似然函数关于参数不连续时,无法直接求导,需要从定义出发分析。
例2:均匀分布的极大似然估计 设总体 X∼U(a,b),即概率密度函数为: f(x;a,b)={b−a1,0,a≤x≤b其他 样本为 X1,…,Xn,求 a,b 的 MLE。
写出似然函数: L(a,b)=i=1∏nf(xi;a,b)={(b−a1)n,0,若 a≤x(1)≤x(n)≤b其他 其中 x(1)=min{x1,…,xn}, x(n)=max{x1,…,xn} 为次序统计量。
分析最大化:为了使 L(a,b)>0,必须满足 a≤x(1) 且 b≥x(n)。在此条件下,L(a,b)=(b−a)−n。由于 n>0,最大化 L(a,b) 等价于最小化区间长度 (b−a)。
结合约束求解:要最小化 (b−a),同时满足 a≤x(1) 和 b≥x(n),最优解显然是取 a 尽可能大,b 尽可能小。因此,取: a^=X(1),b^=X(n) 即均匀分布端点参数的 MLE 分别为最小和最大次序统计量。
情况三:离散参数空间
当参数空间是离散的(如整数),通常通过比较不同参数值对应的似然函数值来求解。
例3:池塘捕鱼问题(标记重捕法) 池塘中有 N 条鱼(未知)。先捕获 r 条做标记后放回。充分混合后,再捕获 s 条,发现其中有 x 条带标记。用 MLE 估计 N。
建立模型:第二次捕获的带标记鱼数 X 服从超几何分布: P(X=x)=(sN)(xr)(s−xN−r),max(0,s−(N−r))≤x≤min(r,s)
似然函数:L(N)=P(X=x),视为 N 的函数。
求解:考虑比值 L(N)/L(N−1): L(N−1)L(N)=NN−r⋅N−r−s+xN−s 令其 ≥1,可解得当 N≤xrs 时,L(N) 单调增;当 N≥xrs 时,L(N) 单调减。因此,似然函数在 N=⌊rs/x⌋ 或 ⌈rs/x⌉ 处取得最大值(取使 L(N) 更大的整数)。通常取 N^=⌊rs/x⌋ 作为 MLE。
代入具体数字:r=500,s=1000,x=72,则 N^=⌊(500×1000)/72⌋=⌊6944.4⌋=6944。
极大似然估计的性质
极大似然估计拥有许多优良的渐近性质(如相合性、渐近正态性),这些将在后续章节详细讨论。这里介绍两个重要的小样本性质。
性质一:与充分统计量的关系
定理:设总体分布族存在关于参数 θ 的充分统计量 T=T(X1,…,Xn),则似然方程的解(即 MLE)θ^ 一定是充分统计量 T 的函数。
这个性质非常重要,它意味着如果我们找到了充分统计量,那么寻找 MLE 的范围可以缩小到充分统计量的函数集合中,这常常能简化问题。进一步,由于充分统计量的可测函数仍是充分的(在函数可逆的条件下),MLE 本身也是一个充分统计量。
性质二:不变性原理
不变性原理:若 θ^ 是参数 θ 的极大似然估计,g(θ) 是 θ 的函数,则 g(θ^) 是 g(θ) 的极大似然估计。
这是一个非常强大且实用的性质。例如,在正态分布中,我们求得 σ^2 是 σ2 的 MLE,那么根据不变性原理,标准差 σ 的 MLE 就是 σ^=σ^2。这避免了对 σ 重新求解似然方程的麻烦。
📝 动手练一练
指数分布的 MLE:设总体 X 服从指数分布,其概率密度函数为 f(x;λ)=λe−λx,x>0,λ>0。X1,…,Xn 为来自该总体的样本。试求参数 λ 的极大似然估计量 λ^。
不变性原理应用:接上题,请求出总体均值 E(X)=1/λ 的极大似然估计。
参考答案:
- 似然函数 L(λ)=∏i=1nλe−λxi=λne−λ∑i=1nxi。对数似然函数 ℓ(λ)=nlnλ−λ∑i=1nxi。求导得 dλdℓ=λn−∑i=1nxi=0,解得 λ^=∑i=1nXin=Xˉ1。
- 根据不变性原理,E(X)=1/λ 的 MLE 为 1/λ^=Xˉ。
本章小结
本节深入探讨了点估计的核心方法之一——极大似然估计。我们从“罐中摸球”的直观例子出发,理解了“似然”即“看起来像”的核心思想:在已观测到样本的条件下,选择最有可能产生该样本的总体参数作为估计。
要点回顾:
- 似然函数 L(θ) 是样本联合分布关于参数 θ 的函数,它衡量了不同 θ 值“解释”当前观测数据的相对可能性。
- 求解 MLE 的关键是最大化似然函数。对于连续可导情形,通常通过求解对数似然方程 ∂θ∂lnL(θ)=0 得到估计量。对于均匀分布等特殊情形,需从定义出发直接分析。
- 重要性质:MLE 是充分统计量的函数,并且具有不变性——函数参数的 MLE 等于参数 MLE 的函数。
- 与矩估计对比:MLE 充分利用了总体分布的信息,通常具有更好的统计性质(如渐近有效性),但依赖于分布形式的正确设定。
行动清单:
- 掌握核心推导:亲手推导一遍正态分布、指数分布参数的 MLE,确保理解每一步。
- 代码验证:运行讲义中的 Python 代码,并尝试修改参数(如
true_mu, true_sigma2, n),观察 MLE 的估计效果如何随样本量增大而变化。 - 应用练习:尝试求解伯努利分布 B(1,p) 参数 p 的 MLE,并思考其与频率估计的关系。
— 小象教研组