R语言实现线性回归的示例
在统计学中,线性回归(LinearRegression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。
简单对来说就是用来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。
回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。
一元线性回归分析法的数学方程:
y=ax+b
- y是因变量的值。
- x是自变量的值。
- a与b为一元线性回归方程的参数。
接下来我们可以创建一个人体身高与体重的预测模型:
1、收集样本数据:身高与体重。
2、使用lm()函数来创建一个关系模型。
3、从创建的模型中找到系数,并创建数学方程式。
4、获取关系模型的概要,了解平均误差即残差(估计值与真实值之差)。
5、使用predict()函数来预测人的体重。
准备数据
以下是人的身高与体重数据:
#身高,单位cm 151,174,138,186,128,136,179,163,152,131 #体重,单位kg 63,81,56,91,47,57,76,72,62,48
lm()函数
在R中,你可以通过函数lm()进行线性回归。
lm()函数用于创建自变量与因变量之间的关系模型。
lm()函数语法格式如下:
lm(formula,data)
参数说明:
- formula-一个符号公式,表示x和y之间的关系。
- data-应用数据。
创建关系模型,并获取系数:
#样本数据 x<-c(151,174,138,186,128,136,179,163,152,131) y<-c(63,81,56,91,47,57,76,72,62,48) #提交给lm()函数 relation<-lm(y~x) print(relation)
执行以上代码输出结果为:
Call: lm(formula=y~x) Coefficients: (Intercept)x -38.45510.6746
使用summary()函数获取关系模型的概要:
x<-c(151,174,138,186,128,136,179,163,152,131) y<-c(63,81,56,91,47,57,76,72,62,48) #提交给lm()函数 relation<-lm(y~x) print(summary(relation))
执行以上代码输出结果为:
Call: lm(formula=y~x) Residuals: Min1QMedian3QMax -6.3002-1.66290.04121.89443.9775 Coefficients: EstimateStd.ErrortvaluePr(>|t|) (Intercept)-38.455098.04901-4.7780.00139** x0.674610.0519112.9971.16e-06*** --- Signif.codes:0‘***'0.001‘**'0.01‘*'0.05‘.'0.1‘'1 Residualstandarderror:3.253on8degreesoffreedom MultipleR-squared:0.9548,AdjustedR-squared:0.9491 F-statistic:168.9on1and8DF,p-value:1.164e-06
predict()函数
predict()函数用于根据我们建立的模型来预测数值。
predict()函数语法格式如下:
predict(object,newdata)
参数说明:
- object-lm()函数创建的公式。
- newdata-要预测的值。
以下实例我们预测一个新的体重值:
#样本数据 x<-c(151,174,138,186,128,136,179,163,152,131) y<-c(63,81,56,91,47,57,76,72,62,48) #提交给lm()函数 relation<-lm(y~x) #判断身高为170cm的体重 a<-data.frame(x=170) result<- predict(relation,a) print(result)
执行以上代码输出结果为:
1 76.22869
我们也可以生存一个图表:
#样本数据 x<-c(151,174,138,186,128,136,179,163,152,131) y<-c(63,81,56,91,47,57,76,72,62,48) relation<-lm(y~x) #生存png图片 png(file="linearregression.png") #生成图表 plot(y,x,col="blue",main="Height&WeightRegression", abline(lm(x~y)),cex=1.3,pch=16,xlab="WeightinKg",ylab="Heightincm")
图表如下:
以上就是R语言实现线性回归的示例的详细内容,更多关于R语言线性回归的资料请关注毛票票其它相关文章!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。