对于R语言中密度函数估计和r语言密度函数图的相关题,想必不少人都想了解,就让小编带大家来了解一下吧!


介绍

解释模型如何工作是数据科学中最基本和最关键的题之一。当你建立一个模型时,它会给你预期的结果,但是它背后的过程是什么呢?作为一名数据科学家,您需要回这个常见题。

例如,假设您构建了一个预测公司股价格的模型。你注意到,在夜深人静的时候,股价上涨得非常快。背后可能有很多原因,找到最有可能的原因就是最大似然估计的意义。这个概念经常用于经济学、核磁共振成像和卫星成像等领域。

在这篇文章中,我们将研究最大似然估计(以下简称MLE)如何工作,以及如何使用它来确定任何分布的模型的系数。理解MLE将涉及概率和数学,但我会尝试通过示例使其更容易理解。

注意如前所述,本文假设您已经具备概率论的基本知识。您可以通过阅读本文来澄清一些基本概念每个数据科学专业人员都应该知道的概率分布常识。

目录

为什么使用最大似然估计MLE?

通过示例理解MLE

了解有关技术细节的更多信息分布参数似然对数似然最大似然估计

使用MLE确定模型系数

R语言的MLE实现

为什么使用最大似然估计MLE?

假设我们想要预测活动门的销量。数据的直方图和密度如下。

您将如何对这个变量建模?该变量不是正态分布且不对称,因此不满足线性回归的假设。常用的方法是对变量进行对数、平方根、倒数等变换,使变换后的变量服从正态分布,进行线性回归建模。

让我们尝试一下这些转换,看看结果如何

日志转换

平方根换算

相互换算

这些都不接近正态分布,那么我们应该如何在不违反模型基本假设的情况下对这些数据进行建模呢?如何使用正态分布以外的分布对这些数据进行建模?如果我们使用不同的分布,我们将如何估计系数?

这是最大似然估计MLE的主要优点。

举例加深对MLE的理解

在学习统计和概率时,你一定遇到过x>100这样的概率,因为x服从均值为50、标准差为10的正态分布。在这些题中,我们已经知道分布及其参数,但是在现实生活中的题中,这些参数是未知的,必须根据数据进行估计。MLE可以帮助我们确定给定数据的分布参数。

我们用一个例子来加深理解假设我们用数据来表示一个班级学生的体重,单位是公斤。数据绘制如下,还提供了用于生成数据图的R代码

图1

x=asdataframenorm50,50,10

ggplotx,aesx=x+geom_dotplot

这似乎遵循正态分布。但是我们如何得到这个分布的平均值和标准差呢?一种方法是直接计算给定数据的平均值和标准差,分别为498千克和1137千克。这些值很好地表示了给定的数据,但并不是总体情况的描述。

我们可以使用MLE来获得更稳健的参数估计。因此,MLE可以定义为一种从样本数据中估计均值和方差、泊松率Lambda等总体参数,从而最大化获得观测数据的概率的方法。

为了更好地理解MLE,请尝试测以下哪项可以最大化观察上述数据的概率?

平均值=100,SD=10平均值=100,标准差=10

平均值=50,SD=10平均值=50,标准差=10

显然,如果平均值为100,我们不太可能观察到上述数据分布模式。

了解更多技术细节

现在我们知道MLE可以做什么,我们可以深入了解什么是真正的似然估计以及如何最大化它。首先,我们首先快速回顾一下分布参数。

分布参数

首先,我们看一下分布参数。维基百科对该词的定义是“它是概率分布的定量指标”,可以将其视为样本总体或统计模型的数值特征。通过下图来理解一下

钟形曲线的宽度和高度由两个参数决定——均值和方差。这是正态分布的分布参数。同样,泊松分布由参数lambda控制,即时间或空间间隔内事件发生的次数

大多数分布具有一两个参数,但某些分布可以具有多达4个参数,例如4参数beta分布。

可能

从图2和图3中我们可以看到,给定一组分布参数,某些数据值比其他数据值具有更大的概率。从图1中,我们看到给定数据更有可能出现在平均值为50而不是100时。然而,实际上,我们观察到了这些数据。因此,我们面临着一个逆题给定观测数据和感兴趣的模型,我们需要在所有概率密度中找到最有可能产生数据的概率密度函数/概率质量函数fx_。

为了解决这个逆题,我们通过反转数据向量x和分布参数向量来定义似然函数,即fx=,即

L;x=fx|

在MLE中,可以假设我们有一个似然函数L;x,其中是分布参数向量,x是观测值集。我们感兴趣的是找到对于给定观测值x值具有最大似然性的值。

对数似然

如果假设观测集Xi是一个具有相同分布的独立随机变量,概率分布为f0,其中f0=正态分布,如图1,那么手头的数学题就变得简单了。似然函数可以简化为

为了找到该函数的最大值/最小值,我们可以对该函数对求导并将其设置为0,因为零斜率表示最大值或最小值。由于我们这里有产品,所以我们需要应用链式法则,这对于产品来说是相当麻烦的。一个聪明的技巧是取似然函数的对数,并最大化它。这会将乘积转化为加法,并且由于对数是严格递增函数,因此它不会影响的结果值。所以我们有

最大化可能性

为了找到对数似然函数LL的最大值,我们可以

取LL;x函数对的一阶导数,并将其等于0,

取LL;x函数对的二阶导数并确认其为负。

在许多情况下,微积分对于最大化似然性没有直接帮助,但仍然可以轻松识别最大值。在寻找最大对数似然的参数值时,没有什么比一阶导数等于零更“优先”或更特殊的地方了。当需要估计某些参数时,它只是一个方便的工具。

一般来说,可以求函数最大值的argmax方法可能适合求对数似然函数的最大值。这是一个无约束的非线性优化题,我们寻求一种按以下方式工作的优化算法

从任意起点可靠地收敛到局部最小值

尽可能快

使用优化技术来最大化可能性是很常见的;有很多方法可以做到这一点,例如牛顿法、Fisher评分法、各种基于共轭梯度的方法、最速下降法、Nder-Mead型单纯形法、BFGS方法和各种其他技术。

结果表明,当模型假设为高斯分布时,MLE估计等效于一般最小二乘法。

你可以参考这里来证明这一点。

使用MLE确定模型系数

现在让我们看看如何使用MLE来确定预测模型的系数。

假设我们有n个观测值y1,y2,yn的样本,它们可以被视为独立的泊松随机变量YiPi。此外,假设我们希望均值i方差也做同样的事情!因变量xi的向量。我们可以制定一个简单的线性模型如下-

其中是模型系数的向量。该模型的缺点是右侧的线性预测器可以假设任何实值,而左侧的泊松均值(表示预期计数)必须为非负数。该题的一个简单解决方案是使用线性模型对均值的对数进行建模。因此,我们考虑一个具有对数链接对数的广义线性模型,可以写成如下

我们的目标是使用MLE找到

现在,泊松分布如下

使用上一节中学到的对数似然概念来求。对上式取对数,忽略log的包含!常数,我们得到对数似然函数

其中i取决于协变量xi和的系数向量。我们可以代入变量i=expxi'并求解方程以获得最大似然值。一旦我们有了theta向量,我们就可以通过将xi和theta向量相乘来预测平均值的期望值。

R语言实现MLE

在本节中,我们将采用真实的数据集并应用之前学到的概念来解决题。您可以从此链接下载数据集。数据集中的示例如下

门发售日期

2012年8月25日00:008

2012年8月25日01:002

2012年8月25日02:006

2012年8月25日03:002

2012年8月25日04:002

2012年8月25日05:002

从2012年8月25日到2014年9月25日,它有每小时售出约18K张门的记录。我们的目标是预测每小时售出的门数量。这与本文第一部分中讨论的数据集相同。

这个题可以使用回归、时间序列等技术来解决。在这里,我们将使用我们学到的统计建模技术,并在R中实现。

首先,分析数据。在统计建模中,我们更关心目标变量如何分布。我们来看看计数的分布

histY$Count,中断=50,概率=T,主要=34;

线密度Y$计数,col=34;lwd=2

这可以看作是泊松分布,或者我们甚至可以尝试拟合指数分布。

由于手头的变量是数,因此泊松分布是更合适的模型。指数分布通常用于对事件之间的时间间隔进行建模。

我们来统计一下这两年售出的门数量

随着时间的推移,门销售量似乎大幅增长。为了简单起见,我们只将时间作为一个因素进行建模,其中时间定义为自2012年8月25日以来的周数。我们可以将其写为

其中是泊松分布的均值,0和1是我们需要估计的系数。

结合方程1和方程2,我们得到以下对数似然函数

我们可以使用Rstats4包中的mle函数来估计系数0和1。它需要以下主要参数

要最小化的负似然函数这与我们刚刚导出的函数相同,但前面有一个减号[最大化对数似然等于最小化负对数似然]。

系数向量的起点这是系数的初始预测值。结果可能会根据这些值而变化,因为函数可能会达到局部最小值。因此,最好通过以不同的起点运行函数来验证结果。

BFGS是优化似然函数的默认方法。

在我们的示例中,负对数似然函数的编码如下

nlllt;-函数theta0、theta1

我将数据分为训练集和测试集,以便客观地评估模型的性能。idx是测试集中行的索引。

设定种子200

idxlt;-createDataPartitionY$Count,p=025,list=FALSE

接下来调用mle函数获取参数

estlt;-stats4:mlminuslog=nll,start=listtheta0=2,theta1=0

摘要-est

最大似然估计

拨打

stats4:mlminuslogl=nll,开始=listtheta0=2,theta1=0

系数

估计标准误差

西塔02682807542548367e-03

西塔10032644512998218e-05

-2日志L:-16594396

我们得到系数


本篇讲解关于R语言中密度函数估计,和一些r语言密度函数图相关题,希望帮帮助到大家。


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。