用R进行一元线性回归分析建模

原创 2016年05月31日 15:59:34

概念:一元线性回归预测是指成对的两个变量数据的散点图呈现出直线趋势时,采用最小二乘法,找到两者之间的经验公式,即一元线性回归预测模型。根据自变量的变化,来估计因变量变化的预测方法。


我用的是R内置数据集mtcars,要预测的是当每加仑汽油能跑23英里(mpg=23)的车有多重(wt?)。下面贴一下代码,代码较简单,但重要的是这个流程!

1.

attach(mtcars);plot(mpg,wt);fm<-lm(wt~mpg)
summary(fm)
abline(fm)#加拟合曲线
coef(fm)#查截距与斜率(经济:回归系数)
resid(fm)#查残差

图是这样的

再看下这四张图

par(mfrow=c(2,2));plot(fm)

依次是预测残差图(查看是否线性),QQ正态检验图(查看正态性。应近似为45度直线),位置尺度诊断图(查看同方差性。水平线周围应随机分布),Cook距离/残差与杠杆图(查看离群点,高杠杆点)

2.检验模型

先对斜率/回归系数检验

n<-length(mpg);res<-resid(fm);b<-coef(fm)[2];s<-sqrt(sum(res^2)/(n-2))
SE<-s/sqrt(sum((mpg-mean(mpg))^2));t<-(b-(-1))/SE;pt(t,n-2,lower.tail = FALSE)
结果是9.763059e-33,远小于0.05,反对原假设,支持备择假设,所以斜率不是-1。但我总感觉哪不对= =


再对截距检验

bo<-coef(fm)[1];SEbo<-s*sqrt(sum(mpg^2)/(n*sum((mpg-mean(mpg))^2)));t<-(bo-7)/SEbo;pt(t,n-2)
结果是0.002165899,也小于0.05,同上

3.预测

predict(fm,data.frame(mpg=23))
结果是2.80743t

还可以看一下该模型95%的置信区间(95%置信区间就是说某个统计量落在这个区间里的可能性是95%)

sx<-sort(mpg);pred<-predict(fm,data.frame(mpg=sx),interval = 'confidence');pred
        fit       lwr      upr
1  4.582291 4.2403494 4.924232
2  4.582291 4.2403494 4.924232
3  4.173791 3.9024329 4.445149
fit是拟合值也可以单独看fitted(fm),lwr是置信区间下限,upr是置信区间上限,下面画出来看一下

par(mfrow=c(1,1));plot(mpg,wt);abline(fm);lines(sx,pred[,2],lty=3);lines(sx,pred[,3],lty=3)

我感觉模型是没有问题的,但这数据不适合用一元线性回归模型。
最后别忘了解绑!

detach(mtcars)


版权声明:本文为博主原创文章,转载请加上原文地址,谢谢! 举报

相关文章推荐

Python实现机器学习一(实现一元线性回归)

回归是统计学中最有力的工具之一。机器学习监督学习算法分为分类算法和回归算法两种,其实就是根据类别标签分布类型为离散型、连续性而定义的。顾名思义,分类算法用于离散型分布预测,如前面讲过的KNN、决策树、...

R假设检验与一元线性回归分析

假设检验   相关系数 cor(x,y) cor.test(x,y)  相关系数越接近1,x与y越相关 > data("iris") > plot(iris) > i1=iris[which(...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

Matlab中进行一元线性回归分析的方法

Matlab中实际上有多个函数可以实现回归分析的功能,如regress,polyfit,lsqcurvefit等。这里简单总结一下polyfit函数的用法: polyfit函数基于最小二乘法,使...

R语言简单(一元)线性回归分析

R语言简单(一元)线性回归分析简单举一个例子某商业银行2002年主要业务数据 分行编号 不良贷款(亿元) 各项贷款余额(亿元) 1 0.9 67.3 2 1.1 11...

一元线性回归应用--分析评估需求的开发时间

去年的一段时间,工作非常忙碌,项目的需求一个接着一个,简直让人头皮发麻啊。当然,每次新需求出来上头总需要给一个合理的排期,以便按时按质完成。今年相对去年来说没那么忙碌,于是抽空写了这篇博客,也算是一个...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)