预测分析:R语言实现2.5 线性回归的问题

2.5 线性回归的问题


在本章,我们已经看到了在尝试构建线性回归模型的时候遇到某些问题的一些示例。我们讨论过的一大类问题是和模型在线性、特征独立性和同方差性及误差的正态性等方面的假设相关的。我们还具体看到了诊断这类问题的方法,要么借助像残差图这样的图,或者利用能识别非独立成分的函数。本节要探讨线性回归中可能出现的一些其他问题。

2.5.1 多重共线性

作为预处理步骤的一部分,我们会尽力去除相互线性相关的特征。在此过程中,我们寻找的是一种完全的线性关系,这就是完全共线性(perfect collinearity)的示例。共线性(collinearity)是描述两个特征近似具有一种线性关系的性质。这对于线性回归会产生一个问题,因为我们会尝试给相互之间接近是线性函数的变量分配独立的系数。这样会导致的情况是:两个高度共线性的特征具有较大的p值表明它们和输出变量不相关,但如果去除其中一个特征并重新训练该模型,剩下的那个特征就会具有较小的p值。共线性的另一种典型迹象是某个系数出现不正常的符号,例如在一个预测收入水平的线性模型里,教育背景的系数为负。两个特征之间的共线性可以通过配对相关系数进行检测。处理共线性的一种方式是把两个特征合并为一个(例如通过取平均值);另一种方式是直接去除其中一个特征。

多重共线性(multicollinearity)出现在线性关系涉及多于两个特征的情况。检测它的一种标准方法是对线性模型中的每个输入特征计算其方差膨胀因子(variance inflation factor,VIF)。简而言之,VIF可以用来估计由于该特征和其他特征共线性而直接导致在具体系数的估计过程中能观察到的方差的增量。这通常是通过拟合一个线性回归模型来进行的,我们把其中的一个特征作为输出特征,把其他特征仍保留为常规的输入特征。然后我们对这个线性模型计算R2统计量,并据此利用公式1 / (1-R2)计算我们选取的那个特征的VIF。在R语言中,car包包含了vif()函数,它能方便地对一个线性回归模型中的所有特征计算VIF值。这里有一个经验规则是,VIF分数为4或更大的特征就是可疑的,而分数大于10就表明了多重共线性的极大可能性。既然看到了二手车数据中存在必须去除的线性依赖特征,就让我们来调查在余下的特征中是否存在多重共线性:

 

这里有3个值略大于4,但没有更大的了。作为一个示例,如下的代码演示了sedan特征的VIF值是如何计算的:

 

2.5.2 离群值

当观察我们的两个模型的残差时,我们会看到有某些观测数据比其他数据具有明显更大的残差。例如,根据CPU模型的残差图,我们可以看到观测数据200有非常大的残差。这就是一个离群值(outlier)的示例,它是一种预测值距离其实际值非常远的观测数据。由于对残差取平方的原因,离群值对RSS往往会产生显著的影响,给我们带来模型拟合效果不佳的印象。离群值可能是因为测量误差产生的,对它们的检测很重要,因为它们可能预示着不准确或非法的数据。另一方面,离群值也可能只是没有选对特征或创建了错误种类的模型的结果。

因为我们通常并不知道某个离群值是一个数据收集过程中的错误数据还是真实的观测数据,处理离群值会非常棘手。有时候,尤其是当我们有很少的离群值时,一种常见的手段是去除它们,因为包括它们往往会产生显著改变预测模型系数的效果。我们要说,离群值经常是具有较高影响(influence)的点。

离群值并不是具有高影响的唯一观测数据。高杠杆率点(high leverage point)也是这样的观测数据,在它们的特征中至少有一个具有极端值,因而远离大部分其他观测数据。cook距离(cook's distance)是一个结合了离群值和高杠杆率的概念来识别对数据具有高影响的那些点的典型衡量指标。要更深入地探索线性回归的诊断方法,有一个很好的参考书是John Fox编写的《An R Companion to Applied Regression》,由Sage Publications出版。

为了展示去除一个离群值的效果,我们要通过利用去掉观测数据 200 的训练数据创建一个新的CPU模型。然后,观察新模型是否在训练数据上有所改善。这里,我们会显示所采取的步骤和只有最后三行的模型摘要片段:

 

正如从减小的RSE和调整后的R2统计量看到的,我们在训练数据上得到了更好的拟合。当然,模型精确度的实际衡量还要看它在测试数据上的表现,我们也无法保证把观测数据200标记为虚假离群值的决定一定是正确的。

 

a我们得到了一个比以前更小的测试MSE,这往往是表明我们作出了正确选择的一个良好迹象。这里要再说一遍,因为测试集比较小,所以我们也无法肯定这个事实,尽管从MSE迹象来看是正面的。

时间: 2024-09-11 14:22:53

预测分析:R语言实现2.5 线性回归的问题的相关文章

R 语言 用途 与优势

(1)R 语言主要用来 对 数据进行统计分析 (2)R语言可以针对数据 进行绘图 其高级功能如下 R语言饼图图表R语言条形图(柱状图)R语言箱线图R语言柱状图R语言线型图R语言散点图R语言均值,中位数和模式R语言线性回归R语言多元回归R语言逻辑回归R语言正态分布R语言二项分布R语言泊松回归R语言协方差分析R语言时间序列分析R语言非线性最小二乘R语言决策树R语言随机森林R语言生存分析R语言卡方检验 绘图 R编程语言在数字分析与机器学习领域已经成为一款重要的工具.随着机器逐步成为愈发核心的数据生成器

预测分析:R语言实现2.3 多元线性回归

2.3 多元线性回归 只要有多于一个输入特征,并且要构建一个线性回归模型,我们就处于多元线性回归的领域了.具有k个输入特征的多元线性回归模型的一般方程如下所示: y=kxk+k-1xk-1+-+1x1+0+ 关于模型和误差分量的假设还是和简单线性回归的一样,记住,因为现在有了超过1个的输入特征,我们假设它们是相互独立的.我们在讲解多元线性回归时不会再使用模拟数据,而是要分析两套实际环境下的数据集. 2.3.1 预测CPU性能 我们的第一个实际环境下的数据集由研究者Dennis F. Kibler

预测分析:R语言实现2.2 简单线性回归

2.2 简单线性回归 在着眼于某些真实环境的数据集之前,尝试在人造数据上训练模型是非常有帮助的.在这样的人造场景里,我们事先就知道了实际输出函数是什么,而这对于真实环境的数据来说通常是不成立的.进行这种练习的好处是,它会让我们对自己的模型在所有假设都完全成立的理想场景下的工作情况有清楚的了解,而且它有助于对具备理想的线性拟合时发生的情况进行可视化.我们先模拟一个简单线性回归模型.后面的R语言代码片段会为下面这个只有1个输入特征的线性模型创建一个带有100条模拟观测数据的数据框: y=1.67x1

预测分析:R语言实现.

数据科学与工程技术丛书 预测分析:R语言实现 Mastering Predictive Analytics with R [希] 鲁伊·米格尔·福特(Rui Miguel Forte) 著 吴今朝 译 图书在版编目(CIP)数据 预测分析:R语言实现/(希)鲁伊·米格尔·福特(Rui Miguel Forte)著:吴今朝译. -北京:机械工业出版社,2016.10 (数据科学与工程技术丛书) 书名原文:Mastering Predictive Analytics with R ISBN 978-

预测分析:R语言实现导读

前 言 预测分析以及更一般意义上的数据科学当前正处于被追捧的热潮中,因为像垃圾邮件过滤.单词补全和推荐引擎这样的预测性技术已经被广泛运用于日常生活.这些技术现在不仅越来越被我们所熟悉,还赢得了我们的信任.在计算机处理能力和软件方面(例如R语言及其大量专用的扩展包)的发展产生了这样的局面:用户经过培训就可以使用这些工具,而无需具备统计学的高级学位,也不需要使用公司或大学实验室专用的硬件.技术的成熟度和基础软硬件的可用性结合起来,让很多该领域的从业者倍感兴奋,他们感到可以为自己的领域和业务设计一些能

预测分析:R语言实现1.1 模型

1.1 模型 模型是预测分析学的核心,因此,本书一开始会讨论各种模型及其形式.简而言之,模型是我们要理解和分析的状态.流程或系统的一种表现形式.我们创建模型的目的是根据它得出推论以及(在本书中对我们更为重要的一点)对世界进行预测.模型的格式和风格有很多种,我们在本书中会探讨这种多样性中的一部分.模型可以是和我们能够观察或测量的数量值相关的一些方程,也可以是一套规则.我们大部分人在学校都熟悉的一个简单模型是牛顿第二运动定律.该定律表明,一个物体受到的合力会使之在合力作用的方向加速,加速度和合力大小

预测分析:R语言实现1.3 预测建模的过程

1.3 预测建模的过程 通过观察模型的某些不同特征,我们已经对预测建模过程的各种步骤有所了解.在本节,我们要顺序讲解这些步骤,并理解每个步骤是如何对该任务的整体成功起作用的. 1.3.1 定义模型的目标 简而言之,每个项目的第一步是准确找出期望的结果是什么,因为这样有助于引导我们在项目的进展过程中做出正确的决定.在一个预测分析学项目里,这个问题包括深入研究我们要进行的预测的类型,以及从细节上去理解任务.例如,假定我们要尝试创建一个模型来预测某公司的雇员流失.我们首先需要准确定义这个任务,同时尽量

预测分析:R语言实现1.4 性能衡量指标

1.4 性能衡量指标 在上一节讨论预测建模过程的时候,我们讨论了利用训练集和测试集对被训练模型的性能进行评估的重要性.在本节,我们要审视在描述不同模型的预测精确度时常遇见的某些性能衡量指标.其实,根据问题的不同类型,会需要使用略有差异的性能评估方式.由于本书讨论的重点是有监督的模型,所以我们会审视如何评估回归模型和分类模型.对于分类模型,我们还会讨论二元分类任务这样一个非常重要且经常遇到各类问题的模型所采用的某些额外的衡量指标. 1.4.1 评估回归模型 在一个回归的场景里,让我们回顾一下,通过

预测分析:R语言实现2.7 正则化

2.7 正则化 变量选择是一个重要的过程,因为它试图通过去除与输出无关的变量,让模型解释更简单.训练更容易,并且没有虚假的关联.这是处理过拟合问题的一种可能的方法.总体而言,我们并不期望一个模型能完全拟合训练数据.实际上,过拟合问题通常意味着,如果过分拟合训练数据,对我们在未知数据上的预测模型精确度反而是有害的.在关于正则化(regularization)的这一节,我们要学习一种减少变量数以处理过拟合的替代方法.正则化实质上是在训练程序中引入刻意的偏误或约束条件,以此防止系数取值过大的一个过程.

预测分析:R语言实现2.6 特征选择

2.6 特征选择 我们的CPU模型只有6个特征.通常,我们遇到实际环境的数据集会具有来自多种不同观测数据的非常大量的特征.另外,我们会在不太确定哪些特征在影响输出变量方面比较重要的情况下,不得不采用大量的特征.除此之外,我们还有会遇到可能要分很多水平的分类变量,对它们我们只能创建大量的新指示变量,正如在第1章里所看到的那样.当面对的场景涉及大量特征时,我们经常会发现输出只依赖于它们的一个子集.给定k个输入特征,可以形成2k个不同的子集,因此即使对于中等数量的特征,子集的空间也会大到无法通过逐个子