R软件一元线性回归分析(非常详细)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
R软件一元线性回归分析合金钢强度与碳含量的数据
序号碳含量
/%
合金钢强度
/107pa
1 0.10 42.0
2 0.11 43.0
3 0.12 45.0
4 0.13 45.0
5 0.14 45.0
6 0.15 47.5
7 0.16 49.0
8 0.17 53.0
9 0.18 50.0
10 0.20 55.0
11 0.21 55.0
12 0.23 60.0
这里取碳含量为x是普通变量,取合金钢强度为y是随机变量
使用R软件对以上数据绘出散点图
程序如下:
>
x=matrix(c(0.1,42,0.11,43,0.12,45,0.13,45,0.14,45,0.15,47.5,0.16,49,0.17,53,0.18,50,0.2,55,0.21, 55,0.23,60),nrow=12,ncol=2,byrow=T,dimnames=list(1:12,c("C","E")))
>outputcost=as.data.frame(x)
>plot(outputcost$C,outputcost$E)
0.100.120.140.16
0.180.200.22
4550556
outputcost$C
o u t p u t c o s t $E
很显然这些点基本上(但并不精确地)落在一条直线上。 下面在之前数据录入的基础上做回归分析(程序接前文,下同)
> lm.sol = lm(E~C,data = outputcost) >summary(lm.sol)
得到以下结果:
Call:
lm(formula = E ~ C, data = outputcost)
Residuals:
Min 1Q Median 3Q Max -2.00449 -0.63600 -0.02401 0.71297 2.32451
Coefficients:
Estimate Std. Error t value Pr(>|t|) (Intercept) 28.083 1.567 17.92 6.27e-09 *** C 132.899 9.606 13.84 7.59e-08 *** ---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.309 on 10 degrees of freedom
Multiple R-squared: 0.9503, Adjusted R-squared: 0.9454 F-statistic: 191.4 on 1 and 10 DF, p-value: 7.585e-08
由计算结果分析:
常数项0∧β=28.083,变量(即碳含量)的系数1∧
β=132.899 得到回归方程:∧
y =28.083+132.899x
由于回归模型建立使用的是最小二乘法 ,而最小二乘法只是一种单纯的数学方法 ,存在着一定的缺陷 ,即不论变量间有无相关关系或有无显著线性相关关系 ,用最小二乘法都可以找到一条直线去拟合变量间关系。所以回归模型建立之后 ,还要对其进行显著性检验 :
在上面的结果中sd(0∧
β)=1.567,sd(1∧
β)=9.606。而对应于两个系数的P 值6.27e-09和7.59e-08,故是非常显著的。
关于方程的检验,残差的标准差∧
σ=1.309。相关系数的平方R 2 = 0.9503。关于F 分布的P 值为7.585e-08,也是非常显著的。
我们将得到的直线方程画在散点图上,程序如下: > abline(lm.sol)
得到散点图及相应的回归直线:
0.100.120.140.16
0.180.200.22
45505560
outputcost$C
o u t p u t c o s t $
E
下面分析残差:
在R 软件中,可用函数residuals ()计算回归方程的残差。程序如下:
> y.res=residuals(lm.sol); plot(y.res) 得到残差图
246
81012
-2-101
2
Index
y .r e s
从残差图可以看出,第8个点有些反常,这样我们用程序将第8个点的残差标出,程序如下:
>text(8,y.res[8],labels=8,adj=1.2)
246
81012
-2-101
2Index
y .r e s
8
这个点可能有问题,下面做简单处理,去掉该样本点,编程如下:>i=1:12;
outputcost2=as.data.frame(x[i!=8,])
lm2=lm(E~C,data=outputcost2)
summary(lm2)
结果输出如下:
Call:
lm(formula = E ~ C, data = outputcost2)
Residuals:
Min 1Q Median 3Q Max
-1.7567 -0.5067 -0.1308 0.6821 1.6787
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 28.124 1.335 21.06 5.75e-09 ***
C 131.293 8.217 15.98 6.51e-08 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.115 on 9 degrees of freedom
Multiple R-squared: 0.966, Adjusted R-squared: 0.9622
F-statistic: 255.3 on 1 and 9 DF, p-value: 6.506e-08
由结果分析,去掉第8个点之后,回归方程系数变化不大,R2 相关系数有所提高,并且p-值变小了,这说明样本点8可以去掉。所得新模型较为理想。
总结程序如下:
>
x2=matrix(c(0.1,42,0.11,43,0.12,45,0.13,45,0.14,45,0.15,47.5,0.16,49 ,0.18,50,0.2,55,0.21,55,0.2 3,60),nrow=11,ncol=2,byrow=T,dimnames=list(1:11,c("C","E")))
>outputcost=as.data.frame(x2)
>plot(outputcost$C,outputcost$E)
>lm.sol = lm(E~C,data = outputcost)