R语言怎么实现一元线性回归
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容主要讲解"R语言怎么实现一元线性回归",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"R语言怎么实现一元线性回归"吧!⑴简单线性回归首先可以考虑最简单
千家信息网最后更新 2026年11月01日R语言怎么实现一元线性回归首先可以考虑最简单的情况,也即只有一个自变量和一个因变量。我们使用 R 自带的数据集 women 为例进行分析, women 数据集中包含了 15 个年龄 30~39 岁的女性身高和体重信息,如下所示: 接下来我们可以分别列出因变量观察值、拟合值、残差: 对于回归模型我们可以进行作图展示: 作图结果如下所示: 如下图所示:第一幅图是残差随拟合值的变化情况,可以检验线性假设,理论上来说如果线性模型十分吻合,残差应该是均匀分布的(也即残差与拟合值是无关的,红线近似水平),而图中的情况暗示很可能存在更高次项的相关。第二幅图是检验残差正态性假设的 Q-Q 图,根据正态性假设,当预测变量值固定时,因变量围绕拟合值(预测值)呈正态分布,那么残差应该服从均值为 0 的正态分布(即图中的点尽可能落在虚线上)。第三幅图是标准化残差绝对值的平方根随拟合值的变化情况,用来检验同方差性假设,如果满足假设,也即不同自变量水平下因变量方差是一样的,那么图中数据点应该是均匀分布的(红线近似水平)。第四幅图用来筛选离群点(包括因变量和自变量),一个点代表一个样品(对象),纵轴为标准化的残差,绝对值越大说明其因变量值与拟合值差别越大,横轴为杠杆值,杠杆值越大说明在自变量中是一个离群点。 可以看出,在 ggplot2 里面通过 geom_smooth() 函数可以很方便的添加数据的回归线。在构造的多项式里, x 与 x^2 并不一定是独立的,这有可能会产生附加问题,另一种方法是使用 poly() 函数产生正交多项式,如下所示:
本篇内容主要讲解"R语言怎么实现一元线性回归",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"R语言怎么实现一元线性回归"吧!
⑴简单线性回归

现实生活中身高是更容易观测的一个量,现在我们基于这些数据建模,通过身高来预测体重,如下所示:
fit=lm(weight~height, data=women)summary(fit)
在上面summary的结果中,Residuals为响应变量的残差情况;Coefficients为系数也即模型参数及其检验结果,其中Intercept为截距;最后一部分为复相关系数的平方也即R2的值及其检验结果。

library(ggplot2)ggplot(women, mapping=aes(x=height, y=weight)) + geom_point(size=2) + geom_smooth(method=lm, se=TRUE, fullrange=TRUE, level=0.95) + theme(axis.title=element_text(size=15, color="black", face="bold", vjust=0.5, hjust=0.5))
回归模型构建后,必须要做模型诊断,来对其中的基础假设(正态性、独立性、线性、同方差性)进行检验,从而增强对其预测未知数据的信心。回归诊断最简单的一个方法就是将模型各种情况进行可视化,如下所示:
par(mfrow=c(2,2))plot(fit)
⑵多项式回归
虽然各种检验结果均是显著的,但是上面的结果并不是很完美,因为我们从数据点的分布很明显看出weight关于height不完全是线性关系,这时候我们可以添加一个二次项来进行多项式回归:
fit2=lm(weight~height+I(height^2), data=women)summary(fit2)
这时的回归方程为weight=0.083*height2-7.35*height+261.88。同样我们可以作图展示:
ggplot(women, aes(x=height, y=weight)) + geom_point(size=2) + geom_smooth(method=lm, se=TRUE, formula=y~x+I(x^2)) + theme(axis.title=element_text(size=15, color="black", face="bold", vjust=0.5, hjust=0.5))
library(ggplot2)N=300x=1:N+rnorm(N, 10, 60)y=1:N+rnorm(N, 10, 60)colour=sample(c('red','blue'), N, replace=TRUE)df=data.frame(x=x, y=y, colour=colour)ggplot(df, aes(x=x,y=y, colour=colour)) + geom_smooth( method='lm', formula=y~poly(x,3), level=0.95) + geom_point(alpha=0.9)ggplot(df, aes(x=x,y=y, colour=colour)) + geom_smooth( method='lm', formula=y~x+I(x^2)+I(x^3), level=0.95) + geom_point(alpha=0.9)一般情况下,上面两种作图方法是等价的,最终作图结果如下所示:
到此,相信大家对"R语言怎么实现一元线性回归"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
残差
线性
情况
数据
结果
检验
因变量
模型
多项式
方法
自变量
语言
方差
水平
身高
图中
体重
内容
函数
杠杆
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咖啡网
互联网科技
科技互联网龙头
易互联网科技有限公司
赫美联合互联网科技
撒么互联网科技公司
互联网科技宣传片
左右互联网络科技
欧洲十大科技互联网公司
广州恒生互联网科技有限
昭通互联网科技选哪家
允成互联网科技有限公司融资
迪庆互联网科技招生
科技大学互联网
小米互联网科技园入驻
雨阳互联网卡科技有限公司
互联网风格科技公司名称
上海同邻互联网科技有限公司规模
容联科技互联网电商
银川新华互联网科技学校原画
关于新基建和互联网科技
互联网科技开发公司
互联网医疗科技
上海挚品互联网科技
碳银互联网科技有限公司
互联网 科技服务平台
互联网金融监管科技
武汉健翔互联网络科技有限公司
华中科技大学互联网的牛人
宇信科技在杭州互联网排第几