线性回归是统计学中的知识,也是回归分析中的基础内容。

线性回归利用最小二乘函数对一个或者多个自变量和因变量之间的关系进行建模。

从实际问题出发

本例摘自《Essentials of Business Analytics》的Chapter 4.

Butler Trucking Company is an independent trucking company in southern California. A major portion of Butler’s business involves deliveries throughout its local area. To develop better work schedules, the managers want to estimate the total daily travel times for their drivers. The managers believe that the total daily travel times (denoted by y) are closely related to the number of miles traveled in making the daily deliveries (denoted by x). Using regression analysis, we can develop an equation showing how the dependent variable y is related to the independent variable x

简单解释一下,解释Butler公司主要业务是运送货物。为了制定计划,管理人员想评估司机每天的行驶时间。他们认为, 行驶时间($y$)运送货物的行驶里程($x$)有着很紧密的联系。希望通过回归分析来得到他们的关系。

这个问题就是典型的线性回归问题。统计总体(population)是所有的运送任务安排,总体的每个运送任务都有一个$x$值(行驶里程) 和对应的$y$值(行驶时间)对应。简单线性回归(simple linear regression)可以如下表示:

$$ y=\beta_{0}+\beta_{1} x+\varepsilon $$

$\beta 0,\beta 1$是模型中的参数,而$\varepsilon$则是随机变量,是模型中的随机噪声(干扰)。也就是无法通过$x$来解释$y$的部分。

表示因变量$y$的期望值$E(y)$与自变量$x$之间关系的等式,就是回归方程。简单回归方程可以表示为

$$ E(y | x)=\beta_{0}+\beta_{1} x $$

从几何角度,简单线性回归就是一条直线,$\beta_0$是截距,$\beta_1$是斜率。

下面的图表示了简单线性回归的3种类别:

1562383891571

图中,左侧为正相关,中间为负相关,右侧为无关。

简单线性回归

在总体参数$\beta_0,\beta_1$通常是未知的,需要求得。简单线性回归的估计方程为:

$$ \hat{y}=b_{0}+b_{1} x $$

根据样本数据,可以求得$b_0$与$b_1$。

假设,有下面这些样本:

1562384388672

可以使用Excel绘制一下散点图:

1562385629601

最小二乘法估计

想得到$b_0,b_1$,可以使用最小二乘法来计算精确度。

$$ \min \sum_{i=1}^{n}\left(y_{i}-\hat{y}_{i}\right)^{2} $$

我们可以定义离差$e_{i}=y_{i}-\hat{y}_{i}$。通常为了防止离差取和后正负相抵,将其取平方,称为残差。它代表预测值与实际值之间的差距。所以,上面的式子又可以表示为:

$$ \min \sum_{i=1}^{n} e_{i}^{2} $$

它是个凸函数,所以可以通过求导公式,让偏导等于0时,其取最小值,很容易计算出最优的$b$:

$$ \begin{align} b_{1}&=\frac{\sum_{i=1}^{n}\left(x_{i}-\overline{x}\right)\left(y_{i}-\overline{y}\right)}{\sum_{i=1}^{n}\left(x_{i}-\overline{x}\right)^{2}}\\ b_{0}&=\overline{y}-b_{1} \overline{x} \end{align} $$

有一个有趣的发现,取平方刚好与距离点到直线之间距离组成的正方形的面积相同,可以画一下:

1562385464581

Excel中计算回归方程

可以使用Excel图表工具,计算回归方程,并画出回归直线:

excel_regression_plot

还可以点击显示公式,在图片上显示出公式。

1562419044340

拟合程度衡量

平方和的分解

之前说的损失函数,叫做残差平方和(SSE),公式为:

$$ SSE= \sum_{i=1}^{n}\left(y_{i}-\hat{y}_{i}\right)^{2} $$

假设,我们不知道下一个任务的行驶里程是多少,但要去估计行驶时间,应该怎么做?最保守的方法肯定是去平均值,也就是$\bar y$,它也很容易就能被计算出来。

通过对当前样本数据计算,可以得到$\bar y=6.7$。

下面这个表显示每个任务的$y_i-\bar y$的值。

1562417610613

其中:

  • C3单元格的公式为:=SUM(C2:C11)
  • D2的公式为:=C2-AVERAGE($C$2:$C$11),依次下拉到D11
  • E2的公式为:=POWER(D2,2)依次下拉到E11

我们可以根据$y_i-\bar y$的平方和计算出领一个误差平方和,总离差平方和(SST)

$$ \mathrm{SST}=\sum_{i=1}^{n}\left(y_{i}-\overline{y}\right)^{2} $$

为了计算预测值$\hat y$偏离$\bar y$的程度,还需要计算一个平方和,名字叫做回归离差平方和(SSR)

$$ \mathrm{SSR}=\sum_{i=1}^{n}\left(\hat{y}_{i}-\overline{y}\right)^{2} $$

其中,离差的意思是偏离均值的差。

Excel中计算SSE,SSR,SST

在当前Excel表中,这3个值的计算方法分别为:

  • SSE:在F2单元格写下公式=0.0678*B2 + 1.2739 - C2,之后下拉到F11,再计算=SUMSQ(F2:F11),值为8.0287421;
  • SSR:在G2单元格写下公式=0.0678*B2 + 1.2739 -AVERAGE($C$2:$C$11),之后下拉到G11,再计算=SUMSQ(G2:G11),值为15.85914;
  • SST:直接通过公式=SUM(E2:E11),就能得到,值为23.9;

下面这张图展示了第3个点$y_3$与$\hat y_3,\bar y_3$间的距离。

1562387048443

可以计算出来,SST,SSR,SSE之间是有关系的,他们的关系是:

$$ SST=SSR+SSE $$

其中:

  • SST=总离差平方和
  • SSR=回归离差平方和
  • SSE=回归残差平方和

只要知道其中任意两个值,就可以知道另一个的值。

决定系数$R^2$

由于$SST=SSR+SSE$,可以得出:

  • 如果回归方程拟合的越好,也就是SSE越小,那么SSR就越接近SST;
  • 如果回归方程拟合的越差,SSE越大,那么SSR越接近0

由于SST、SSR、SSE都是平方和,全部大于0,可以知道$\frac{SSR}{SST}\in [0,1]$。这个值称为决定系数$R^2$,它越大,证明回归方程越好。这个值也代表了回归方程能够解释的部分所占的比例。比如使用简单回归分析对之前的Butler数据集进行拟合,$R^2=0.6641$,也就是能够解释$66.41%$的数据。

Excel中计算$R^2$

与计算回归方程的操作相同,右键点击其中一个点,点击添加趋势线,之后点击右边的显示R平方值,

1562419032431

1562418984900

多元线性回归估计

把简单线性回归推广一下,假设自变量不只一个,而是有$q$个:$x_{1}, x_{2}, \ldots, x_{q}$,那么如果已知$\beta_{0},\beta_{1} ,\beta_{2},...,\beta_{q} $,可以计算出:

$$ y=\beta_{0}+\beta_{1} x_{1}+\beta_{2} x_{2}+\cdots+\beta_{q} x_{q}+\varepsilon $$

当然,通常不知道$\beta$,所以我们要对$\beta$ 进行估计,求:

$$ \hat{y}=b_{0}+b_{1} x_{1}+b_{2} x_{2}+\cdots+b_{q} x_{q} $$

最小二乘估计

与简单线性回归相同,最小二乘估计计算的也是:

$$ \min \sum_{i=1}^{n}\left(y_{i}-\hat{y}_{i}\right)^{2}=\min \sum_{i=1}^{n} e_{i}^{2} $$

之后估计出$b_0,b_1,b_2,...,b_q$,然后用它们来预测。

还用Butler公司的例子,之前的简单回归$R^2=0.6641$,只解释了66.41%的数据,解释力度不够,所以我们可以再加一个自变量(分送货物的次数),看看能不能更好地来拟合$y$。

假设有300个任务,自变量包括:(行驶里程、分送货物次数)这是其中部分数据截图

1562419771924

Excel多元回归分析

修改加载项

想有数据分析功能,先要修改加载项:

首先:点击【文件选项卡】->点击左下角的【选项】->点击【加载项】->点击管理(A)右侧的【Excel加载项】(见下图)->点击【转到】->将【分析工具库】与【分析工具库VBA】都选中之后点确定。

1562420167343

1562420238277

Excel多元数据分析实操

第一步,单击 【数据选项卡】->【分析栏】->【数据分析】->选择【回归】1562420443764

接下来,Y值区域设置为D1:D301,X值区域设置为B1:C301,选中标志复选框(因为包含了标题),选中置信度复选框,并设置其为99

1562420979698

接下来,就可以看到统计结果了

1562421024363

可以得到,最终的公式为:

$$ \hat y = 0.067182\times x_1+0.0689998\times x_2+0.127337 $$

可以看出,分送货物次数不变时,行驶里程每增加一公里,行驶时间增加大约0.067小时。

可以看出,$R^2=0.81735$,比之前单变量的的$0.6641$解释提高了$15.32%$!效果提升非常明显!

虽然可以通过回归分析估计因变量与自变量之间的关系,但这并不能说明它们之间存在着因果关系!相关并不意味着因果,具体因果关系还是要专业人员来根据专业知识来做出判断。

回归分析推断

残差分析

线性回归分析的形式为:

$$ y=\beta_{0}+\beta_{1} x_{1}+\beta_{2} x_{2}+\cdots+\beta_{q} x_{q}+\varepsilon $$

使用点估计得到的回归方程为:

$$ \hat{y}=b_{0}+b_{1} x_{1}+b_{2} x_{2}+\cdots+b_{q} x_{q} $$

回归分析有效,随机干扰项需要满足下面两个条件

  • 对于一组数据,$\varepsilon$服从于均值为0,同方差的正态分布
  • 各个点的干扰项之间相互独立

下面这张图直观的说明了简单线性回归的假定条件和意义:

1562422240699

一个满足条件的回归分析,残差分布应如下图:

1562422310403

而不满足条件的回归分析的例子,有如下几种:

1562422340560

  • (a)残差$e$的离散程度随着自变量$x$的增加而增加,表面残差中不存在同样水平的方差
  • (b)明显有一个曲线,说明只有一次项方程并没有很好地解释因变量,可能需要二次甚至更高次项的方程
  • (c)中有大量靠近水平线下方的残差,而一部分残差远高于水平线,说明残差不是正态分布的
  • (d)中的横轴为时间,可以看出这些残差并非独立产生,而是与之前的数据有关,但又没有给予重视,可能需要使用一些时间序列分析中的技术来处理

Excel残差分析

依旧是之前的表,点击【数据分析】->【回归】->选中残差图复选框

1562422822162

下面是行驶里程,与分送次数为x轴的回归残差图

1562422965058

1562422974682

虽然分送次数貌似有某些规律存在,可能不完全地独立,但很小,基本上可以忽略。可以认为,Butler公司的回归分析是可靠的。

显著性水平检验

F检验

既然回归分析可靠,那我们要开始假设检验及建立置信区间。

首先假设检验:

回归参数$\beta_1,\beta_2,...,\beta_q$都等于0,也就是用回归方程解释因变量,不一定比用它的均值解释它更好。如果通过这个假设,我们直接用$\bar y$作为$\hat y$的就行了。

只要证明其中有一个$\beta_i$不等于0,就可以证明回归方程有效,即可拒绝原假设。

通过样本进行假设检验,需要基于F分布的F检验,F分布的统计量为:

$$ F=\frac{SSR/q}{SSE/(n-q-1)} $$

$SSR/q$常被称为均方回归离差平方和(MSR),$SSE/(n-q-1)$被称为均方残差平方和(MSE)。

F值越大,证明回归越强,对于给定的F值,可以计算p值,p值越小,证明F值越可靠。当p值小于某个阈值时(一般是0.05或者0.1),我们就拒绝原假设。

再看一下之前的图片:

1562421024363

可以看出,F值为664多,而significance F就是F的p值,它非常小,只有2.2E-110,因此我们拒绝原假设,认为回归模型是合适的。

t检验

如果F检验结果表明,总体回归关系存在,还需要检验$y$与各个变量$x_1,x_2,...,x_q$之间的关系是不是显著。如果不显著,则不把该$x_j$加入回归方程中。

所以建立假设检验:$\beta_j=0$,也就是$y$与$x_j$之间不存在线性关系。相反,如果$\beta_j\ne 0$说明存在线性关系,选择备择假设。

检查他们是否有线性关系,使用t检验统计量来检验原假设,t检验的公式为:

$$ t=\frac{b}{s_{b_{j}}} $$

其中,$s_{b_j}$是$b_j$的标准差。$t$值的绝对值越大,越有可能拒绝原假设。给定$t$值,p值越小,说明拒绝原假设的证据越强。

再拿出之前的图片:

1562421024363

$\beta_1=0$的$t$统计量是27.36551,p值是3.54E-83,由于p值很小,所以拒绝原假设$\beta_1=0$,同样也可以认为$\beta_2=0$不成立。

然而,$\beta_0$的t统计值只有0.62,而p值居然有0.535!我们可以认为$\beta_0=0$是成立的。我们可以看出,截距在置信度为99%的时候,上下限包括了0,在内,所以把它当做0。但是,通常情况下,对于截距项,我们不会把它真的设置为0,因为这样一来就会强制要求回归模型穿过原点,会改变回归模型的斜率,并降低准确性,这样实在得不偿失。

多重共线性

自变量间通常可能会存在相关性。比如,$x_1$行驶里程与$x_2$分送次数在某种程度上相关。它们的相关性为$r_{{x_1}{x_2}}=0.16$,可以认为存在某种程度的相关性。

为了更直观地说明问题,把分送次数换成汽油消耗量。汽油消耗量自然和行驶里程紧密关联了。下面利用Excel的回归功能来看一下它们的回归分析结果:

1562467773894

可以看出,F检验统计量的p值为4.0954E-43,这说明行驶时间与行驶里程、汽油消耗确实存在着总体回归关系。

$x_1$的p值是3.15E-07,可以认为它与行驶里程相关。但$x_2$的p值居然是0.66左右,难道汽油消耗和行驶里程就不相关了吗?

当然相关,但由于汽油消耗和行驶里程是相关的,既然我们已经知道了行驶里程,再用汽油消耗来预测行驶时间,不会带来更多的信息。

解决这个问题,可以尝试使用 backward elimination方法,迭代删除变量,当回归当前存在p值过高的变量时,将其在回归方程中删除,并进行下一次回归,直到所有p值达到标准。

学习交流:
微信:ElijahMingLiu
Wechat

最后修改:2021 年 06 月 01 日 02 : 17 PM
如果觉得我的文章对你有用,请随意赞赏