机器学习从入门到进阶⑦丨双对数回归模型

法国女足世界杯 5467

y相对于x变化的变化,

即:如果x变化,y会有多少变化?

这正是费尔南多需要的,他想知道,受其他变量的变化的影响,价格又会有怎样的变化。

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

y = β0 + β1.x1 + β2.x2 + …+ βn.xn + 𝛆

费尔南多建立的模型如下:

price = β0 + β1.发动机大小

即,将价格作为发动机大小的函数。

费尔南多用发动机大小对汽车价格求导。那是不是只是通过发动机大小的变化,就能体现出价格的变化?

并不是这么简单。线性模型是用来表达线性关系的,如下:

y = mx + c

如果计算y对x的导数,则会给得出:

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)是统计中常用的基数。

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

x的增长不会使得y相应增长,直到达到某个阈值

到达阈值后,x的小幅增长,会使y急速的上升

■对数

对数是一个有趣的概念。在回归模型中,对数具有一定特征。对数的基本属性是它的底数,典型的底数有2、10和e。

如:

多少个2相乘等于8?2 × 2 × 2 = 8,即答案是 3

也可以表示为 log2(8) = 3

以2为底数的8的对数为3。

对数和指数都有一个常用的底数,被称为 欧拉数(e),其近似值为 2.71828。统计学中经常会用到e。以e为底数的对数称为自然对数。

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

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

■弹性

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

E = P/Q × 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的变化所引起的y的变化率呢?

首先,将y和x之间的关系定义为指数关系。

y = α x^β

首先将其表示为双对数函数: log(y)= log(α)+β.log(x)

方程y = α x^β看起来并不像是回归模型:y =β0+β1.x1。当β0= log(α)、β1=β,这个等式可以重写为: log(y)=β0+β1.log(x1)

但它如何表达弹性关系呢?我们求相对于x的log(y)的导数,可得:

d. log(y)/ dx = β1. log(x1)/dx

=> 1/y . dy/dx = β1 . 1/x => β 1 = x/y . dy/dx

β1的方程就是弹性。

构建模型

搞清楚了这些概念后,让我们看看费尔南多如何重构模型:

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

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

经过对模型的训练,最终得到了如下的参数:

该模型的方程是:

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%

模型评估

费尔南多现在建好了双对数回归模型,接下来该通过训练和测试数据来评估模型的表现。

他之前已经将数据分成了训练集和测试集。对基于训练数据创建的模型来说,测试数据是不可见的数据。在测试数据上的表现,才是对模型的真正考验。

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

经过对模型的测试,计算得出0.8186的调整R平方值。这相当不错,意味着即使对于不可见的数据,模型也能解释81.86%的变化。

请注意,该模型估算的是log(价格),即价格的对数,而不是价格本身。想要估算汽车价格,需要进行转换。

即将log(价格)作为底数e的指数。

e^log(价格) = 价格

结语

前几篇文章中,统计学习奠定了基础,假设检验讨论了零假设和替代假设,简单线性回归模型简化了回归,之后进入多变量回归模型的世界,又讨论了模型选择方法。而在这篇文章中,我们介绍了双对数回归模型。

到目前为止,构建的回归模型只涉及数值自变量。下一篇文章将讨论交互关系和定性变量的概念。

翻译:TalkingData

作者:Pradeep Menon

来源:Mudium

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

机器学习从入门到进阶⑥丨模型选择方法

机器学习从入门到进阶⑤丨多元回归模型

机器学习从入门到进阶④丨线性回归模型

TalkingData——用数据说话

每天一篇好文章,欢迎分享关注

返回搜狐,查看更多