高维度线性回归模型(简明数据科学第七部分)

高维度线性回归模型(简明数据科学第七部分)(1)

作者丨Pradeep Menon

原文丨 https://towardsdatascience.com/data-science-simplified-part-7-log-log-regression-models-499ecd1495f0

译者丨TalkingData 张永超

在本系列的内容中,我们已经讨论了简单线性回归模型,以及多元回归模型和选择正确模型的方法。

费尔南多现在已经构建了一个很好的模型。

高维度线性回归模型(简明数据科学第七部分)(2)

price = -55089.98 87.34 engineSize 60.93 horse power 770.42 width

但是,费尔南多依然有一下考虑:

  • 如何使用常见的比较单位来估算价格变化?
  • 关于发动机尺寸、马力和宽度的对应价格有多少弹性变化?

在本篇内容中,我们将解决这些问题。本文将介绍对数回归模型。

概述 为了了解对数回归模型,首先需要理解导数、对数、指数的概念,进而理解弹性的概念。

**导数: ** 导数是一种表示变化的方式 —- 一个函数在一个给定点上的变化量。

如一个变量y是x的函数,则将y定义为:

y = f(x)

则在y上关于x的导数,表示为:

dy/dx = df(x)/dx = f'(x)

而这种表示的含义如下:

y相对于x变化的变化,即,如果x变化,y会有多少变化?

这正是费尔南多所需要的,他想知道的价格正是相对于变量的变化。

之前多元回归模型的一般形式如下:

高维度线性回归模型(简明数据科学第七部分)(3)

也就是说费尔南多建立以下模型:

price = β0 β1 . 发动机大小 i.e. 价格是一个关于发动机大小的函数。

费尔南多所构建的模型主要的目标是预测汽车的价格,而其价格方面取决于发动机的大小,其模型也正好表达了发动机大小的变化对应价格的变化的规律。

然而,可能并非如此,线性模型是假定数据是线性关系的,如下:

y = mx c

如果计算y上的导数,则会给出如下的结果:

dy/dx = m . dx/dx dc/dx

相对于发动机本身的变化,其值始终为1,例如dx/dx = 1

一个常数相对于任何东西的变化其导数始终为0,因为它是一个常数,例如dc/dx = 0

那么公式就变成了:

dy/dx = m

在发动机大小上应用价格导数将只会关联与发动机大小的系数。

面对这种情况,必须想办法来改变它,那么接下来就看看指数和对数。

指数:

指数是一个具有两个运算符的函数,基(b)和指数(n),被定义为b^n,其形式如下:

f(x) = b^x

基数可以使任何的正数,欧拉数(e)是统计中最为常用的基数。

在几何上,指数关系具有以下的结构:

高维度线性回归模型(简明数据科学第七部分)(4)

  • x的增加不会导致y的相应增加,直到到达某个阈值
  • 到达阈值后,x每增加一小部分,y会急速的上升

对数:

对数是一个有趣的符号。在回归模型中,对数有着个性化的特质,对数的基本属性是它的基数,对数典型的基数是2、10和e。

如下例:

  • 多少个2相乘等于8?2 x 2 x 2 = 8 答案是 3
  • 也可以表示为 log2(8) = 3

可以读作 以2为底的8的对数为3。

对数还有另一个共同的基数,被称为欧拉数(e),其近似值为 2.71828,在统计学中被经常使用。以e为低的对数称为自然对数。

对数也有很好的变革能力,对数可以将指数关系演化为线性关系。例如下图显示了y和x之间的指数关系:

高维度线性回归模型(简明数据科学第七部分)(5)

如果对数应用于x和y,则log(x)和log(y)之间的关系是线性的。它看起来像这样:

高维度线性回归模型(简明数据科学第七部分)(6)

弹性:

弹性是衡量一个经济变量对另一个经济变量的响应程度。假设我们有一个函数:Q = f(P)那么Q的弹性定义为:

E = P/Q x dQ/dP

dq/dP是P中Q变化的平均变化

**结合在一起: ** 现在让我们把这三个数学角色放在一起,导数、对数和指数。他们的结合规则如下:

e的对数是1,即log(e)= 1

指数的对数是指数乘以基数

log(x)的导数是:1 / x

设想一个函数y表示,如下:

y = b^x

=> log(y) = x log (b)

那么这是否意味着是线性回归模型?我们可以做数学演化以利用导数、对数和指数吗?我们是否可以重写线性模型方程来找出x的变化率呢?

  1. 首先,让我们将y和x之间的关系定义为指数关系。
  2. y = α x^β
  3. 首先将其表示为log-log的函数:log(y)= log(α) β.log(x)
  4. 方程y = α x^β看起来并不像是回归模型:Y =β0 β1,其中β0= log(α),β1=β。这个等式现在可以重写为:log(y)=β0 β1.log(X1)

但是如何表达弹性关系呢?我们取log(y)和x的导数,得到如下结果:

  • d. log(y)/ dx = β1. log(x1)/dx
  • => 1/y . dy/dx = β1 . 1/x => β1 = x/y . dy/dx
  • β1的方程是弹性。

构建模型

搞清楚了这些概念后,费尔南多重新构建了一个模型,如下:

高维度线性回归模型(简明数据科学第七部分)(7)

log(价格) = β0 β1. log(发动机大小) β2. log(马力) β3. log(宽)

他希望根据发动机尺寸,马力和宽度的变化来估算汽车价格的变化。

费尔南多最终得到了如下的参数:

高维度线性回归模型(简明数据科学第七部分)(8)

该模型的方程是:

log(价格) = -21.6672 0.4702.log(发动机大小) 0.4621.log(马力) 6.3564 .log(宽)

以下是该模型的解释:

  • 所有系数都很重要
  • 调整的R平方为0.8276,说明该模型解释了数据变化的82.76%
  • 如果发动机尺寸增加4.7%,那么汽车价格将上涨10%
  • 如果马力增加4.62%,那么汽车价格将上涨10%
  • 如果汽车的宽度增加6%,那么汽车的价格将增加1%

模型评估

费尔南多现在已经建立了对数回归模型。他评估模型在训练和测试数据上的表现。

回想一下,他已经将数据分成了训练和测试集,训练数据用于创建模型,测试数据是不可见的数据。测试数据的性能是真正的考验模型的地方。

高维度线性回归模型(简明数据科学第七部分)(9)

在训练数据上,模型表现相当好,调整的R平方为0.8276,说明该模型可以解释82.76%的训练数据变化。为了使模型可以最终被接受,还需要在测试数据方面表现良好。

费尔南多测试测试数据集的模型性能,该模型计算测试数据的调整R平方为0.8186。这意味着即使对于看不见的数据,模型也能解释81.86%的变化。

请注意,该模型估计log(价格),而不是汽车的价格。要将估计的log(价格)转换为价格,需要进行转换。

转换是将log(价格)作为基础e的指数。e^log(价格)= 价格

结语

统计学习奠定了基础,假设检验讨论了空假设和替代假设的概念,简单的线性回归模型使回归简单,然后,进入多元回归模型的世界,然后讨论模型选择方法。在这篇文章中,讨论了对数回归模型。

到目前为止,构建的回归模型只有数值独立变量。下一篇文章将讨论相互作用和定性变量的概念。

相关阅读:

简明数据科学 第一部分:原则与过程

简明数据科学 第二部分:统计学习的关键概念

简明数据科学第三部分:假设检验

简明数据科学 第四部分:简单线性回归模型

简明数据科学 第五部分:多元回归模型

简明数据科学 第六部分:模型选择方法

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页