外行术语中的最大似然估计(MLE)


91

谁能用外行的术语向我详细解释最大似然估计(MLE)?在进行数学推导或方程式之前,我想了解基本概念。


9
目前尚不清楚您在寻求什么样的答案。例如,您知道可能性是什么吗?如果没有,最好先找出来。
2014年

4
另外,我认为在某种程度上不涉及数学的答案都是不够的。
gregmacfarlane 2014年

1
试试这个链接。它对MLE,MAP,EM的解释非常清晰。我认为它简单地涵盖了MLE的基本概念。
Nimish Kulkarni 2014年

2
我认为为MLE提供了非常直观的解释。我要说的是,如果概念仍然不清楚,则最好重新整理一些基本统计数据。
KartikKannapur '18年

Answers:


75

假设您有一些数据。假设您愿意假设数据来自某种分布-也许是高斯分布。数据可能来自无数个不同的高斯(对应于无数个均值和高斯分布可以具有的方差的组合)。MLE将选择与您的数据“最一致”的高斯(即均值和方差)(一致的确切含义在下面说明)。

因此,假设您有的数据集。可能来自该数据的最一致的高斯平均值为3,方差为16。它可能是从其他一些高斯抽样而成的。但是,平均值为3且方差为16的一个在以下意义上与数据最一致:选择平均值和方差时,获得观察到的特定的可能性比其他任何选择都大。ÿ={-1个37}ÿ

转向回归:均值不是数据的常数,而是回归方程指定的数据线性函数。所以,说你有数据,如随着从之前。该高斯函数的平均值现在是拟合的回归模型,其中X={2410}ÿXβ^β^=[-1.9.9]

转向GLM:用其他分布(来自指数族)替换高斯。平均值现在是数据的线性函数,由回归方程式指定,由链接函数转换。因此,它是,其中用于logit(具有二项式数据)。GXβg(x)=ex/(1+ex)


28
根据您的数据,MLE将选择最有可能的高斯 ”嗯,实际上不是:MLE将选择最有可能在其下的数据的高斯吗?这与选择“最有可能的高斯”略有不同……选择最有可能的高斯不需要先行考虑吗?
Jake Westfall 2014年

9
@ACD我不认为这还不完整,但提供了正确的直觉。例如,如果不讨论特殊情况(例如似然函数的最大值超过一个),我认为没有任何问题。但是,最有可能产生观测数据的分布与给定数据的最可能分布之间的差异是频繁推断和贝叶斯推断之间的根本差异。因此,如果您这样解释,那么您只是在为未来创建绊脚石。
Erik

6
当然可以,但是比您所写的更难理解的概念解释吗?我不这么认为。我认为您的大多数回答都很好,但是为了后人,我只想敦促您稍微修改一些措辞,以避免讨论“最可能的高斯”,而是指出我们想要的东西在语言学习中“可能”(用口语表达)不是假设,而是数据。我认为这对您本来不错的答案来说可能是次要但重要的编辑。
Jake Westfall 2014年

7
@Max:非常感谢您终于可以解决这个问题了!我认为在此处为将来的读者明确写些文章可能是有道理的:在对答案进行编辑之后,Erik和Jake在上述已发表的评论中表达的批评不再适用。
变形虫

7
只是想跳进去:感谢您对我的回答给予的所有关注和改进。抱歉最初对编辑不满意(很好)–我不愿看到答案的简单性受到侵蚀。那基本上没有发生。
–generic_user

66

最大似然估计(MLE)是一种找到 解释观测数据的最可能函数的技术。我认为数学是必要的,但不要让它吓到您!

假设我们在平面上有一组点,并且我们想知道最有可能适合数据的函数参数βσ(在这种情况下,我们知道该函数是因为我为创建此示例而指定了该函数,但请忍受我)。x,yβσ

data   <- data.frame(x = runif(200, 1, 10))
data$y <- 0 + beta*data$x + rnorm(200, 0, sigma)
plot(data$x, data$y)

数据点

为了进行MLE,我们需要对函数的形式进行假设。在一个线性模型,我们假设点遵循正态(高斯)的概率分布,均值为和方差σ 2Ý = ÑX β σ 2。该概率密度函数的方程为:1xβσ2y=N(xβ,σ2)

12πσ2exp((yixiβ)22σ2)

我们要找出什么是参数σ最大限度地提高这个概率的所有点X ÿ 。这是“可能性”功能,Lβσ(xi,yi)L

由于各种原因,这是更容易使用的似然函数的对数: 日志大号=ÑΣ=1-ñ

大号=一世=1个ñÿ一世=一世=1个ñ1个2πσ2经验值-ÿ一世-X一世β22σ2
日志大号=一世=1个ñ-ñ2日志2π-ñ2日志σ2-1个2σ2ÿ一世-X一世β2

我们可以将其编码为R = 的函数。θ=βσ

linear.lik <- function(theta, y, X){
  n      <- nrow(X)
  k      <- ncol(X)
  beta   <- theta[1:k]
  sigma2 <- theta[k+1]^2
  e      <- y - X%*%beta
  logl   <- -.5*n*log(2*pi)-.5*n*log(sigma2) - ( (t(e) %*% e)/ (2*sigma2) )
  return(-logl)
}

该函数在σ的不同值下会创建一个曲面。βσ

surface <- list()
k <- 0
for(beta in seq(0, 5, 0.1)){
  for(sigma in seq(0.1, 5, 0.1)){
    k <- k + 1
    logL <- linear.lik(theta = c(0, beta, sigma), y = data$y, X = cbind(1, data$x))
    surface[[k]] <- data.frame(beta = beta, sigma = sigma, logL = -logL)
  }
}
surface <- do.call(rbind, surface)
library(lattice)
wireframe(logL ~ beta*sigma, surface, shade = TRUE)

似然面

如您所见,此表面上某处有一个最大点。我们可以使用R的内置优化命令找到指定此点的参数。这相当接近揭示真实参数 0β=2.7σ=1.3

linear.MLE <- optim(fn=linear.lik, par=c(1,1,1), lower = c(-Inf, -Inf, 1e-8), 
                    upper = c(Inf, Inf, Inf), hessian=TRUE, 
                    y=data$y, X=cbind(1, data$x), method = "L-BFGS-B")
linear.MLE$par


## [1] -0.1303868  2.7286616  1.3446534

普通最小二乘法线性模型的最大似然,因此lm可以给我们相同的答案是有道理的。(请注意,是在确定标准误差使用)。σ2

summary(lm(y ~ x, data))

## 
## Call:
## lm(formula = y ~ x, data = data)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.3616 -0.9898  0.1345  0.9967  3.8364 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.13038    0.21298  -0.612    0.541    
## x            2.72866    0.03621  75.363   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.351 on 198 degrees of freedom
## Multiple R-squared:  0.9663, Adjusted R-squared:  0.9661 
## F-statistic:  5680 on 1 and 198 DF,  p-value: < 2.2e-16

感谢@gregmacfarlane这个不错且有用的答案。要点:我们不应该先在R行代码中定义beta和sigma2 data$y <- 0 + beta*data$x + rnorm(200, 0, sigma2) 吗?并且是0 +有用的?
emeryville

1
是的betasigma2需要定义此代码才能运行。我将它们隐藏起来,以便我们可以“发现”参数,运行MLE时几乎总是未知的参数。
gregmacfarlane 2015年

您也说对了,0 +实际上什么也做不了。我之所以把它包括在内是因为回归模型通常具有截距。而如果MLE试图优化betasigma2 而且 alpha,我不能表现出美丽的表面曲线图(除非你知道的R包,将在四个维度的情节!)
gregmacfarlane

2
@gregmacfarlane很好的答案,对我有很大帮助。但是在方差与标准差之间存在一些误差。请看这里。stats.stackexchange.com/questions/267534/...
杜海涛

2
@ hxd1011感谢您指出此错误;我已更正错误。
gregmacfarlane

28

参数的最大似然(ML)估计值是该参数的值,相对于该参数的任何其他可能值,您的实际观测数据最有可能在该值下发生。

这个想法是,有任何数量的“真实”参数值可能导致您实际观察到的数据具有非零(尽管可能很小)的概率。但是ML估计值会给出参数值,该参数值将导致您以最高概率观察到的数据。

请勿将其与最有可能实际产生数据的参数值混淆!

OH

您需要记住,“可能性”是一个技术术语。H的可能性(Pr(O | H))和H的后验概率是不同的数量,并且它们可以具有不同的值。H的可能性是H赋予O的概率,而不是O赋予H的概率。假设您听到房屋顶楼传来的噪音。您考虑这样的假设,即保龄球上面有gremlins。这种假设的可能性非常高,因为如果阁楼上有小怪兽打保龄球,则可能会有噪音。但是可以肯定的是,您不会认为这种噪音使保龄球很有可能出现怪异现象。在该示例中,Pr(O | H)为高,Pr(H | O)为低。格雷姆林假说的可能性很高(从技术上来说),但可能性很小。

根据以上示例,ML将支持gremlin假设。在这个特殊的漫画示例中,这显然是一个错误的选择。但是在许多其他更现实的情况下,最大似然估计可能是一个非常合理的估计。

参考

Sober,E。(2008)。证据与进化:科学背后的逻辑。剑桥大学出版社。


8
在我看来,这是清楚,简单地阐明这一关键点的第一个答案。但是请注意,如果您的数据是离散的(例如二项式数据),“只会以最高的概率得出您的观测数据”,但是如果您的数据是连续的,则“将会导致您的观测数据具有最高的联合密度 ”。 (如普通数据)。
gung

6
谢谢@gung。我知道您提到的技术性,但我有点担心,对“关节密度”的任何讨论都会有点“外行的用语”……
杰克·韦斯特伦

我同意您的意见,并且我认为您对此有所了解。我只是想提到它,因为它出现在该线程的其他地方。
gung

16

MLE是相关参数的值,该参数可使观察您观察到的数据的可能性最大化。换句话说,正是参数的值使观察到的数据最有可能被观察到。


2
而且,如果如此最大化的似然函数在其反面又是来自连续随机变量的概率密度函数怎么办?MLE是否仍使概率最大化?如果没有,它有什么作用?
Alecos Papadopoulos 2014年

@AlecosPapadopoulos据我了解,似然函数可以视为参数的概率函数,而MLE是使该概率函数最大化的参数值。但是,您的问题表明还有更多细微差别?
海森堡2014年

4
@Heisenberg答案将似然函数视为样本的联合概率函数(为此ML提供最大的参数,因此使任何样本的概率最大化)。当rv是离散的时,这是正确的,但当它们是连续的时,这是正确的,因为通过构造的联合密度不是联合概率。我不会将其描述为“细微差别”,它是离散世界和连续世界之间的根本差异。
Alecos Papadopoulos

@AlecosPapadopoulos我明白了。因此,使用“概率函数”与“密度函数”一词会引起您的问题。那是对的。
海森堡2014年

ϵϵϵ

10

可以说的东西不使用(多)数学,但最大似然的实际统计应用程序,你需要数学。

最大似然估计与哲学家所说的有关 对最佳解释绑架的推断。我们一直在使用它!请注意,我并不是说最大可能性就是绑架,该术语要宽泛得多,某些贝叶斯估计(具有经验先验)的情况也可能被视为绑架。摘自http://plato.stanford.edu/entries/abduction/#Aca的一些示例, 另请参见 https://en.wikipedia.org/wiki/Abductive_reasoning (在计算机科学中,“绑架”也用于非-概率模型。)

  1. “您偶然知道,蒂姆和哈里最近吵了一架,结束了他们的友谊。现在有人告诉您,她刚刚看到蒂姆和哈里一起慢跑。对此,您能想到的最好的解释是他们组成了。您断定他们又是朋友。” 这是因为该结论使您尝试解释的观察结果比备选方案下的解释更有可能,因为他们仍然没有说话。

另一个例子:您在幼儿园工作,有一天一个孩子开始以一种奇怪的方式走路,说他摔断了腿。您检查并没有发现任何错误。然后,您可以合理地推断出他的父母之一摔断了腿,因为孩子们随后经常按照描述进行动作,因此这是“最佳解释的推论”,也是(非正式)最大可能性的例证。(当然,这种解释可能是错误的,只是可能,不确定。绑架/最大可能性不能给出确定的结论)。

绑架是关于在数据中找到模式,然后搜索可能使这些模式成为可能的理论。然后选择可能的解释,即最大程度地观察到的模式,这才是最大的可能性!

科学绑架的主要例子是进化。没有一个观察结果暗示进化,但是进化使观察到的模式比其他解释更有可能。

另一个典型的例子是医学诊断?哪种可能的医疗状况最可能观察到症状?同样,这也是最大的可能性!(或者,在这种情况下,也许贝叶斯估计更合适,我们必须考虑各种可能解释的先验概率)。但这是技术性的,在这种情况下,我们可以拥有经验先验,可以将其视为统计模型和我们所谓的模型的自然组成部分,所谓的先验是某种任意的(*)统计约定。

回到有关MLE的外行术语解释的原始问题,这是一个简单的示例:当我的女儿分别是6岁和7岁时,我问他们这个问题。我们制造了两个((两个鞋盒),一个装了两个黑球,八个装了红色,另一个装了数字。然后我们混合骨灰盒,随机抽取一只骨灰盒。然后,我们从那个中随机取了一个球。它是红色的。

然后我问:您认为是从哪个中抽出红球的?经过大约一秒钟的思考,他们(在合唱团中)回答:从一个有8个红球的家伙开始!

然后我问:你为什么这么认为?又过了大约一秒钟(再次回声):“因为这样,画一个红色的球就容易了!”。也就是说,更容易=更有可能。那是最大的可能性(编写概率模型很容易),这是“推断最佳解释”,即绑架。

(*)为什么我说“任意”?为了继续医学诊断问题,说患者是一个很难诊断医生较早前没有见过的病情的人。然后,例如,在与患者交谈时,出现了他不久前去过非洲热带地区的某个地方的情况。那是一条新的数据,但是它在典型模型(用于这种情况,无论是正式的还是非正式的)中的作用将是改变难以解释的先验,因为像疟疾这样的热带疾病现在将越来越高。先验概率。因此,新数据进入分析。


谷歌搜索“归纳推理和最大似然估计”会带来很多相关的结果。
kjetil b halvorsen 2014年

1
(1/2)嗨,kjetil,这是一个了不起的答案,我对此表示赞赏。(另外,关于您女儿的描述也很可爱。:))无论如何,我正在努力建立自己对“可能性”的深刻理解,并且我已经在这里正式提出了我的问题。
Creatron '16

1
L(θ|x)=P(x|θ)

9

θθ

θθθ

(如果连续读取数据,则将“概率密度”读取为“概率”。因此,如果以英寸为单位测量,则密度将以每英寸的概率来度量。)


3
y

@ DimitriyV.Masterov确实,他们不是。即使您可以,但如果我没记错的话,可能性仅是由“费舍尔”定义的,直到“乘法常数”。
Glen_b

@Dimitriy,要点;我加了
Scortchi

1
@Glen,对于大多数用途-似然比测试,最大似然估计-您可以删除常数。要在非嵌套模型之间比较AIC,您不能这样做。无论如何,都不需要输入外行的定义。
Scortchi

1
只要您删除相同的常数,您仍然可以。
Glen_b 2012年

6

让我们玩一个游戏:我在一个黑暗的房间里,没人能看到我的所作所为,但您知道,要么(a)我扔一个骰子,然后将“ 1”的数量计为“成功”,要么(b)我扔一个硬币而且我把正面的数目算作“成功”。

正如我所说,您看不到我要执行哪两个操作,但是我只给您一个信息:我告诉您我掷了100次骰子,或者我掷了100次硬币,并且我有17次成功。

问题是猜测我丢了骰子还是扔了硬币。

您可能会回答我扔了一个骰子。

如果这样做,那么您可能已经“通过最大程度地通过可能性进行了猜测”,因为如果我在100次实验中观察到17次成功,那么投掷骰子的可能性就比投掷硬币的可能性大。

因此,您所做的就是取“成功概率”的值(骰子为1/6,硬币为1/2),使其最有可能在100中观察到17次成功。每100次掷骰子,您有17次“ 1”的机会大于在100次掷硬币中获得17个头的机会。


正如我在回答中所说的那样,“绑架”或“推断最佳解释”。
kjetil b halvorsen

@kjetil b halvorsen:我不明白你想说什么?

我只尝试与上面的答案进行比较。这些术语在其他领域(哲学,CS)中使用的含义大致相同:选择一种整体上最符合事实的解释,并采用概率模型,以最大程度地提高可能性。
kjetil b halvorsen

@kjetil b halvorsen:我可以得出结论我的例子还可以吗?用外行人的话说同样:-)?

1

XμμμLμfμ

L(μ|X)=i=1Nf(xi,μ)

或对数似然:

lnL(μ|X)=i=1Nlnf(xi,μ)

μf

μ

首先让我们生成一些假数据:

set.seed(123)
x <- rnorm(1000, 1.78)

μX

llik <- function(mu) sum(log(dnorm(x, mu)))

μ

ll <- vapply(seq(-6, 6, by=0.001), llik, numeric(1))

plot(seq(-6, 6, by=0.001), ll, type="l", ylab="Log-Likelihood", xlab=expression(mu))
abline(v=mean(x), col="red")

使用优化算法可以更快地达到同样的目的,该算法以比暴力破解更聪明的方式寻找函数的最大值。有很多这样的例子,例如R中最基本的例子之一是optimize

optimize(llik, interval=c(-6, 6), maximum=TRUE)$maximum

在此处输入图片说明

μ1.78μoptimize

本示例说明如何使用多种方法来找到使似然函数最大化的值,以找到参数的“最佳”值。


0

{y1,y2,,yn}θ={μ,σ2}{y1,y2,,yn}θ={μ,σ2}p(y1,y2,,yn|θ)

L(θ|y1,y2,,yn)θL(θ)θ{μ,σ2}L{μ,σ2}L(θ)


0

假设您有一枚硬币。扔它可以给人头也可以给人尾巴。但是你不知道这是否是一个公平的硬币。所以你扔了1000次。它以头的形式出现1000次,而没有以尾的形式出现。

0.52000

MLE试图在这样的情况下帮助您找到最佳的解释 -当您获得某种结果时,并且您想弄清楚最有可能产生该结果的参数值是什么。在这里,在2000次抛掷中有2000头-因此,我们将使用MLE找出获得最佳抛头率的概率,这最好地解释了从2000次抛掷中获得2000头。

这是最大似然估计器。它估计最有可能产生您当前正在查看的结果的参数(此处是概率分布函数)。

1个


-1

我对MLE的理解是这样的:您只能看到大自然希望您看到的东西。您看到的是事实。这些事实具有产生它的潜在过程。这些过程是隐藏的,未知的,需要被发现。那么问题是:给定观察到的事实,进程P1生成它的可能性是多少?过程P2生成它的可能性是多少?依此类推...这些可能性之一将是最大的可能性。MLE是提取最大似然的函数。

想想抛硬币; 硬币有偏差。没有人知道偏见的程度。它的范围可以从o(所有尾部)到1(所有头部)。普通硬币将为0.5(头/尾巴的可能性相同)。当您进行10次抛掷,并且观察到7个头时,则MLE是那种偏斜程度,它更可能产生10次抛掷中观察到的7个头的事实。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.