背景
最大似然估计(Maximum Likelihood Estimation, MLE)是一种估计统计模型参数的方法。它在众多统计学领域中被广泛使用,比如回归分析、时间序列分析、机器学习和经济学。其核心思想是:给定一个观测数据集,找到一组参数,使得在这些参数下观测到当前数据的可能性(似然)最大。
公式
假设我们有一个参数为 θ 的概率分布,观测数据为 X=(x1,x2,…,xn),则似然函数(Likelihood Function)可以表示为:
L(θ;X)=P(X∣θ)=i=1∏nP(xi∣θ)
为了简化计算,我们通常使用对数似然函数(Log-Likelihood Function):
ℓ(θ;X)=logL(θ;X)=i=1∑nlogP(xi∣θ)
最大似然估计的目标是找到参数 θ,使得对数似然函数 ℓ(θ;X) 达到最大值。即:
θ^=argθmaxℓ(θ;X)
示例题目
正态分布的概率密度函数(PDF)可以表示为:
f(x∣μ,σ2)=2πσ21exp(−2σ2(x−μ)2)
假设我们有一组观测数据 X=(x1,x2,…,xn),这些数据都来自于一个正态分布 N(μ,σ2)。我们希望估计正态分布的参数 μ 和 σ2。
观测数据为 X=(x1,x2,…,xn)。
详细讲解
- 写出似然函数:根据正态分布的概率密度函数,似然函数可以写为:
似然函数 L(μ,σ2;X) 是在给定参数 μ 和 σ2 下,观测数据 X 出现的概率。对于独立同分布的数据,这个概率是每个数据点概率密度的乘积,即:
L(μ,σ2;X)=i=1∏nf(xi∣μ,σ2)
将正态分布的概率密度函数代入似然函数中,得到:
L(μ,σ2;X)=i=1∏n2πσ21exp(−2σ2(xi−μ)2)
对数似然函数
-
取对数:为了简化计算,取对数得到对数似然函数:
ℓ(μ,σ2;X)=i=1∑nlog(2πσ21exp(−2σ2(xi−μ)2))
进一步简化:
ℓ(μ,σ2;X)=−2nlog(2πσ2)−2σ21i=1∑n(xi−μ)2
-
求导并解方程:对 μ 和 σ2 分别求导并令其等于零,可以得到参数的估计值。
对 μ 求导:
∂μ∂ℓ=σ21i=1∑n(xi−μ)=0
解得:
μ^=n1i=1∑nxi
对 σ2 求导:
∂σ2∂ℓ=−2σ2n+2σ41i=1∑n(xi−μ)2=0
解得:
σ^2=n1i=1∑n(xi−μ)2
Python代码求解
import numpy as np
X = np.array([2.3, 1.9, 3.1, 2.8, 2.4])
mu_hat = np.mean(X)
sigma_squared_hat = np.var(X, ddof=0)
print("估计的均值 μ:", mu_hat)
print("估计的方差 σ^2:", sigma_squared_hat)
实际生活中的例子
最大似然估计在实际生活中的应用广泛。例如,在医学研究中,科学家常常需要估计某种疾病的发病率。假设有一个新的传染病,研究人员需要估计其传播率(即,传染给某人的概率)。他们收集了若干病例数据,通过最大似然估计,可以得到传播率的最优估计,从而帮助制定防控策略。
最大似然估计同样可以应用于金融领域,比如估计股票的收益率和风险;在机器学习中,用于训练模型的参数,如线性回归中的回归系数等。