最大似然估计

前言

有关最大似然估计(Maximum Likelihood Estimate)的一些基础知识,可以看这篇笔记《最大似然估计详解》

最大似然估计原理

通过几个案例来了解一下最大似然估计的原理。

第1个案例

已知甲、乙两射手命中靶心的概率分别为0.9及0.4,今有一张靶纸上面的弹着点表明为10枪6中,已知这张靶纸肯定是甲、乙之一射手所射,问究竟是谁所射?

解决这个问题的思路就是:$P_{1} = 0.9$, $P_{2} = 0.4$,

则甲10枪6中发生的概率为$L(P) =P_{1}^6(1-P_{1})^4\approx 0.00005$

则乙10枪6中发生的概率为$L(P) =P_{2}^6(1-P_{2})^4\approx 0.0005$

从结果来看,如果打10枪,乙射中6枪的概率比甲的大,所以我们相信是乙射中的靶纸。这个思路其实就是利用了最大似然估计,也就是说对于某件事情,当我们不知道它的参数时,我们可以对它进行估计,看最有可能出现该事件的一些条件。

第2个案例

为了方便理解最大似然估计,我们再来看一个案例。在《最大似然估计详解》中提到了似然与概率的区别。这里再说一下,例如对于一个硬币来说,我们知道,一个正常的硬币,抛出10次,每1次落地硬币朝上与朝下的概率是一样的,都是0.5,那么我们扔10次硬币,有5次朝上的概率就容易计算出来,就是0.25,如下所示:

$C_{5}^{10}\times0.5^5\times(1-0.5)^5 \approx 0.25$

这就是概率。

似然是指,我们对于某个硬币的参数并不清楚,要通过抛硬币的情况去推测硬币的参数,这就是似然,具体的这个案例可以看一下如何通俗地理解“最大似然估计法”》这篇文章,讲得非常透彻。

从上面的案例可以知道,最大似然估计是建立在最大似然原理基础上的一个统计方法,它提供了一种给定观察数据来评估模型参数的方法,即:“模型已定,参数未知”。通过若干次试验,观察其结果,利用试验结果得到某个参数值能够使样本出现的概率为最大,则称为最大似然估计

最大似然估计函数

如果用$\theta$表示某个模型中的参数,x表示试验的结果,那么我们的试验概率可以表示为$P(x|\theta)$。

这种表示方法是条件概率的表示方法,$\theta$是前置条件,可以理解为在$\theta$的前提下,事件x发生的概率,相对应的似然函数就可以表示$L(\theta|x)$,它可以理解为已知结果为x,参数为$\theta$对应的概率(似然函数里,$\theta$是变量),即$L(\theta|x)=P(x|\theta)$。

这两者虽然在数值上相等,但意义不同,$L$是关于$\theta$的函数,而$P$由是关于x的函数。

案例分析

以Bernoulli分布为例说明一下:

$f(x;p) = \begin{cases} p & \text{if }x=1 \\ 1-p & \text {if }x=0\end{cases}$

上面的这个形式也可以写为:

$f(x;p) = p^x (1-p)^{1-x}\quad \text{for }x\in\{0,1\}$

对于任意的参数p,我们都可以画出伯努力分布的概率图,当p=0.5时,$f(x)=0.5$,

从似然的角度出来,假设我们观测到的结果是x=0.5(即某一面朝上的概率是50%,这个结果可能是通过几千次几万次的试验得到的,总之我们现在知道这个结论),那么我们就可以写出似然函数,如下所示:

$L(p|x=0.5) =p^{0.5}(1-p)^{0.5}$

与概率分布图不同的是,似然函数是一个(0, 1)内连续的函数,所以得到的图也是连续的,我们很容易看出似然函数的极值(也是最大值)在 p=0.5 处得到,通常不需要做图来观察极值,令似然函数的导数为零即可求得极值条件。

似然函数里的p描述的是硬币的性质而非事件发生的概率(比如 p=0.5 描述的是一枚两面均匀的硬币)。为了避免混淆,可以用其他字母来表示这个性质,如果我们用$\pi$来表示,那么似然函数就可以写成:

$L(\pi|x=0.5) =\pi^{0.5}(1-\pi)^{0.5}$

在实际问题,往往要比抛一次硬币复杂得多,会涉及到多个独立事件,在似然函数的表达式中通常都会出现连乘,也就是多个事件同时发生的概率,如下所示:

$L=\prod_{i=1}^N p_i $

这个公式是什么意思呢?

为了方便理解,还是用硬币的这个案例进行说明,某个硬币我们不知道它是否下这,那么我们就采取抛硬币的方式进行估计,我们取3个样本,一个样本中我们抛10次硬币,在第1个样本中,正面朝上4次,那么正面朝上的概率就是0.4;在第2个样本中,正面朝上5次,那么正面朝上的概率就是0.5;在第3个样本中,正面朝上4次,那么正面朝上的概率就是0.4。那么这个过程我们可以表示为下面的这个样子:

$L(\theta)=L(X_{1},X_{2},X_{3})=\prod_{i=1}^3 p_i$

也就是说,同时出现样本1,样本2,样本3中这些结果的概率。

对多项乘积的求导往往非常复杂,但是对于多项求和的求导却要简单的多,对数函数不改变原函数的单调性和极值位置,而且根据对数函数的性质可以将乘积转换为加减式,这可以大大简化求导的过程:

$logL=log(\begin{matrix} \prod_{i=1}^N p_i \end{matrix})=\begin{matrix} \sum_{i=1}^N log(p_i)\end{matrix}$

然后对上面的这个公式求导,求出导数为0时的参数值即可,在Logistics回归中使用log转换后的公式进行计算。

在R中进行最大似然估计

有空补上。

参考资料

  1. 如何通俗地理解“最大似然估计法”?

  2. 吴翊. 应用数理统计[M]. 国防科技大学出版社, 1995.

  3. 极大似然估计:一个例子

  4. 似然与极大似然估计