在数理统计领域与机器学习领域,”似然”这个词经常出现,要解释什么是”似然”,一般都伴随着大量枯燥的公式推导。本文尝试从感性理解角度为初学者解释”似然”及其相关概念。
1.似然的由来
似然一词翻译自英文”likelihood”,英国数学家和统计学家Thomas Bayes(托马斯·贝叶斯)于1761年去世,在他去世两年后,他的一篇论文《An Essay towards solving a Problem in the Doctrine of Chances》被出版,在这篇论文中他引入了“likelihood”的相关概念,尽管当时他并没有使用这个具体的术语。
后来,在20世纪的统计学发展中,英国统计学家、演化生物学家与遗传学家Ronald A. Fisher(罗纳德·艾尔默·费希尔)进一步深化了这个概念,并将其形式化为现代统计学中的重要工具。 Fisher在他于1921年发表的论文《On the “Mathematical Foundations of Theoretical Statistics”》中,系统地讨论了likelihood function的性质和应用。他定义了likelihood function,并强调了它在参数估计和假设检验中的重要性。
“likelihood”一词被翻译成中文“似然”可能出现在更晚的时期。在20世纪初的统计学发展中,”likelihood”一词逐渐被广泛使用,并开始被翻译为“似然”。这个翻译可能是在中文统计学界中逐渐形成的共识,我暂时无法找到具体的时间和翻译者。
托马斯·贝叶斯
罗纳德·艾尔默·费希尔
2. 如何理解似然
“似然”常被拿来与”概率”相比较。在英文日常语境中 “likelihood” 与 “probability” 大致是可以划等号的。但在数学语境中却有明显的区别。
- 如果已知系统的参数,推测某结果的可能性,这就是概率。
- 如果已知某结果,推测系统的参数的可能性,这就是似然。
举个例子,游戏城有一台老虎机,玩家每玩一次,这台老虎机会以某个固定的概率\(p\)吐金币。
在这个场景下,我们常见的问题是:
问题一: 假设老虎机吐金币的概率是\(10 \%\),玩家玩三次全部中奖吐金币的可能性是多少?
\[P(三次全中奖) = 10 \% \cdot 10 \% \cdot 10 \% = 0.1 \%\]这是一个经典的概率问题,因为这个场景下,已知了系统参数:老虎机吐金币的概率\(10 \%\),推测三次全吐金币这一结果的可能性。
现在考虑另一个问题:
问题二: 如果老虎机吐金币的概率是未知的,玩家玩了十次老虎机,吐了两次金币,那么这台老虎机吐金币的概率是多少?
这就是一个经典的似然问题,因为这个场景下,已知了结果,根据结果反推系统参数的可能性。
面对这个问题,即使完全不知道似然估计知识的人,也会不假思索凭直觉给出答案:\(20 \%\)
在此基础上进一步思考,仅凭玩家玩了十次,吐了两次金币这十个样本就能完全确定老虎机的吐金币概率是\(20 \%\)吗? 不能,因为样本量比较少,\(20 \%\)这个答案只是根据已有的有限样本去估计。实际老虎机的吐金币概率既有可能是\(10 \%\),也完全有可能是\(90 \%\)。 我们之所以推测是 \(20 \%\),原因是直觉上觉得是 \(20 \%\) 的可能性最大。
是这样吗?保险起见,可以证明一下直觉:
如果老虎机老虎机吐金币概率为\(10 \%\),那么出现 玩家玩了十次,吐了两次金币的概率为:
\[\begin{align} P(吐两次&金币|中奖概率10 \%) \\&= C_{10}^2 * (10 \%)^2 * (1 - 10 \%) ^ 8 \\&\approx 19.37 \% \end{align}\]如果老虎机老虎机吐金币概率为\(20 \%\),那么出现 玩家玩了十次,吐了两次金币的概率为:
\[\begin{align} P(吐两次&金币|中奖概率20 \%) \\&= C_{10}^2 * (20 \%)^2 * (1 - 20 \%) ^ 8 \\&\approx 30.20 \% \end{align}\]如果老虎机老虎机吐金币概率为\(90 \%\),那么出现 玩家玩了十次,吐了两次金币的概率为:
\[\begin{align} P(吐两次&金币|中奖概率90 \%)\\ &= C_{10}^2 * (90 \%)^2 * (1 - 90 \%) ^ 8 \\&\approx 0.000036 \% \end{align}\]看上去证明结果与直觉相符,虽然\(90 \%\)确实有可能,但概率的确不高,只有\(0.000036 \%\), 这三个推测中,吐金币概率为\(20 \%\)的猜测概率最高。
但是除了以上三个猜测,还存在无穷个猜测,只要猜测吐金币概率在\((0 \%, 100 \%)\) 范围内,就是合理的。难道要一个一个去计算验证吗?如何证明吐金币概率为\(20 \%\)的猜测确实概率最高?
这里令中奖概率为\(x\),列出概率表达式:
\[\begin{align} P(吐两次&金币|中奖概率 x ) \\&= C_{10}^2 * x^2 * (1 - x) ^ 8 \\ &= 45x^2(1-x)^8 \end{align}\]对上式求导:
\[\begin{align} P(吐两次&金币|中奖概率 x )' \\&= 90x(1-x)^8 - 360x^2(1-x)^7 \end{align}\]令导数为0,即可求极值:
\[90x(1-x)^8 - 360x^2(1-x)^7 = 0\]又因为\(x\)在\((0 \%, 100 \%)\) 范围内, 所以\(x\)与\(1-x\)均不为\(0\), 可得:
\[1-x = 4x\] \[x = 20 \%\]所以 \(P(吐两次金币|中奖概率 20 \% )\) 在这个场景下概率最大。
根据现有的结果推测,最有可能是这样,似乎是这样,即为”似然”。似然的推测不一定就是事实,但是是当前场景,当前已知信息条件下最合理的推测。
3. 似然函数
先抛开晦涩的定义,回到刚才老虎机的例子,在讨论问题过程中为了根据中奖结果猜测老虎机概率的表达式:
\[\small \begin{align} P(吐两次金币|中奖概率 x ) &= C_{10}^2 * x^2 * (1 - x) ^ 8 \\ &= 45x^2(1-x)^8 \end{align}\]即为这个例子的似然函数。
一般情况下,反映了对给定的样本观察值被取到的可能性的函数,即为似然函数。
4. 极大似然估计
仍然先抛开晦涩的定义,回到刚才老虎机的例子,在讨论过程中,为了找到一个\(x\) 使得\(P(吐两次金币|中奖概率 x )\)最大。 这个能够使\(P(吐两次金币|中奖概率 x )\)最大的\(x\)值即为这个例子的极大似然估计。
一般情况下,极大似然估计是根据已知的样本的结果,反向推测最有可能得到这样结果的模型的参数值。