京公网安备 11010802034615号
经营许可证编号:京B2-20210330
数据分析中常见的七种回归分析以及R语言实现(一)--简单线性模型
刚刚学习数据分析的人应该知道回归分析是作为预测用的一种模型,它主要是通过函数来表达因变量(连续值)和自变量变量的关系,通俗的来说就是Y和X的关系通过公式表达出来;这样能够表明因变量和自变量之间的显著关系并且是函数关系,还可以表明多个自变量对一个因变量的影响强度,回归分析主要运用在预测分析上,虽然说是预测,但是有时候我们的回归模型只是被用来解释现场,并不需要去预测,例如,科学家猜想人的体重和某种特定的食物消耗有关;
1、线性回归
在古典的线性回归模型中是要满足几个假定:
A假设自变量和因变量存在线性关系,具体的说就是假设因变量Y,是一些自变量X1,X2,..,XN的一个线性函数它的表达式
B零均值假定,就是假定回归线通过X与Y的条件均值组成的点;
C同方差假定,就是各个随机误差项的离散程度是相同的,也就是说对于每个X,随机项相对均值的分散程度是相同
D无自相关,就是随机扰动项之间是互不相关的,互补影响,也就是说随机扰动项是完全随机分布的
E因变量和扰动项是完全不相关的假定;
F扰动项正态性假定,就是假定扰动项服从均值为零,方差为司格马的正太分布
其中回归模型的表达式写法如下
其中e是随机扰动项,也有写法是这样,Y=a+bX+e,其中a是截距项,b是斜率,e是随机扰动项;
参数最优---最小二乘法
竟然存在参数,那么如何获取到最佳的参数呢,简单线性模型使用的普通最小二乘法,这里就不写明写详细步骤了,这个可以利用搜索引擎查的得到,我就说说它的主要思想就好,因为我们在拟合过程的时候我们要使回归线尽量靠近所有的样本点,这时候我们就要使它们残差尽量小,因为残差是有负有正,所以我们就采用平方去处理,采用平方和最小原则,通过求导,使其导数为零,求解得到最优的参数,这样就能够使回归模型应该使所有观察值的残差平方和最小;大致就是这样,文字描述有些吃力,有什么问题可以评论一起交流
这里我使用的我最近读和做笔记的R语言核心技术手册的包nutshell中的team.batting.00to08数据,这个数据是2000年到2008年棒球队的数据,我们想要看看棒球队的得分和每个变量的关系;
载入数据
library(nutshell)
data("team.batting.00to08")
查看数据的前六行
这就说明了数据已经被我们完全的载入进来了,也知道有多少个变量以及变量的名字,这时候我们要大体的知道一下大体的概括,这时候使用的summary()函数
summary(team.batting.00to08)
在棒球中RUNS就是球队的得分,时间是从2000年到2008年等
这时候想看看各个变量之间相关性如何
,粗劣的使用cor函数得到它们之间的相关系数矩阵,因为数据框存在字符,所以我们要提出第一第二列
cor(team.batting.00to08[,3:10])
大致可以判断的出来得分和跑动距离和全垒打(homerus)相关系数较大;
这里我们经常使用R语言里面的Lm函数去拟合以上变量,然后得到模型,然后使用summary()函数打印更多关于模型的信息
runs.lm <- lm(runs~singles+doubles+triples+homeruns+walks+hitbypitch+sacrificeflies+stolenbases+caughtstealing,data=team.batting.00to08)
summary(runs.lm)
从上图结果可以知道,R的可决系数是0.9114,模型F值较大,通过显著性检验,其中变量caughtstealing和stolenbases和runs不显著的关系,这个需要剔除;
我们可以手动剔除也可以使用step函数自动剔除
runs.lm_a <- lm(runs~singles+doubles+triples+homeruns+walks+hitbypitch+sacrificeflies,data=team.batting.00to08)
runs.lm_b<-step(runs.lm)
这个就讲到这里,这个下面几篇文章会讲到用什么方法得到这样的结果
参考文献代码
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
很多数据分析师画过趋势图、做过业绩预测,但当被问到“这个月销售额增长20%,到底是长期趋势自然增长,还是促销活动的短期 ...
2026-08-21在数据分析与数据可视化工作中,直方图是展示数据分布特征、离散程度、集中区间的核心图表,能够直观呈现数值数据的频次分布规律 ...
2026-08-20在数据分析领域有一句核心准则:垃圾数据进,垃圾数据出。数据清洗是数据分析、数据建模、数据可视化之前的必经前置工序,也是保 ...
2026-08-20 很多数据分析师做过按月份的销售额趋势图,画过按天的流量折线图,但当被问到“时间序列和普通数据有什么本质区别”“季节性 ...
2026-08-20在Python数据分析与数据清洗工作中,Pandas是最核心的数据处理库,DataFrame是结构化数据的标准存储格式。在实时数据采集、循环 ...
2026-08-19在零售行业大数据分析与精细化运营领域,纸尿裤旁摆放啤酒是最经典、最具代表性的商业案例。两种看似毫无关联的商品,一个是婴幼 ...
2026-08-19 很多数据分析师能熟练地计算指标、搭建标签体系,但当被问到“画像到底在解决什么问题”“画像和标签是什么关系”“画像如何 ...
2026-08-19在数据分析、业务监控、质量检测与风险管控工作中,数据波动性是衡量数据稳定性、业务健康度、结果可信度的核心依据。数据波动代 ...
2026-08-18很多分析师在设计标签时思路清晰,但真到落地环节却面临“数据在手,不知如何转化为可用标签”的困境:或因加工方式选择不当导致 ...
2026-08-18在数据分析、业务评价、产品评级、用户分层与综合决策场景中,单一指标往往无法全面、客观地评价事物整体水平。现实中的评价对象 ...
2026-08-18在数理统计、假设检验、数据分析与机器学习领域中,卡方分布(χ²分布)是继正态分布、t分布之后最重要的连续型概率分布之一。 ...
2026-08-17在Python数据清洗、文本校验、账号密码规则校验、脏数据过滤、字符串规整化处理中,正则表达式是最高效、最常用的文本匹配工具。 ...
2026-08-17 很多分析师每天和数据打交道,但当被问到“标签是什么”“标签和指标有什么区别”“标签体系如何设计”时,却常常答不上来。 ...
2026-08-17手游行业具备用户迭代快、竞争激烈、用户粘性易流失的典型特征。随着新游持续上线、玩家审美升级、玩法疲劳等问题出现,存量用户 ...
2026-08-14在数字化产品运营、商业数据分析、业务增长管理中,零散的指标统计无法支撑系统性的业务决策。单一的点击率、转化率、销量数据只 ...
2026-08-14 很多数据分析师每天都在写SQL,但当被问到“数据查询语言(DQL)的本质是什么”“SELECT语句中各子句的书写顺序与实际执行顺 ...
2026-08-14在数据库数据分析、数据清洗、报表统计与业务查询场景中,日期时间是最高频、最核心的基础字段。数据库中存储的日期格式多样,包 ...
2026-08-13在数据统计分析与数据清洗工作中,箱线图是一种简洁高效、客观性强的数据可视化图表,能够直观呈现数据集的分布特征、离散程度和 ...
2026-08-13 很多数据分析师写过无数个SELECT查询,但当被问到“如何新建一张表来固化中间数据”“创建视图和创建物理表有什么区别”“视 ...
2026-08-13在自动化办公、数据采集、定时统计、日志清理、系统监控等场景中,程序往往需要按照固定时间间隔重复执行指定任务,这种运行机制 ...
2026-08-12