谁能用外行的术语向我详细解释最大似然估计(MLE)?在进行数学推导或方程式之前,我想了解基本概念。
谁能用外行的术语向我详细解释最大似然估计(MLE)?在进行数学推导或方程式之前,我想了解基本概念。
Answers:
假设您有一些数据。假设您愿意假设数据来自某种分布-也许是高斯分布。数据可能来自无数个不同的高斯(对应于无数个均值和高斯分布可以具有的方差的组合)。MLE将选择与您的数据“最一致”的高斯(即均值和方差)(一致的确切含义在下面说明)。
因此,假设您有的数据集。可能来自该数据的最一致的高斯平均值为3,方差为16。它可能是从其他一些高斯抽样而成的。但是,平均值为3且方差为16的一个在以下意义上与数据最一致:选择平均值和方差时,获得观察到的特定值的可能性比其他任何选择都大。
转向回归:均值不是数据的常数,而是回归方程指定的数据线性函数。所以,说你有数据,如随着从之前。该高斯函数的平均值现在是拟合的回归模型,其中
转向GLM:用其他分布(来自指数族)替换高斯。平均值现在是数据的线性函数,由回归方程式指定,由链接函数转换。因此,它是,其中用于logit(具有二项式数据)。
最大似然估计(MLE)是一种找到 解释观测数据的最可能函数的技术。我认为数学是必要的,但不要让它吓到您!
假设我们在平面上有一组点,并且我们想知道最有可能适合数据的函数参数β和σ(在这种情况下,我们知道该函数是因为我为创建此示例而指定了该函数,但请忍受我)。
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)。该概率密度函数的方程为:1
我们要找出什么是参数和σ是最大限度地提高这个概率的所有点(X 我,ÿ 我)。这是“可能性”功能,L
由于各种原因,这是更容易使用的似然函数的对数: 日志(大号)=ÑΣ我=1-ñ
我们可以将其编码为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的内置优化命令找到指定此点的参数。这相当接近揭示真实参数
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
可以给我们相同的答案是有道理的。(请注意,是在确定标准误差使用)。
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
data$y <- 0 + beta*data$x + rnorm(200, 0, sigma2)
吗?并且是0 +
有用的?
beta
,sigma2
需要定义此代码才能运行。我将它们隐藏起来,以便我们可以“发现”参数,运行MLE时几乎总是未知的参数。
0 +
实际上什么也做不了。我之所以把它包括在内是因为回归模型通常具有截距。而如果MLE试图优化beta
,sigma2
而且 alpha
,我不能表现出美丽的表面曲线图(除非你知道的R包,将在四个维度的情节!)
参数的最大似然(ML)估计值是该参数的值,相对于该参数的任何其他可能值,您的实际观测数据最有可能在该值下发生。
这个想法是,有任何数量的“真实”参数值可能导致您实际观察到的数据具有非零(尽管可能很小)的概率。但是ML估计值会给出参数值,该参数值将导致您以最高概率观察到的数据。
请勿将其与最有可能实际产生数据的参数值混淆!
您需要记住,“可能性”是一个技术术语。H的可能性(Pr(O | H))和H的后验概率是不同的数量,并且它们可以具有不同的值。H的可能性是H赋予O的概率,而不是O赋予H的概率。假设您听到房屋顶楼传来的噪音。您考虑这样的假设,即保龄球上面有gremlins。这种假设的可能性非常高,因为如果阁楼上有小怪兽打保龄球,则可能会有噪音。但是可以肯定的是,您不会认为这种噪音使保龄球很有可能出现怪异现象。在该示例中,Pr(O | H)为高,Pr(H | O)为低。格雷姆林假说的可能性很高(从技术上来说),但可能性很小。
根据以上示例,ML将支持gremlin假设。在这个特殊的漫画示例中,这显然是一个错误的选择。但是在许多其他更现实的情况下,最大似然估计可能是一个非常合理的估计。
参考
Sober,E。(2008)。证据与进化:科学背后的逻辑。剑桥大学出版社。
MLE是相关参数的值,该参数可使观察您观察到的数据的可能性最大化。换句话说,正是参数的值使观察到的数据最有可能被观察到。
这是可以说的东西不使用(多)数学,但最大似然的实际统计应用程序,你需要数学。
最大似然估计与哲学家所说的有关 对最佳解释或绑架的推断。我们一直在使用它!请注意,我并不是说最大可能性就是绑架,该术语要宽泛得多,某些贝叶斯估计(具有经验先验)的情况也可能被视为绑架。摘自http://plato.stanford.edu/entries/abduction/#Aca的一些示例, 另请参见 https://en.wikipedia.org/wiki/Abductive_reasoning (在计算机科学中,“绑架”也用于非-概率模型。)
另一个例子:您在幼儿园工作,有一天一个孩子开始以一种奇怪的方式走路,说他摔断了腿。您检查并没有发现任何错误。然后,您可以合理地推断出他的父母之一摔断了腿,因为孩子们随后经常按照描述进行动作,因此这是“最佳解释的推论”,也是(非正式)最大可能性的例证。(当然,这种解释可能是错误的,只是可能,不确定。绑架/最大可能性不能给出确定的结论)。
绑架是关于在数据中找到模式,然后搜索可能使这些模式成为可能的理论。然后选择可能的解释,即最大程度地观察到的模式,这才是最大的可能性!
科学绑架的主要例子是进化。没有一个观察结果暗示进化,但是进化使观察到的模式比其他解释更有可能。
另一个典型的例子是医学诊断?哪种可能的医疗状况最可能观察到症状?同样,这也是最大的可能性!(或者,在这种情况下,也许贝叶斯估计更合适,我们必须考虑各种可能解释的先验概率)。但这是技术性的,在这种情况下,我们可以拥有经验先验,可以将其视为统计模型和我们所谓的模型的自然组成部分,所谓的先验是某种任意的(*)统计约定。
回到有关MLE的外行术语解释的原始问题,这是一个简单的示例:当我的女儿分别是6岁和7岁时,我问他们这个问题。我们制造了两个((两个鞋盒),一个装了两个黑球,八个装了红色,另一个装了数字。然后我们混合骨灰盒,随机抽取一只骨灰盒。然后,我们从那个中随机取了一个球。它是红色的。
然后我问:您认为是从哪个中抽出红球的?经过大约一秒钟的思考,他们(在合唱团中)回答:从一个有8个红球的家伙开始!
然后我问:你为什么这么认为?又过了大约一秒钟(再次回声):“因为这样,画一个红色的球就容易了!”。也就是说,更容易=更有可能。那是最大的可能性(编写概率模型很容易),这是“推断最佳解释”,即绑架。
(*)为什么我说“任意”?为了继续医学诊断问题,说患者是一个很难诊断医生较早前没有见过的病情的人。然后,例如,在与患者交谈时,出现了他不久前去过非洲热带地区的某个地方的情况。那是一条新的数据,但是它在典型模型(用于这种情况,无论是正式的还是非正式的)中的作用将是改变难以解释的先验,因为像疟疾这样的热带疾病现在将越来越高。先验概率。因此,新数据将先进入分析。
(如果连续读取数据,则将“概率密度”读取为“概率”。因此,如果以英寸为单位测量,则密度将以每英寸的概率来度量。)
让我们玩一个游戏:我在一个黑暗的房间里,没人能看到我的所作所为,但您知道,要么(a)我扔一个骰子,然后将“ 1”的数量计为“成功”,要么(b)我扔一个硬币而且我把正面的数目算作“成功”。
正如我所说,您看不到我要执行哪两个操作,但是我只给您一个信息:我告诉您我掷了100次骰子,或者我掷了100次硬币,并且我有17次成功。
问题是猜测我丢了骰子还是扔了硬币。
您可能会回答我扔了一个骰子。
如果这样做,那么您可能已经“通过最大程度地通过可能性进行了猜测”,因为如果我在100次实验中观察到17次成功,那么投掷骰子的可能性就比投掷硬币的可能性大。
因此,您所做的就是取“成功概率”的值(骰子为1/6,硬币为1/2),使其最有可能在100中观察到17次成功。每100次掷骰子,您有17次“ 1”的机会大于在100次掷硬币中获得17个头的机会。
或对数似然:
例
首先让我们生成一些假数据:
set.seed(123)
x <- rnorm(1000, 1.78)
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
本示例说明如何使用多种方法来找到使似然函数最大化的值,以找到参数的“最佳”值。