似然函数

2017-08-01 python ai

在统计学中,通常所要观测的样本集很大 (全国身高),很难完成这么多的样本数据采集,这时就需要用到估计了。

一般会抽取样本,然后通过统计样本 (Sample) 去估计总体 (Population),也就是参数估计。

参数估计中的最大似然估计,有点难理解,这里简单介绍。

简介

在英文的语境中,概率 (Probability) 和 似然 (Likelihood) 的意思基本相同,但是在统计学里面,似然函数和概率函数却是两个不同的概念,只是比较相近或者相关罢了。

两者之间的关系类似于 $2^b$ 和 $a^2$ 的关系,这两个函数都源自于 $a^b$ 这个函数,当 $b=2$ 时,就得到了 $a$ 的二次函数,$a^2$;当 $a=2$ 时,就得到了 $b$ 的指数函数,即 $2^b$ 。

也就是说,虽然这两个函数有着不同的名字,却源于同一个函数。

而似然和概率也类似,都源自函数 $P(x|θ)$ ,一个有着两个变量的函数:

  • 如果 $θ$ 已知而 $x$ 是变量,就是概率函数,描述了不同样本点 $x$ 出现概率是多少。
  • 如果 $x$ 已知而 $θ$ 是变量,就是似然函数,描述不同模型参数出现 $x$ 这个样本点的概率是多少。

也就是说,在数理统计中,“概率” 描述了给定模型参数后,描述结果的合理性,而不涉及任何观察到的数据。而 “似然” 则描述了给定了特定观测值后,描述模型参数是否合理。

最大似然估计

有一组样本数据,知道是从哪一个模型采样出来的,但是不知道具体的参数,也就是 “模型已知,参数未知” ,例如知道是正态分布但是不知道均值和方差,满足二项分布但不知道均值等等。

最大似然估计 (Maximum Likelihood Estimation, MLE) 可以用来估计模型的参数,目标是找出一组参数,使得模型产生出观测数据的概率最大。

最大似然估计中采样都是 独立同分布 的,这也就是为什么最大似然实际上就是求多个独立事件同时发生的概率,那么总体出现的概率采用的是乘法而非加法。

示例

以抛硬币为例,当你拿到了一枚硬币之后,正常来说一枚均匀的硬币出现正反面的概率应该相同,都是 0.5 ,但你不确定这枚材质、重量分布情况,需要判断其是否真的是均匀分布。

所以,这里假设这枚硬币有 $θ$ 的概率会正面向上,有 $1-θ$ 的概率反面向上。

为了获得 $θ$ 的具体值,做了一个实验:将硬币抛 10 次,得到了一个正反序列 HHTTHTHHHH ,可以简单计算出这次实验出现正面的概率为 0.7 ,因为这次实验满足二项分布,那么出现这个序列的概率为 $\theta \theta(1-\theta)(1-\theta)\theta(1-\theta)\theta \theta \theta \theta = \theta^7(1-\theta)^3$ 。

到此为止,我们根据一次简单的二项分布实验,得到了一个关于 $θ$ 的函数,这就是一个似然函数,当 $\theta$ 为 $0$ 或者 $1$ 时,对应的概率为 0 ;而当 $\theta$ 值为 $\frac{1}{2}$ 时,对应的概率为 $\frac{1}{1024}$,以此类推,根据不同的 $θ$ 值,绘制出一条曲线,这个曲线就是 $θ$ 的似然函数,而 $y$ 轴表示出现这一现象的概率。

likelihood

单纯对于这次实验来说,因为这一现象已经出现,那么可以相信,在似然函数最大值所在的 $\theta$ 评估为目前认为的合理 $\theta$ 值,也即是 0.7 。

但是,你不能得出最终的结论 $\theta = 0.7$ ,因为这里仅仅试验了一次,得到的样本太少,所以最终求出的最大似然值偏差较大,如果经过多次试验,扩充样本空间,则最终求得的最大似然估计可能将接近真实值 0.5 。

公式求解

仍然以上述示例为例,每次抛硬币都是一次二项分布,正面朝上的概率为 $\mu$ ,实验次数为 $n$ ,那么对应的似然函数如下。

$$p(X;\mu)=\prod_{i=1}^n{p(x_i;\mu)}=\prod_{i=1}^n{\mu^{x_i}(1-\mu)^{1-x_i}}$$

x=1 时表示正面朝上,直接对上述公式取对数:

$$ \begin{align} log\ p(X;\mu)&=log\prod_{i=1}^n{\mu^{x_i}(1-\mu)^{1-x_i}} \ &=\sum_{i=1}^n{log{ \mu^{x_i}(1-\mu)^{1-x_i} }} \ &=\sum_{i=1}^n{{log{(\mu^{x_i})}+log{(1-\mu)^{1-x_i}} }} \ &=\sum_{i=1}^n{{x_i log{\mu}+({1-x_i})log{(1-\mu)} }} \end{align} $$

然后对上述公式求偏导。

$$ \begin{align} \frac{\partial}{\partial \mu} &=\sum_{i=1}^n{\frac{\partial}{\partial \mu} {x_i log{\mu}+({1-x_i})log{(1-\mu)} }}\ &= \sum_{i=1}^{n}x_i \frac{\partial}{\partial \mu}log\mu+ \sum_{i=1}^{n}(1-x_i) \frac{\partial}{\partial \mu}log(1-\mu) \ &=\frac{1}{\mu}\sum_{i=1}^{n}x_i-\frac{1}{1-\mu}\sum_{i=1}^{n}(1-x_i) \end{align} $$

最后令上述的偏导为 $0$ ,最后求得。

$$\hat{\mu}=\frac{1}{n}\sum_{i=1}^{n}x_i$$

虽然最终的结果与上述项相同。