线性回归中自变量对数变换后的系数解释为(线性回归中自变量对数变换后的系数解释是什么)

在线性回归分析中,经常会遇到需要进行变量变换的情况,而对数变换则是实际中十分常见的一种变换,根据我个人遇到的情况,很有可能是最常见的。
变换有好处有坏处,好处不用多说,使其满足线性关系,仍然可以按线性拟合。不好处是增加了解释的复杂程度,变换后的解释往往不像我们表面上看起来的那样简单。本文主要对这一问题进行说明。假定有下面这样一份数据,以x拟合y。ln(x)表示对x做的对数变换。
我们可以先看一下x与y的关系,如下图所示:再看y与lnx的关系,如下图所示:很明显,x与y的关系并不是线性关系,对x进行对数变换后,lnx与y的关系呈线性关系。因此我们拟合y=a+b*lnx这一模型。结果如下:预测结果如下:结果显示,截距为27.121,lnx的斜率为-4.525。
下面我们就专门来说一下斜率的解释问题。首先,把lnx看做一个变量的话,其解释就是我们经常说的:x每增加1个单位,因变量y的变化幅度。在这里也就是说:lnx每增加1个单位,y平均降低4.525。再通过上述例子的数据说的更具体一点。数据的最后一行中,lnx为2.71,预测的y值为14.867。当lnx增加1个单位,也就是lnx+1,变成了3.71,这时预测y应该是多少呢?很简单,在原有预测值基础上降低4.525,也就是14.867-4.525=10.342。到此为止,一切都与传统的解释无异。相信也不难理解。但是有时如果我们不关心lnx的变化,而更想看x的变化如何引起y的变化,这就不好解释了。下面就重点说一下x的变化如何影响y的变化。不好解释的原因在于,对于线性模型而言,系数值只是针对它对应的变量,不管这个变量是x也好,还是lnx或sqrt(x)也好,对它来说都一样。要了解x本身,我们就必须从lnx转到x。lnx+1,相当于lnx+lne,也就是ln(x*e),而e=2.71828,也就是说,当x增加到271.828%的时候(即x*2.71828),相当于lnx+1。还是以最后一行数据为例,最后一行数据的x值为15,增加到271.828%后,变为15*271.828%=40.77,此时lnx即ln(40.77)为3.71,恰好等于lnx+1也就是2.71+1。所以,对于x而言,很难说x增加1个单位的问题,只能说x增加百分比的问题(这就得理解x的加法在对数中就是乘法)。然而,即便是说增加百分比,通常我们可能也不习惯说:x增加了171%后的变化,听起来总是挺别扭。起码我们可以说增加1%、10%等的变化,可能就舒服多了。以增加1%为例,如果x增加1%,此时y的变化幅度是ln(101/100)*回归系数。比如该例最后1行数据,x为15,增加1%变为15*1.01=15.15,此时y的变化为:ln(101/100)*(-4.52)=-0.045,也就是说,当x值增加1%,y平均降低0.045。我们可以验证一下,x=15时预测值为14.867,而x=15.15时预测值为14.822,二者差值为0.045。同样,增加10%以此类推,计算ln(110/100)*回归系数即可。最后结论:如果你对x进行了对数变换,可以直接解释lnx,此时解释与常规方式相同,可以说lnx每增加1个单位,y的变化幅度为回归系数值。如果你想解释x,可以说:x每增加1%、10%等,y的变化情况,此时y的变化幅度为ln(101/100)*回归系数、ln(110/100)*回归系数,等。

版权声明