机器学习3:通过R做回归分析

单变量线性回归

#构造数据点
> y<-c(5,7,9,11,16,20)
> x<-c(1,2,3,4,7,9)

#绘制
>plot(x,y)

#计算回归直线方程的斜率和截距、残差
>lsfit(x,y)

#绘制回归线
>abline(lsfit(x,y))

用 y=1.845070*x+3.338028 回归方程求的y的值与实际值的偏差


lsfit(x,y)的值
回归线

通过lm方法做更详细的回归分析

#构造数据点
> y<-c(5,7,9,11,16,20)
> x<-c(1,2,3,4,7,9)
> lm(y~x)->xy
> summary(xy)
分析数据

多元线性回归

#构造数据点
> y<-c(5,7,9,11,16,20)
> x<-c(1,2,3,4,7,9)
> x2<-c(6,8,10,12,16,20)
> lm(y~x+x2)->xy2
> summary(xy2)
多元线性回归

得到回归方程 y= x+0.5*x2+1

非线性回归

无论是哪种非线性回归模型,最后都可以通过变量转化为线性模型,从而用最小二乘法进行回归分析

> x<-c(1,2,3,4,7,8,9)
> y<-100+10*exp(x/2)+rnorm(x)

#使用nls函数,应用最小二乘原理,实现非线性回归分析
> nlmod<-nls(y~Const+A*exp(B*x))
> summary(nlmod)

#绘制拟合图
> plot(x,y,main="nls(o)")
> curve(100+10*exp(e/2),col=4,add=TRUE)
> lines(x,predict(nlmod),col=2,type='b')
非线性回归

可以看出得到值与实际值拟合的很好

拟合图
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容