文章目录
统计机器学习
最大似然估计(Maximum Likelihood Estimation,MLE)
是一种在统计学中用来估计概率模型参数的方法。它通过最大化似然函数来估计模型的参数,使得在这组参数下观测到的数据出现的概率最大。
基本原理
- 似然函数:似然函数表示在给定参数下,观测到特定数据样本的概率。对于独立同分布的数据样本,似然函数通常是每个数据点概率的乘积。
- 对数似然:由于似然函数通常是多个概率的乘积,为了简化计算,通常取其对数,得到对数似然函数。对数似然函数在求最大值时与原似然函数具有相同的解,但计算更为简便。
- 最大化似然:通过求解对数似然函数的最大值,可以得到模型参数的估计值。这通常涉及到对似然函数求导并令其为0,解出参数值。
极大似然估计(Maximum Likelihood Estimation, MLE)是一种统计方法,用于在给定观测数据的情况下,估计概率模型中的未知参数。这种方法基于一个直观的原理:选择那些使得观察到的数据出现概率最大的参数值。以下是极大似然估计如何工作的详细解释:
一、原理概述
极大似然估计的核心思想是在所有可能的参数取值中,找到那个使观测数据出现概率最大的参数值。这个概率被称为似然函数,而极大似然估计就是要最大化这个似然函数。
二、工作步骤
-
建立概率模型:
- 首先,假设观测数据来自一个已知的概率分布(如正态分布、泊松分布等),但这个分布的具体参数是未知的。
- 根据已有信息和问题背景,选择合适的概率分布作为数据的模型。
-
建立似然函数:
- 将观测数据的概率分布函数表示为参数的函数,这个函数就是似然函数。
- 对于独立同分布的观测数据
X
1
,
X
2
,
.
.
.
,
X
n
X_1, X_2, ..., X_n
X1,X2,...,Xn,似然函数
L
(
θ
)
L(\theta)
L(θ) 可以表示为所有观测数据的联合概率:
L ( θ ) = f ( X 1 ∣ θ ) ⋅ f ( X 2 ∣ θ ) ⋅ . . . ⋅ f ( X n ∣ θ ) L(\theta) = f(X_1|\theta) \cdot f(X_2|\theta) \cdot ... \cdot f(X_n|\theta) L(θ)=f(X1∣θ)⋅f(X2∣θ)⋅...⋅f(Xn∣θ)
其中, f ( x ∣ θ ) f(x|\theta) f(x∣θ) 是观测数据 X X X 在参数为 θ \theta θ 时的概率密度函数(连续分布)或概率质量函数(离散分布)。
-
极大化似然函数:
- 为了便于计算,通常对似然函数取对数,得到对数似然函数
l
(
θ
)
l(\theta)
l(θ):
l ( θ ) = log L ( θ ) l(\theta) = \log L(\theta) l(θ)=logL(θ) - 然后,通过求导数并令其为零,找到使对数似然函数最大的参数值
θ
^
\hat{\theta}
θ^:
d l ( θ ) d θ = 0 \frac{dl(\theta)}{d\theta} = 0 dθdl(θ)=0 - 解这个方程,就可以得到极大似然估计的参数值 θ ^ \hat{\theta} θ^。
- 为了便于计算,通常对似然函数取对数,得到对数似然函数
l
(
θ
)
l(\theta)
l(θ):
三、应用实例
以抛硬币实验为例,假设我们有一个不公平的硬币,正面朝上的概率是未知的 p p p,反面朝上的概率是 1 − p 1-p 1−p。我们进行了 n n n 次抛硬币实验,观察到正面朝上的次数是 k k k。
-
似然函数:
L ( p ) = p k ( 1 − p ) ( n − k ) L(p) = p^k (1-p)^{(n-k)} L(p)=pk(1−p)(n−k) -
对数似然函数:
ln L ( p ) = k ln p + ( n − k ) ln ( 1 − p ) \ln L(p) = k \ln p + (n-k) \ln (1-p) lnL(p)=klnp+(n−k)ln(1−p) -
求导并令其为零:
d d p ln L ( p ) = k p − n − k 1 − p = 0 \frac{d}{dp} \ln L(p) = \frac{k}{p} - \frac{n-k}{1-p} = 0 dpdlnL(p)=pk−1−pn−k=0 -
解方程:
p = k n p = \frac{k}{n} p=nk
这就是通过极大似然估计得到的硬币正面朝上的概率 p p p 的估计值。
四、性质与局限性
- 性质:极大似然估计具有一些理想的性质,如一致性、渐进正态性和效率。
- 局限性:然而,它也可能受到异常值的影响,对模型假设的敏感性较高,并且在实际应用中可能存在计算困难。
综上所述,极大似然估计是一种强大且直观的参数估计方法,通过最大化观测数据的出现概率来估计模型中的未知参数。
求解步骤
- 写出似然函数:根据模型的假设和数据样本,写出似然函数。
- 取对数:对似然函数取对数,得到对数似然函数。
- 求导并解方程:对对数似然函数求导,并令其为0,解出参数值。这可能需要使用微积分中的求导技巧和方程求解方法。
- 验证解:检查求得的解是否满足原问题的约束条件,并验证其是否为最大值点(可以通过二阶导数检验等方法)。
示例
以正态分布为例,假设我们有一组数据样本X = {x1, x2, ..., xn}
,且假设这些数据来自均值为μ、方差为σ²的正态分布。我们的目标是估计μ和σ²。
- 似然函数:对于正态分布,似然函数为:
L ( μ , σ 2 ) = ∏ i = 1 n 1 2 π σ 2 exp ( − ( x i − μ ) 2 2 σ 2 ) L(\mu, \sigma^2) = \prod_{i=1}^{n} \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{(x_i - \mu)^2}{2\sigma^2}\right) L(μ,σ2)=i=1∏n2πσ21exp(−2σ2(xi−μ)2) - 对数似然:取对数后得到:
log L ( μ , σ 2 ) = − n 2 log ( 2 π σ 2 ) − 1 2 σ 2 ∑ i = 1 n ( x i − μ ) 2 \log L(\mu, \sigma^2) = -\frac{n}{2} \log(2\pi\sigma^2) - \frac{1}{2\sigma^2} \sum_{i=1}^{n} (x_i - \mu)^2 logL(μ,σ2)=−2nlog(2πσ2)−2σ21i=1∑n(xi−μ)2 - 求导并解方程:分别对μ和σ²求导,并令其为0,解得:
μ = 1 n ∑ i = 1 n x i (样本均值) \mu = \frac{1}{n} \sum_{i=1}^{n} x_i \quad \text{(样本均值)} μ=n1i=1∑nxi(样本均值)
σ 2 = 1 n ∑ i = 1 n ( x i − μ ) 2 (样本方差) \sigma^2 = \frac{1}{n} \sum_{i=1}^{n} (x_i - \mu)^2 \quad \text{(样本方差)} σ2=n1i=1∑n(xi−μ)2(样本方差)
正态分布(Normal Distribution)
也被称为高斯分布(Gaussian Distribution),是连续变量概率分布的一种,其概率密度函数为一特定的对称钟形曲线。正态分布是自然界和许多社会科学领域中最为常见的一种分布形式,例如身高、体重、考试成绩等数据的分布往往都近似于正态分布。
定义
正态分布的定义基于其概率密度函数(Probability Density Function, PDF),该函数描述了随机变量取某一特定值的可能性。正态分布由两个参数决定:均值(μ)和标准差(σ)。均值决定了分布的中心位置,而标准差决定了分布的宽度或离散程度。
公式
正态分布的概率密度函数公式为:
f ( x ) = 1 σ 2 π e − ( x − μ ) 2 2 σ 2 f(x) = \frac{1}{\sigma \sqrt{2\pi}} e^{-\frac{(x-\mu)^2}{2\sigma^2}} f(x)=σ2π1e−2σ2(x−μ)2
其中:
- f ( x ) f(x) f(x)是随机变量 x x x 的概率密度函数值。
- μ \mu μ 是均值(Mean),表示分布的中心位置。
- σ \sigma σ 是标准差(Standard Deviation),表示分布的离散程度。
- π \pi π是圆周率。
- e e e 是自然对数的底数。
性质
- 对称性:正态分布曲线关于均值 μ \mu μ 对称。
- 钟形曲线:正态分布曲线呈钟形,两端低中间高。
- 面积:正态分布曲线下的总面积为1,表示所有可能取值的概率之和为1。
- 标准化:通过标准化变换(Z-score变换),任何正态分布都可以转换为标准正态分布(均值为0,标准差为1)。
应用
正态分布广泛应用于统计学、机器学习、社会科学、医学等领域。例如,在假设检验中,正态分布常用于构建检验统计量;在机器学习领域,正态分布是许多算法(如高斯朴素贝叶斯分类器)的基础。
总之,正态分布是概率论和统计学中的一个重要概念,对于理解和分析许多自然现象和社会现象具有重要意义。
注意事项
- 最大似然估计依赖于数据的分布假设,如果假设不正确,估计结果可能不准确。
- 对于小样本数据,最大似然估计可能不够稳定,需要谨慎使用。
- 在某些情况下,最大似然估计可能无法得到唯一解或解析解,需要借助数值优化方法。
最大似然估计算法详解
(Maximum Likelihood Estimation, MLE)是一种在统计学中广泛应用的参数估计方法。其核心思想是通过观测到的数据来估计概率模型的参数,使得在这些参数下观测到的数据出现的概率最大。以下是最大似然估计算法的原理、推导、公式、计算及例子的详细介绍:
最大似然估计算法过程
最大似然估计(Maximum Likelihood Estimation, MLE)是一种统计方法,用于估计概率模型的参数,使得在给定的观测数据下,这些参数能最大化观测数据出现的概率。其算法过程大致如下:
-
确定概率模型:
- 首先,需要根据实际问题和数据的特性选择一个合适的概率模型,如正态分布、泊松分布等。
-
写出似然函数:
- 似然函数是给定参数下观测数据出现的概率。对于独立同分布的数据,似然函数是所有数据点概率的乘积。
-
取对数似然函数:
- 由于乘积可能导致数值下溢,通常取对数似然函数进行计算。对数似然函数是似然函数的自然对数,它在优化过程中更易处理。
-
求导数并令其为0:
- 计算对数似然函数关于模型参数的导数,并令其为0,以找到似然函数的极大值点。这通常涉及复杂的数学计算。
-
求解参数:
- 通过解导数等于0的方程或使用优化算法(如牛顿-拉弗森方法、梯度下降法等)来求解参数的最大似然估计值。
-
验证解的有效性:
- 验证解的唯一性和有效性,检查解是否在参数的合理范围内。
-
计算标准误差:
- 评估参数估计的不确定性,通常通过计算参数估计的标准误差来实现。
原理
最大似然估计建立在极大似然原理的基础上,即一个随机试验若有若干个可能的结果A, B, C, …,若在一次试验中,结果A出现,则一般认为试验条件对A出现有利,也即A出现的概率很大。因此,我们可以选择使得观测数据出现概率最大的参数值作为参数的估计值。
推导与公式
对于一组观测数据 X = x 1 , x 2 , . . . , x n X = {x_1, x_2, ..., x_n} X=x1,x2,...,xn,假设这些数据独立同分布地来自某个参数为 θ \theta θ的概率分布函数 f ( x ; θ ) f(x;\theta) f(x;θ)。则似然函数 L ( θ ∣ X ) L(\theta|X) L(θ∣X)定义为在给定参数 θ \theta θ下观测数据 X X X出现的概率,即
L ( θ ∣ X ) = ∏ i = 1 n f ( x i ; θ ) L(\theta|X) = \prod_{i=1}^n f(x_i;\theta) L(θ∣X)=i=1∏nf(xi;θ)
为了计算方便,通常对似然函数取对数,得到对数似然函数
ln L ( θ ∣ X ) = ∑ i = 1 n ln f ( x i ; θ ) \ln L(\theta|X) = \sum_{i=1}^n \ln f(x_i;\theta) lnL(θ∣X)=i=1∑nlnf(xi;θ)
最大似然估计的目标就是找到使得对数似然函数 ln L ( θ ∣ X ) \ln L(\theta|X) lnL(θ∣X)最大的参数值 θ ^ \hat{\theta} θ^,即
θ ^ = arg max θ ln L ( θ ∣ X ) \hat{\theta} = \arg\max_{\theta} \ln L(\theta|X) θ^=argθmaxlnL(θ∣X)
计算步骤
-
定义似然函数:根据概率模型和观测数据,定义似然函数 L ( θ ∣ X ) L(\theta|X) L(θ∣X)。
-
取对数:对似然函数取对数,得到对数似然函数 ln L ( θ ∣ X ) \ln L(\theta|X) lnL(θ∣X)。
-
求导数:对对数似然函数求导数,并令导数等于零,得到似然方程。
-
解方程:解似然方程,得到参数 θ \theta θ的估计值 θ ^ \hat{\theta} θ^。
-
验证:验证所得的 θ ^ \hat{\theta} θ^值是否为最大值,可以通过二阶导数或其他方法进行验证。
例子
例子1:抛硬币实验
假设我们有一个不公平的硬币,正面朝上的概率是 p p p(未知),反面朝上的概率是 1 − p 1-p 1−p。我们进行了 n n n次抛硬币实验,观察到正面朝上的次数是 k k k。
-
似然函数:
L ( p ) = p k ( 1 − p ) ( n − k ) L(p) = p^k (1-p)^{(n-k)} L(p)=pk(1−p)(n−k)
-
对数似然函数:
ln L ( p ) = k ln p + ( n − k ) ln ( 1 − p ) \ln L(p) = k \ln p + (n-k) \ln (1-p) lnL(p)=klnp+(n−k)ln(1−p)
-
求导数并令其为0:
d d p ln L ( p ) = k p − n − k 1 − p = 0 \frac{d}{dp} \ln L(p) = \frac{k}{p} - \frac{n-k}{1-p} = 0 dpdlnL(p)=pk−1−pn−k=0
-
解方程:
p = k n p = \frac{k}{n} p=nk
例子2:正态分布参数估计
设总体 X X X服从正态分布 N ( μ , σ 2 ) N(\mu, \sigma^2) N(μ,σ2), X 1 , X 2 , . . . , X n X_1, X_2, ..., X_n X1,X2,...,Xn是来自总体 X X X的一个样本,求 μ \mu μ和 σ 2 \sigma^2 σ2的最大似然估计。
-
似然函数:
L ( μ , σ 2 ) = ∏ i = 1 n 1 2 π σ 2 exp ( − ( x i − μ ) 2 2 σ 2 ) L(\mu, \sigma^2) = \prod_{i=1}^{n} \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{(x_i - \mu)^2}{2\sigma^2}\right) L(μ,σ2)=i=1∏n2πσ21exp(−2σ2(xi−μ)2)
-
对数似然函数:
ln L ( μ , σ 2 ) = − n 2 ln ( 2 π σ 2 ) − 1 2 σ 2 ∑ i = 1 n ( x i − μ ) 2 \ln L(\mu, \sigma^2) = -\frac{n}{2} \ln(2\pi\sigma^2) - \frac{1}{2\sigma^2} \sum_{i=1}^{n} (x_i - \mu)^2 lnL(μ,σ2)=−2nln(2πσ2)−2σ21i=1∑n(xi−μ)2
-
分别对 μ \mu μ和 σ 2 \sigma^2 σ2求偏导并令其为0:
- 对于 μ \mu μ:
∂ ∂ μ ln L ( μ , σ 2 ) = 1 σ 2 ∑ i = 1 n ( x i − μ ) = 0 ⇒ μ = 1 n ∑ i = 1 n x i \frac{\partial}{\partial \mu} \ln L(\mu, \sigma^2) = \frac{1}{\sigma^2} \sum_{i=1}^{n} (x_i - \mu) = 0 \Rightarrow \mu = \frac{1}{n} \sum_{i=1}^{n} x_i ∂μ∂lnL(μ,σ2)=σ21i=1∑n(xi−μ)=0⇒μ=n1i=1∑nxi
- 对于 σ 2 \sigma^2 σ2:
∂ ∂ σ 2 ln L ( μ , σ 2 ) = − n 2 σ 2 + 1 2 σ 4 ∑ i = 1 n ( x i − μ ) 2 = 0 ⇒ σ 2 = 1 n ∑ i = 1 n ( x i − μ ) 2 \frac{\partial}{\partial \sigma^2} \ln L(\mu, \sigma^2) = -\frac{n}{2\sigma^2} + \frac{1}{2\sigma^4} \sum_{i=1}^{n} (x_i - \mu)^2 = 0 \Rightarrow \sigma^2 = \frac{1}{n} \sum_{i=1}^{n} (x_i - \mu)^2 ∂σ2∂lnL(μ,σ2)=−2σ2n+2σ41i=1∑n(xi−μ)2=0⇒σ2=n1i=1∑n(xi−μ)2
(注意:在实际应用中,对于 σ 2 \sigma^2 σ2的估计,通常使用样本方差的无偏估计量,即 σ 2 = 1 n − 1 ∑ i = 1 n ( x i − μ ) 2 \sigma^2 = \frac{1}{n-1} \sum_{i=1}^{n} (x_i - \mu)^2 σ2=n−11∑i=1n(xi−μ)2,但在最大似然估计中,我们直接使用上面的结果)
通过以上例子可以看出,最大似然估计算法是一种非常直观且强大的参数估计方法,广泛应用于统计学、机器学习、信息论、信号处理等领域。
Julia实现
在Julia中实现最大似然估计可能涉及自定义似然函数并使用优化算法。以下是一个简化的示例,仅用于说明目的,并未直接针对上述正态分布的例题:
using Optim
# 定义似然函数(以正态分布为例,但这里仅作为演示)
function log_likelihood(θ, x)
μ, σ² = θ
return -length(x)/2 * log(2π * σ²) - sum((x .- μ).^2) / (2σ²)
end
# 假设数据x已经给定
x = randn(100) # 生成100个标准正态分布的随机数作为示例数据
# 初始参数猜测
initial_θ = [mean(x), var(x)]
# 使用优化算法寻找最大似然估计值
result = optimize(θ -> -log_likelihood(θ, x), initial_θ)
# 注意:这里我们使用了-log_likelihood,因为optimize函数默认是寻找最小值,而我们需要最大值
# 输出结果
estimated_μ, estimated_σ² = Optim.minimizer(result)
println("Estimated μ: $estimated_μ")
println("Estimated σ²: $estimated_σ²")
请注意,上面的Julia代码是一个简化的示例,并未直接针对正态分布的最大似然估计进行优化。在实际应用中,您可能需要根据具体的概率模型和数据进行适当的修改。此外,optimize
函数的选择(如上例中的默认优化器)也可能需要根据问题的复杂性进行调整。
参考文献
- 文心一言