zl程序教程

您现在的位置是:首页 >  其他

当前栏目

预测分析:R语言实现2.1 线性回归入门

2023-03-09 22:22:02 时间


线 性 回 归


我们从第1章了解到回归问题会预测一个数值型的输出。最简单和最常见的回归类型就是线性回归。本章要探讨为什么线性回归如此常用,以及它的局限性和扩展问题。

2.1 线性回归入门


在线性回归(linear regression)中,输出变量是通过输入特征的一个线性加权组合来预测的。下面是简单线性模型的一个示例:

=1x+0

上述模型实质上表达的是,我们要估算一个用表示的输出,它是由字母x标记的一个预测变量(也就是特征)的一个线性函数。由希腊字母表示的项是模型的参数,被称为回归系数(regression coefficient)。一旦我们训练好模型并给这些参数选定了值,我们就可以通过在方程里直接代入x的任何值对输出变量进行预测。另一个线性模型的示例由下面的方程给出,这次的模型带有三个特征,回归系数也已经赋值了:

=1.91x1+2.56x2-7.56x3+0.49

和前面那个方程一样,在该方程中我们也可以看到系数比特征数多1个。这个附加的系数0被称为截距(intercept),它是当所有输入特征值都为0时模型的期望值。其他的参数可以解释为某特征每增加1个单位时输出值的预期变化。例如,在前面的方程中,如果特征x1的值增加1个单位,输出的期望值就会增加1.91个单位。类似地,特征x3的值增加1个单位会让输出减少7.56个单位。在简单的一维回归问题中,我们可以把输出绘制在图的y轴,把输入特征绘制在x轴。在这个示例中,模型预测了两个轴之间的一种直线关系,其中0代表该直线和y轴交叉或相交的交点,而1则代表该直线的斜率。我们通常把这种一个特征(因而有两个回归系数)的情况称为简单线性回归(simple linear regression),把两个或多个特征的情况称为多元线性回归(multiple linear regression)。

线性回归的假设

在深入钻研线性回归模型的训练方法及其性能的细节之前,我们要来看一下模型的假设。模型假设主要描述了模型对于我们尝试预测的输出变量y的判断。具体来说,线性回归模型会假设输出变量是一组特征变量的加权线性函数。此外,该模型还假设对于特征变量的固定值,输出是具有常数方差的正态分布。这就等于说,以两个输入特征为例,该模型假设的是,真实的输出变量y可以用如下的一个方程表示:

y=2x2+1x1+0+

这里,代表一个误差项,它是一个均值为0且方差为常数2的正态分布:

~N (0, 2)

我们可能听说过更正式地描述常数方差概念的术语—同方差性(homoscedasticity)。说到同方差性或者常数方差(constant variance),我们指的是这样的事实:误差部分的方差不会随着输入特征的值或水平(level)而变化。在下面的绘图中,我们可视化了一个具有异方差(heteroskedastic)误差(也就是不具有常数方差的误差)的线性关系虚构示例。其中,输入特征值较小的数据点离直线较近,因为在绘图的这个区域方差比较低,而较大的输入特征值就离直线更远,因为它的方差更大。

 

项是实际函数y的一个不能化简的误差分量,可以用来表示随机误差,例如在特征值里的测量误差。在训练一个线性回归模型时,即使得到了所有合适的特征和充足的数据,并且要建模的系统也确实是线性的,但我们还是会预期在对输出的估算中观测到一定数量的误差。换言之,即使是线性的实际函数,我们还是会预期,一旦找到了对训练样本拟合最佳的一条直线,但由于该误差分量体现的这个固有方差,这条直线也不会正好穿过所有(或者甚至不会穿过任何一个)数据点。不过,需要记住的关键一点是,在这个理想化的场景里,因为误差分量的均值为0且方差为常数,所以在具有足够大的样本的前提下,训练准则让我们能接近回归系数的真实值,因为这些误差会互相抵消。

另一个重要的假设和误差项的独立性有关。这意味着我们不希望和某条具体的观测数据相关的残差(residual)或误差项以某种方式也和另一条观测数据具有相关性。作为测量过程有误的典型结果,当观测数据相互之间具有函数关系时,这个假设就不成立了。如果取出训练数据的一部分,把所有的特征值和输出值乘以2,并把这些新数据点加入训练数据,我们就会产生一种拥有更大数据集的错觉,不过,这样做的结果是导致存在误差项互相有依赖关系的配对观测数据,从而使我们的模型假设不能成立。附带再说一句,对于任何模型,这种人工扩大数据集的方式都永远是不可取的。类似地,如果观测数据以某种方式通过某个未测量的变量相互关联,也会产生互相关联的误差项。例如,如果我们在测量某个生产线零件的故障率,那么来自同一个工厂的零件可能会在误差里具有相关性,比如,来源于在组装过程的不同标准和规程。因此,如果不把工厂作为一个特征加进来,我们就会在样本里看到,来自同一个工厂的零件的观测数据之间会存在相互关联的误差。实验设计(experimental design)的研究内容就是关于识别并消除误差项里的相关性的,但这个主题超出了本书的范围。

最后还有一个重要的假设,它表达了这样一个概念:特征本身在统计学上是相互独立的。这里有必要阐明的是,在线性模型中,虽然输入特征必须是线性加权的,但是它们本身可以是另一个函数的输出。举例说明,如下方程式是一个具有三个特征sin(z1), ln(z2)和exp(z3)的线性模型,这看起来也许有点令人吃惊:

y=0.8 sin(z1)-0.6 ln(z2)+2.3ez3

通过对输入特征进行一些变换并替换到模型中,我们就可以看出它其实是一个线性模型:

 

现在,我们有了一个更易于识别为线性回归模型的方程式。如果前面的示例让我们相信几乎任何方程都可以变换为一个线性模型,那么下面两个示例会有力地说服我们,实际上并非如此:

 

由于第一个回归系数(1)的存在,上面两个模型都不是线性模型。第一个模型之所以不是线性模型,是因为1成为第一个输入特征的指数。在第二个模型里,1在一个正弦函数的内部。从这些示例要吸取的重要教训是,有些情况下,为了让数据符合线性模型,我们可以对输入特征进行变换,但是,需要小心从事,让回归系数始终是变换后新特征的线性权值。