欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

MLE详解:最大似然估计方法

最编程 2024-07-25 15:37:32
...

要了解什么是最大似然估计,就要知道什么是似然

似然 likelihood:

抛硬币实验中,似然就是特定序列的概率
L(\theta) = \theta^{N_H} (1 - \theta)^{N_T}
⚠️注意:没有二项分布的C n r 系数,即没有 \binom{n}{k}
其中似然 L(\theta) 是自变量为 \theta 的函数。N_H表示Number of Head,N_T表示Number of Tail。也就是说,似然是一组特定的硬币正反面序列的概率。假设一共扔了50次硬币,其中30次是正,20次是反,这个序列为 {正,正,反,反,... ,反,正},该序列是确定的,但由于要写50次,所以此处省略中间部分,重点是,这个序列是唯一的已经发生的,所以没有二项分布的C n r 系数(n 次实验,r 次为正)。此时,自变量\theta是我们要求的,未知的。如何求\theta呢?

首先\theta是一个概率,所以0<\theta<1,那么可以用 brute force 逐个尝试,下图中的绿色部分标出的数字是\theta,红色框出来的是概率最大的尝试,也就是目前5次尝试中最好的一次:

暴力尝试$\theta$

图中的计算使用online calculator desmos

也就是说,一共50次实验,得到30个正,20个反,经过尝试不同的\theta得出:当\theta=0.6时,可能性(概率)最大。其实小学的时候我们学过用频次解这种题,即,正面次数除以总实验次数,30/50=0.6。

总结:In the coin example, the likelihood is the probability of the happened specific sequence of H’s and T’s being generated. 也就是说,Likelihood 就是当参数未知时,某次实验发生的概率。参数是事先假设的分布的参数,因为抛硬币这种实验非正即反,所以使用伯努利分布。如果是学校学生的身高,就用正态分布,大多数同学都差不多高,很高和很矮的同学都比较少。


P(Data|θ):假设观测的数据 Data 服从某种分布;Data 已知,θ 未知,函数 P(Data|θ) 被称为似然。
例如:抛硬币实验,因为只有正反两面,结果非正即反,所以假设为二项分布 Binomial distribution(即,多次伯努利分布 Bernoulli Distribution),当然要假设成其他分布也可以,只是可能最终结果没有假设为二项分布的效果好。

likelihood: P(Data|θ), where θ is treated as is constant and the goal is to find the θ that would maximize the likelihood.

最大似然估计 Maximum Likelihood Estimation(MLE):

求 让P(Data|θ)取到最大时的 θ
例如:抛硬币实验,抛1000次,600次正面朝上,400次反面朝上,假设 θ 是正面朝上的概率,那么(1-θ)就是反面朝上。
下面的式子里,N_H 表示正面朝上的次数(Number of Head),N_T 表示反面朝上的次数(Number of Teal)

Fig1. Likelihood

当把实验数据带入,发现数字非常小,假设 θ =0.5,那么0.5^1000 是不是非常小的数字呢?所以用 取log的方式解决这个问题。
Fig2. Log Likelihood

取完log 后,0.5^1000 变成了1000log0.5 ≈ -301,是不是就好很多了呢。

想要Log Likelihood 结果最大,要怎么办呢?高中学过求导:

Fig3. Derivative of Log Likelihood

令 导数等于零,得到 θ
Fig4. MLE

等号左边的符号 只是为了强调 θ 是 估计,最大似然估计,只是强调而已,和高中直接写 θ = …… 没有区别。

现在来分析求导结果,“抛硬币正面朝上”这个实验的最大可能性(MLE)就是 正面朝上 (N_H: Number of Head)的次数 占 整个实验(正面朝上加反面朝上整体)的比例。

费这么大劲就是复习一下小学数学?抛一千次硬币,700次正面朝上,问正面朝上的概率是多少?答:0.7

但,MLE确实就只做了这件事,用观测到的数据(抛一千次硬币,700次正面朝上) 预测 θ。

出错请指教。