本篇内容主要讲解“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语言怎么实现一元线性回归”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。