R语言怎么实现一元线性回归
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,本篇内容主要讲解"R语言怎么实现一元线性回归",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"R语言怎么实现一元线性回归"吧!⑴简单线性回归首先可以考虑最简单
千家信息网最后更新 2025年12月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安全错误
数据库的锁怎样保障安全
中国台湾手机软件开发服务介绍
网络安全服务渗透测试
湖北武汉软件开发有限公司
武汉哪家软件开发公司好
数据库连接技术图解
关于网络安全的辩论题
软件开发在哪里可以买
网络安全rtu
数据库前沿技术是什么
桂林 软件开发有限公司
北京理工网络安全考博
服务器系统2012镜像安装
数据库系统概念试题库及答案
局域网哪个服务器好
大学城软件开发与运营论文
csgo你不能在安全服务器商
感觉网络安全加固有点过头了
端游用什么数据库
企业网络安全怎么保证
网络安全中sws是什么协议
vba从数据库批量导出数据
802.1无线网络技术
局域网禁用服务器
湖南本地软件开发预算
手机打电话为啥无法连接服务器
分布式数据库的体系结构特点
软件开发的资质办理
常用软件开发值得推荐
新药研发情报数据库
郴州市学计算机软件开发培训