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

简介:


线 性 回 归


我们从第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在一个正弦函数的内部。从这些示例要吸取的重要教训是,有些情况下,为了让数据符合线性模型,我们可以对输入特征进行变换,但是,需要小心从事,让回归系数始终是变换后新特征的线性权值。

相关文章
|
2月前
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。
|
15天前
|
数据挖掘 C语言 C++
R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。
【10月更文挑战第21天】时间序列分析是一种重要的数据分析方法,广泛应用于经济学、金融学、气象学、生态学等领域。R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。本文将介绍使用R语言进行时间序列分析的基本概念、方法和实例,帮助读者掌握R语言在时间序列分析中的应用。
39 3
|
6月前
|
数据可视化 数据挖掘 API
【R语言实战】聚类分析及可视化
【R语言实战】聚类分析及可视化
|
6月前
|
机器学习/深度学习 数据可视化
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为2
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为
|
2月前
|
数据采集 数据可视化 数据挖掘
R语言在金融数据分析中的深度应用:探索数据背后的市场智慧
【9月更文挑战第1天】R语言在金融数据分析中展现出了强大的功能和广泛的应用前景。通过丰富的数据处理函数、强大的统计分析功能和优秀的可视化效果,R语言能够帮助金融机构深入挖掘数据价值,洞察市场动态。未来,随着金融数据的不断积累和技术的不断进步,R语言在金融数据分析中的应用将更加广泛和深入。
|
3月前
|
机器学习/深度学习 数据采集 数据可视化
R语言在数据科学中的应用实例:探索与预测分析
【8月更文挑战第31天】通过上述实例,我们展示了R语言在数据科学中的强大应用。从数据准备、探索、预处理到建模与预测,R语言提供了完整的解决方案和丰富的工具集。当然,数据科学远不止于此,随着技术的不断发展和业务需求的不断变化,我们需要不断学习和探索新的方法和工具,以更好地应对挑战,挖掘数据的潜在价值。 未来,随着大数据和人工智能技术的普及,R语言在数据科学领域的应用将更加广泛和深入。我们期待看到更多创新的应用实例,为各行各业的发展注入新的动力。
|
3月前
|
数据采集 存储 数据可视化
R语言时间序列分析:处理与建模时间序列数据的深度探索
【8月更文挑战第31天】R语言作为一款功能强大的数据分析工具,为处理时间序列数据提供了丰富的函数和包。从数据读取、预处理、建模到可视化,R语言都提供了灵活且强大的解决方案。然而,时间序列数据的处理和分析是一个复杂的过程,需要结合具体的应用场景和需求来选择合适的方法和模型。希望本文能为读者在R语言中进行时间序列分析提供一些有益的参考和启示。
|
3月前
|
资源调度 数据挖掘
R语言回归分析:线性回归模型的构建与评估
【8月更文挑战第31天】线性回归模型是统计分析中一种重要且实用的工具,能够帮助我们理解和预测自变量与因变量之间的线性关系。在R语言中,我们可以轻松地构建和评估线性回归模型,从而对数据背后的关系进行深入的探索和分析。
|
3月前
|
并行计算 IDE 数据挖掘
R语言入门:如何安装与配置环境
【8月更文挑战第27天】通过本文的指南,你应该能够顺利安装并配置R语言环境,以便进行数据分析和编程任务。R语言以其强大的功能和灵活的扩展性,成为数据分析领域的重要工具。希望本文能够帮助你入门R语言,并激发你进一步学习和探索的兴趣。随着经验的积累,你将能够充分利用R语言的优势,提高工作效率和数据处理能力。
|
3月前
|
机器学习/深度学习 数据采集
R语言逻辑回归、GAM、LDA、KNN、PCA主成分分类分析预测房价及交叉验证
上述介绍仅为简要概述,每个模型在实施时都需要仔细调整与优化。为了实现高度精确的预测,模型选择与调参是至关重要的步骤,并且交叉验证是提升模型稳健性的有效途径。在真实世界的房价预测问题中,可能还需要结合地域经济、市场趋势等宏观因素进行综合分析。
67 3
下一篇
无影云桌面