揭秘数据深度:多元线性回归在现实生活中的强大影响力
????引言
当谈到回归分析时,多元线性回归是一个非常强大且常用的工具。它允许我们探索多个自变量与一个因变量之间的关系,并用一条线性方程来表示这种关系。在本文中,我们将深入探讨多元线性回归的概念、应用和解释,以及如何使用统计工具来进行模型的建立和评估。
????什么是多元线性回归?
多元线性回归是一种统计方法,用于研究多个自变量与一个连续因变量之间的关系。它基于线性方程的概念,即假设自变量与因变量之间存在线性关系。多元线性回归的数学表达式如下:
Y=β0+β1X1+β2X2+…+βpXp+εY=β0+β1X1+β2X2+…+βpXp+ε
在这个方程中,YY 是因变量,X1,X2,…,XpX1,X2,…,Xp 是自变量,β0,β1,β2,…,βpβ0,β1,β2,…,βp 是回归系数,代表了每个自变量对因变量的影响,εε 是误差项。
????多元线性回归的应用
- 经济学
在经济学中,多元线性回归可以用来探索多个因素对某一经济指标(如GDP、通货膨胀率)的影响。例如,研究收入、失业率、教育水平等因素对某地区的经济增长的影响。
- 医学
医学研究中,可以利用多元线性回归来分析多个生活方式因素(如饮食、运动)与健康指标(如体重、血压)之间的关系,从而预测健康状况。
- 市场营销
在市场营销领域,可以使用多元线性回归来分析广告支出、促销活动等因素对销售额的影响,从而优化营销策略。
????构建多元线性回归模型的步骤
构建一个有效的多元线性回归模型需要以下步骤:
- 数据收集
收集包含因变量和多个自变量的数据集。确保数据质量良好,包括准确性和完整性。
- 特征选择
根据领域知识和统计方法,选择对因变量有显著影响的自变量。避免过多的自变量,以防止过拟合。
- 拟合模型
使用统计软件(如Python中的Scikit-learn、R等)来拟合多元线性回归模型,估计回归系数。
- 模型评估
通过检查回归系数的显著性、模型的拟合优度(如R平方值)等指标来评估模型的质量。
- 残差分析
分析模型的残差,检查是否满足回归假设,如误差项的独立性、常数方差等。
- 预测与解释
使用模型进行预测,并解释各个自变量对因变量的影响程度。可以通过回归系数的正负来判断自变量的影响方向。
????R-squared(R平方)
R-squared(R平方),也称为决定系数(coefficient of determination),是多元线性回归模型中常用的一个统计指标,用于衡量模型对因变量变异性的解释程度。它表示因变量的变异有多少可以被模型所解释。
R-squared的取值范围在0到1之间,其中:
- 当 R-squared 接近 1 时,表示模型能够很好地解释因变量的变异,即模型拟合度较高,所用的自变量能够很好地解释因变量的波动。
- 当 R-squared 接近 0 时,表示模型不能够很好地解释因变量的变异,模型可能没有捕捉到数据中的关键模式,或者模型不够适合数据。
R-squared 的计算公式如下:
import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression def r2_score(y_true,y_predict): return 1-((np.sum((y_true-y_predict)**2)/len(y_true))/np.var(y_true)) x = np.array([1.,2.,3.,4.,5.]) y = np.array([1.,3.,2.,3.,5.]) lin_reg = LinearRegression() lin_reg.fit(x.reshape(-1,1),y) y_predict = lin_reg.predict(x.reshape(-1,1)) r2_score(y,y_predict) lin_reg.score(x.reshape(-1,1),y)
运行结果如下
其中,SSresSSres 是残差平方和(residual sum of squares),表示模型预测值与实际观测值之间的差异的平方和;SStotSStot 是总平方和(total sum of squares),表示实际观测值与因变量均值之间的差异的平方和。
R-squared 的值越接近1,表示模型的拟合效果越好。然而,需要注意的是,R-squared并不是一定越高越好。一个高的R-squared值并不一定意味着模型具有预测能力,因为过拟合问题可能会导致模型在训练数据上表现良好,但在新数据上表现较差。
因此,在解释多元线性回归模型的拟合程度时,需要结合其他评估指标,如调整后的R-squared、残差分析等,来综合评估模型的性能。
????多元线性回归案例—波士顿房价
下面我们一步一步分析一下如何使用多元线性回归预测波士顿房价
首先我们需要导入需要的库,并进行实例化
from sklearn.datasets import load_boston boston.feature_names
之后我们可以查看一下相关的详细信息或者特征值
print(boston.DESCR) boston.feature_names
这里我们取其中一列
x = boston.data[:,5].reshape(-1,1) y = boston.target
这两行代码的作用是将波士顿房价数据集中的一个特定特征(第 5 列,例如可能是 “RM”,即每个住宅的平均房间数)作为输入特征 x,将房价作为目标变量 y。这样,您可以使用这些数据来训练机器学习模型,以尝试预测房价(目标变量 y)基于该特定特征(输入特征 x)
接下来我们需要进行一些必要的处理,用来剔除异常值
from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression import matplotlib.pyplot as plt x = x[y<50] y = y[y<50] plt.scatter(x,y)
运行结果如下
x = x[y < 50]: 这一行代码通过布尔索引筛选出目标变量 y 小于 50 的样本所对应的输入特征 x。换句话说,它从之前准备的输入特征 x 和目标变量 y 中,保留了那些房价小于 50 的数据点的特征值。这种操作可以用来剔除异常值或不符合问题背景的数据点。
y = y[y < 50]: 这一行代码对目标变量 y 也进行了相同的过滤操作,只保留了与之前筛选出的输入特征 x 对应的目标变量值。
接下来我们要进行切割数据集,分为训练集和测试集,之后我们进行拟合得到R^2
x_train,x_test,y_train,y_test = train_test_split(x,y,random_state=666) lin_reg = LinearRegression() lin_reg.fit(x_train,y_train) lin_reg.score(x_test,y_test)
运行结果如下
这里我们打印看看系数和截距
最后我们可以通过一条直线得到
plt.plot(x,lin_reg.predict(x),color='r') plt.scatter(x,y) plt.show()
运行结果如下
以上我们只考虑的一列,现在我们我们开始上真家伙
和上面类似
X = boston.data y1 = boston.target X = X[y1<50] y1 = y1[y1<50] X_train,X_test,y_train,y_test = train_test_split(X,y1,random_state=666) lin_reg1 = LinearRegression() lin_reg1.fit(X_train,y_train) lin_reg1.score(X_test,y_test)
这里我们再打印系数和截距看看
普通的线性回复只有一个特征值,所以只有一个系数,多元线性回归有多个系数
最后我们可以看看哪个特征对整体影响大写
boston.feature_names[np.argsort(lin_reg1.coef_)]
运行结果如下
在波士顿房价数据集中,“NOX” 是一个代表一氧化氮浓度的特征。这个特征描述了一个地区的空气质量,即一氧化氮的浓度。在数据集中,“NOX” 的值是以浓度为单位的数值,表示在该地区的环境中一氧化氮的浓度水平。
挑战与创造都是很痛苦的,但是很充实。
推荐阅读
-
揭秘数据深度:多元线性回归在现实生活中的强大影响力
-
【摩尔线程+Colossal-AI强强联手】MusaBert登上CLUE榜单TOP10:技术细节揭秘 - 技术实力:摩尔线程凭借"软硬兼备"的技术底蕴,让MusaBert得以从底层优化到顶层。其内置多功能GPU配备AI加速和并行计算模块,提供了全面的AI与科学计算支持,为AI推理和低资源条件下的大模型训练等场景带来了高效、经济且环保的算力。 - 算法层面亮点:依托Colossal-AI AI大模型开发系统,MusaBert在训练过程中展现出了卓越的并行性能与易用性,特别在预处理阶段对DataLoader进行了优化,适应低资源环境高效处理海量数据。同时,通过精细的建模优化、领域内数据增强以及Adan优化器等手段,挖掘和展示了预训练语言模型出色的语义理解潜力。基于MusaBert,摩尔线程自主研发的MusaSim通过对比学习方法微调,结合百万对标注数据,MusaSim在多个任务如语义相似度、意图识别和情绪分析中均表现出色。 - 数据资源丰富:MusaBert除了自家高质量语义相似数据外,还融合了悟道开源200GB数据、CLUE社区80GB数据,以及浪潮公司提供的1TB高质量数据,保证模型即便在较小规模下仍具备良好性能。 当前,MusaBert已成功应用于摩尔线程的智能客服与数字人项目,并广泛服务于语义相似度、情绪识别、阅读理解与声韵识别等领域。为了降低大模型开发和应用难度,MusaBert及其相关高质量模型代码已在Colossal-AI仓库开源,可快速训练优质中文BERT模型。同时,通过摩尔线程与潞晨科技的深度合作,仅需一张多功能GPU单卡便能高效训练MusaBert或更大规模的GPT2模型,显著降低预训练成本,进一步推动双方在低资源大模型训练领域的共享目标。 MusaBert荣登CLUE榜单TOP10,象征着摩尔线程与潞晨科技联合研发团队在中文预训练研究领域的领先地位。展望未来,双方将携手探索更大规模的自然语言模型研究,充分运用上游数据资源,产出更为强大的模型并开源。持续强化在摩尔线程多功能GPU上的大模型训练能力,特别是在消费级显卡等低资源环境下,致力于降低使用大模型训练的门槛与成本,推动人工智能更加普惠。而潞晨科技作为重要合作伙伴,将继续发挥关键作用。
-
包婷婷 (201550484)作业一 统计软件简介与数据操作-SPSS(Statistical Product and Service Solutions),"统计产品与服务解决方案"软件。最初软件全称为"(SolutionsStatistical Package for the Social Sciences),但是随着SPSS产品服务领域的扩大和服务深度的增加,SPSS公司已于2000年正式将英文全称更改为"统计产品与服务解决方案",标志着SPSS的战略方向正在做出重大调整。为IBM公司推出的一系列用于统计学分析运算、数据挖掘、预测分析和决策支持任务的软件产品及相关服务的总称SPSS,有Windows和Mac OS X等版本。 1984年SPSS总部首先推出了世界上第一个统计分析软件微机版本SPSS/PC+,开创了SPSS微机系列产品的开发方向,极大地扩充了它的应用范围,并使其能很快地应用于自然科学、技术科学、社会科学的各个领域。世界上许多有影响的报刊杂志纷纷就SPSS的自动统计绘图、数据的深入分析、使用方便、功能齐全等方面给予了高度的评价。 R统计软件介绍 R是一套完整的数据处理、计算和制图软件系统。其功能包括:数据存储和处理系统;数组运算工具(其向量、矩阵运算方面功能尤其强大);完整连贯的统计分析工具;优秀的统计制图功能;简便而强大的编程语言:可操纵数据的输入和输出,可实现分支、循环,用户可自定义功能。 与其说R是一种统计软件,还不如说R是一种数学计算的环境,因为R并不是仅仅提供若干统计程序、使用者只需指定数据库和若干参数便可进行一个统计分析。R的思想是:它可以提供一些集成的统计工具,但更大量的是它提供各种数学计算、统计计算的函数,从而使使用者能灵活机动的进行数据分析,甚至创造出符合需要的新的统计计算方法。 该语言的语法表面上类似 C,但在语义上是函数设计语言(functional programming language)的变种并且和Lisp 以及 APL有很强的兼容性。特别的是,它允许在"语言上计算"(computing on the language)。这使得它可以把表达式作为函数的输入参数,而这种做法对统计模拟和绘图非常有用。 R是一个免费的*软件,它有UNIX、LINUX、MacOS和WINDOWS版本,都是可以免费下载和使用的。在R主页那儿可以下载到R的安装程序、各种外挂程序和文档。在R的安装程序中只包含了8个基础模块,其他外在模块可以通过CRAN获得。 二、R语言 R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个*、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。 R作为一种统计分析软件,是集统计分析与图形显示于一体的。它可以运行于UNIX,Windows和Macintosh的操作系统上,而且嵌入了一个非常方便实用的帮助系统,相比于其他统计分析软件,R还有以下特点: 1.R是*软件。这意味着它是完全免费,开放源代码的。可以在它的网站及其镜像中下载任何有关的安装程序、源代码、程序包及其源代码、文档资料。标准的安装文件身自身就带有许多模块和内嵌统计函数,安装好后可以直接实现许多常用的统计功能。[2] 2.R是一种可编程的语言。作为一个开放的统计编程环境,语法通俗易懂,很容易学会和掌握语言的语法。而且学会之后,我们可以编制自己的函数来扩展现有的语言。这也就是为什么它的更新速度比一般统计软件,如,SPSS,SAS等快得多。大多数最新的统计方法和技术都可以在R中直接得到。[2] 3. 所有R的函数和数据集是保存在程序包里面的。只有当一个包被载入时,它的内容才可以被访问。一些常用、基本的程序包已经被收入了标准安装文件中,随着新的统计分析方法的出现,标准安装文件中所包含的程序包也随着版本的更新而不断变化。在另外版安装文件中,已经包含的程序包有:base一R的基础模块、mle一极大似然估计模块、ts一时间序列分析模块、mva一多元统计分析模块、survival一生存分析模块等等.[2] 4.R具有很强的互动性。除了图形输出是在另外的窗口处,它的输入输出窗口都是在同一个窗口进行的,输入语法中如果出现错误会马上在窗口口中得到提示,对以前输入过的命令有记忆功能,可以随时再现、编辑修改以满足用户的需要。输出的图形可以直接保存为JPG,BMP,PNG等图片格式,还可以直接保存为PDF文件。另外,和其他编程语言和数据库之间有很好的接口。[2] 5.如果加入R的帮助邮件列表一,每天都可能会收到几十份关于R的邮件资讯。可以和全球一流的统计计算方面的专家讨论各种问题,可以说是全世界最大、最前沿的统计学家思维的聚集地.[2] R是基于S语言的一个GNU项目,所以也可以当作S语言的一种实现,通常用S语言编写的代码都可以不作修改的在R环境下运行。 R的语法是来自Scheme。R的使用与S-PLUS有很多类似之处,这两种语言有一定的兼容性。S-PLUS的使用手册,只要稍加修改就可作为R的使用手册。所以有人说:R,是S-PLUS的一个“克隆”。 但是请不要忘了:R是免费的(R is free)。R语言源代码托管在github,具体地址可以看参考资料。[3] 。 R语言的下载可以通过CRAN的镜像来查找。 R语言有域名为.cn的下载地址,有六个,其中两个由Datagurn,由 中国科学技术大学提供的。R语言Windows版,其中由两个下载地点是Datagurn和 USTC提供的。 三、stata Stata 是一套提供其使用者数据分析、数据管理以及绘制专业图表的完整及整合性统计软件。它提供许许多多功能,包含线性混合模型、均衡重复反复及多项式普罗比模式。用Stata绘制的统计图形相当精美。 新版本的STATA采用最具亲和力的窗口接口,使用者自行建立程序时,软件能提供具有直接命令式的语法。Stata提供完整的使用手册,包含统计样本建立、解释、模型与语法、文献等超过一万余页的出版品。 除此之外,Stata软件可以透过网络实时更新每天的最新功能,更可以得知世界各地的使用者对于STATA公司提出的问题与解决之道。使用者也可以透过Stata. Journal获得许许多多的相关讯息以及书籍介绍等。另外一个获取庞大资源的管道就是Statalist,它是一个独立的listserver,每月交替提供使用者超过1000个讯息以及50个程序。 四、PYTHON