微信扫一扫打赏支持

概率论疑难问题---6、极大似然估计

概率论疑难问题---6、极大似然估计

一、总结

一句话总结:

极大就是最大,似然就是可能性,估计就是估计,所以连在一起就是最大可能性估计,也就是对于参数的最大可能性估计。
极大似然估计,通俗理解来说,就是利用已知的样本结果信息,反推最具有可能(最大概率)导致这些样本结果出现的模型参数值!

 

二、极大似然估计

转自或参考:6、极大似然估计-范仁义-读书编程笔记
https://www.fanrenyi.com/video/45/389

 

 

一、全国平均身高

上个月搞了一次人口普查,

说到人口普查,我想问大家一个问题,我们经常会说到中国男性平均身高是多少,中国女性平均身高是多少,那么这个数据他们到底怎么算出来的,(难道中国15亿+人,真的一个一个去量了身高么?)

 

 

比如男性女性的身高各自可能都是一个正态分布,比如我们就说男性身高,我们要 求男性身高的均值,其实我们就可以看做我们要求男性身高对应的正态分布的μ和σ,这两个参数求出来,正态分布啥样我们就知道了,平均身高就是这个期望μ。

$$f ( x ) = \frac { 1 } { \sqrt { 2 \pi } \sigma } \exp ( - \frac { ( x - \mu ) ^ { 2 } } { 2 \sigma ^ { 2 } } )$$

那这个咋求呢。

我们可以在人群中随机选择一些男性,比如5000个,来测身高,那么这随机选的5000个人的身高也是符合正态分布的,并且, 因为这5000个人的身高可以测出来,所以我们可以画出正态分布曲线,也就是可以得到这5000个样本对应的μ和σ,而总男性身高对应的正态分布的μ和σ可以用这5000个样本的μ和σ近似。

其实,这就是通过样本求参数的过程,也就是极大似然估计的过程。

极大就是最大,似然就是可能性,估计就是估计,所以连在一起就是最大可能性估计,也就是对于参数的最大可能性估计。

所以极大似然估计就是估计参数的一种方法,也就是“模型已定,参数未知”。

极大似然估计,通俗理解来说,就是利用已知的样本结果信息,反推最具有可能(最大概率)导致这些样本结果出现的模型参数值!

极大似然估计中采样需满足一个重要的假设,就是所有的采样都是独立同分布的。

 

二、极大似然估计

假如有一个罐子,里面有黑白两种颜色的球,数目多少不知,两种颜色的比例也不知。我 们想知道罐中白球和黑球的比例,但我们不能把罐中的球全部拿出来数。现在我们可以每次任意从已经摇匀的罐中拿一个球出来,记录球的颜色,然后把拿出来的球 再放回罐中。这个过程可以重复,我们可以用记录的球的颜色来估计罐中黑白球的比例。假如在前面的一百次重复记录中,有七十次是白球,请问罐中白球所占的比例最有可能是多少?

很多人马上就有答案了:70%。而其后的理论支撑是什么呢?

我们假设罐中白球的比例是p,那么黑球的比例就是1-p。因为每抽一个球出来,在记录颜色之后,我们把抽出的球放回了罐中并摇匀,所以每次抽出来的球的颜 色服从同一独立分布。

这里我们把一次抽出来球的颜色称为一次抽样。题目中在一百次抽样中,七十次是白球的、三十次为黑球事件的概率是P(样本结果|Model)。

如果第一次抽样的结果记为x1,第二次抽样的结果记为x2....那么样本结果为(x1,x2.....,x100)。这样,我们可以得到如下表达式:

P(样本结果|Model)

  = P(x1,x2,…,x100|Model)

  = P(x1|Mel)P(x2|M)…P(x100|M)

  = p^70(1-p)^30.

好的,我们已经有了观察样本结果出现的概率表达式了。那么我们要求的模型的参数,也就是求的式中的p。

那么我们怎么来求这个p呢?

不同的p,直接导致P(样本结果|Model)的不同。

好的,我们的p实际上是有无数多种分布的。如下:

 

那么求出 p^70(1-p)^30为 7.8 * 10^(-31)

p的分布也可以是如下:

 

 

那么也可以求出p^70(1-p)^30为2.95* 10^(-27)

那么问题来了,既然有无数种分布可以选择,极大似然估计应该按照什么原则去选取这个分布呢?

答:采取的方法是让这个样本结果出现的可能性最大,也就是使得p^70(1-p)^30值最大,因为既然事情已经发生了,为什么不让这个出现的结果的可能性最大呢?这也就是最大似然估计的核心。

那么我们就可以看成是p的方程,求导即可!

我们想办法让观察样本出现的概率最大,转换为数学问题就是使得:

p^70(1-p)^30最大,这太简单了,未知数只有一个p,我们令其导数为0,即可求出p为70%,与我们一开始认为的70%是一致的。

In [4]:
import numpy as np
import matplotlib.pyplot as plt

x=np.linspace(0,1,1000)
y=x**70*(1-x)**30
plt.plot(x,y)
plt.show()
 
In [ ]:
 

系列课程视频位置:

1、全概率公式和贝叶斯公式-范仁义-读书编程笔记
https://www.fanrenyi.com/video/45/382

2、通俗理解泊松分布-范仁义-读书编程笔记
https://www.fanrenyi.com/video/45/385

3、通俗理解协方差与相关系数-范仁义-读书编程笔记
https://www.fanrenyi.com/video/45/386

4、通俗理解概率论中的“矩”-范仁义-读书编程笔记
https://www.fanrenyi.com/video/45/387

5、通俗理解中心极限定理-范仁义-读书编程笔记
https://www.fanrenyi.com/video/45/388

6、极大似然估计-范仁义-读书编程笔记
https://www.fanrenyi.com/video/45/389

7、通俗理解最小二乘法-范仁义-读书编程笔记
https://www.fanrenyi.com/video/45/390

 
 
posted @ 2020-11-12 20:41  范仁义  阅读(978)  评论(0编辑  收藏  举报