问题

最大似然估计法是如何实现的?

回答
假设我们有一个模型,这个模型能够描述我们观察到的数据的生成过程。但是,这个模型里面有一些我们不知道的参数,我们想要根据实际观测到的数据,找到最能解释这些数据的模型参数值。最大似然估计(Maximum Likelihood Estimation, MLE)就是一种非常普遍的方法,来解决这个问题。

它的核心思想是这样的:如果我们已经有了模型和观测到的数据,那么我们就可以计算出在给定这些模型参数的情况下,我们观测到这些特定数据的“可能性”。这个“可能性”我们称之为“似然函数”。MLE的目标就是找到这样一组模型参数,使得这个似然函数的值最大。简单来说,就是“哪个参数组合最有可能产生我们看到的数据?”

具体怎么实现呢?首先,我们需要定义一个概率模型。这个模型必须能够告诉你,给定一组参数,你观察到某个特定数据点的概率有多大。比如,如果我们认为我们的数据是服从某个分布(比如正态分布),那么这个分布的均值和方差就是我们需要估计的参数。模型就变成了“给定均值和方差,我观测到某个数值的概率是多少?”

一旦我们有了这个模型,我们就可以写出似然函数。假设我们观测到了 $n$ 个独立的数据点 $x_1, x_2, ldots, x_n$。如果模型给出每个数据点 $x_i$ 在参数 $ heta$ 下出现的概率是 $P(x_i | heta)$,那么这 $n$ 个数据点同时出现的(因为它们是独立的)总概率就是所有单个数据点概率的乘积:

$L( heta | x_1, x_2, ldots, x_n) = P(x_1 | heta) imes P(x_2 | heta) imes ldots imes P(x_n | heta) = prod_{i=1}^n P(x_i | heta)$

这个 $L( heta)$ 就是似然函数。我们的任务就是找到一个 $ heta^$,使得 $L( heta^)$ 的值是所有可能的 $ heta$ 值中最大的。

在实际操作中,直接最大化这个乘积形式的似然函数通常不太方便,尤其是在有许多数据点时,乘积很容易变得非常小,导致数值计算上的问题。因此,我们通常会对其取对数。因为对数函数是单调递增的,最大化 $L( heta)$ 等价于最大化 $log(L( heta))$。这样,乘积就变成了求和,计算起来更容易:

$ell( heta | x_1, x_2, ldots, x_n) = log(L( heta | x_1, x_2, ldots, x_n)) = sum_{i=1}^n log(P(x_i | heta))$

这个 $ell( heta)$ 就是对数似然函数。

接下来,我们就需要找到使这个对数似然函数 $ell( heta)$ 达到最大的 $ heta$ 值。如果 $ heta$ 是一个连续的参数,并且对数似然函数是可导的,最常用的方法就是通过微积分。我们计算对数似然函数对每一个参数的偏导数,然后将这些偏导数都置零,解出这些方程组,得到的解就是使对数似然函数取得极值的点。

例如,假设我们要估计正态分布的均值 $mu$(方差固定)。那么 $P(x_i | mu) = frac{1}{sqrt{2pisigma^2}} expleft(frac{(x_i mu)^2}{2sigma^2} ight)$。
对数似然函数就是 $ell(mu) = sum_{i=1}^n left(frac{1}{2}log(2pisigma^2) frac{(x_i mu)^2}{2sigma^2} ight)$。
我们计算 $frac{partial ell(mu)}{partial mu}$,令它等于零:
$frac{partial ell(mu)}{partial mu} = sum_{i=1}^n frac{2(x_i mu)}{2sigma^2} = frac{1}{sigma^2} sum_{i=1}^n (x_i mu) = 0$
$sum_{i=1}^n x_i nmu = 0$
$nmu = sum_{i=1}^n x_i$
$mu = frac{1}{n} sum_{i=1}^n x_i$
所以,最大似然估计的均值就是样本的均值。

如果参数是离散的,或者模型形式比较复杂,无法直接通过微积分求导并求解,那么就需要借助数值优化方法来寻找最大似然估计值。这些方法包括梯度上升、牛顿法、共轭梯度法等等。这些算法会迭代地调整参数,朝着使对数似然函数值增大的方向前进,直到找到一个足够好的最大值。

总而言之,最大似然估计的实现过程就是:先建立一个能够描述数据生成过程的概率模型,然后根据观测到的数据写出似然函数(或者对数似然函数),最后通过求解优化问题(解析求解或数值优化)来找到能使这个函数值最大的模型参数。这个找到的参数就是最大似然估计量。

网友意见

user avatar

一个问题一个问题往下答。。。


是如何想到设似然函数的?

直觉是有一个模型, 然后我们观测到的数据是,那我们想做的就是调整使得数据被观测到的概率最大。

但实际上有更有趣的几何解释。定义两个分布间的KL散度为

注意到

KL散度虽然不是对称的,但是它可以看作一种刻画概率分布间距离的手段,因为对任何分布, ,并且当且仅当。所以如果你把概率分布看作某个空间上的“点”的话,那么KL散度在一定程度上就刻画了这些“点”之间的距离。

那么这玩意儿跟极大似然估计有什么关系呢,关系就是极大似然估计可以看作是最小化KL散度。假设真实的参数是,那么真实的分布就是。

在极大似然估计里,我们要找到最大化的,这就等价于最大化:

又因为是定值,所以上面这个式子就等价于最大化

而根据大数定律,.

换句话说,在样本充分的情况下,极大似然估计可以被视为极小化与真实分布间的KL散度,也就在某种意义下等价于找到了一个分布,使得这个分布与真实分布间的“距离“最小。

除此以外,对于定义在有限离散空间上的分布,其KL散度满足Pinsker不等式:

考虑到距离是根正苗红的距离,所以从这个角度看的话,极大似然估计”极小化分布间距离“的意味就更加明显了。

为什么待估参数是在似然函数最大值时取得?

简单的原因(太长不看):因为在大多数情况下(你的参数空间性质比较好),极大似然估计是相合估计量(Consitent Estimator),也就是说极大似然估计依概率收敛到真实的参数,即

复杂的原因(数学定理):

假设你的参数空间为,并且在真实参数周围存在一个开邻域使得,那么如果:

(a) 在中的任一点都可微

(b) 存在g(x),使得对任意都有,并且

那么依概率收敛到真实的。

证明:超长超复杂,大概有一两页纸的样子,用了各种千奇百怪的放缩,懒得写了,有兴趣可以去查阅Keener的Theoretical Statistics 第九章.

上面的定理表明,如果你参数空间和似然函数的性质不算太差,那么极大似然估计一定可以依概率收敛到真实参数。当然,在现实生活中许多似然函数都是非凸的,所以在计算上如何求解极大似然估计一直是一个老大难问题。。。

为什么有些情况下,矩估计和最大似然估计的结果是相同的,有些情况下不是?

额。。。因为你用了不同的估计方法。。。?

不过问题不大,因为像极大似然估计一样,在模型不算太差的条件下,矩估计同样是相合估计量,也就是说在样本量足够大的情况下矩估计同样依概率收敛至真实参数。

参考资料

Larry Wasserman, All of Statistics

Keener, Theoretical Statistics

Raymond Yeung, Information Theory and Network Coding

类似的话题

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有