该篇文章以实际例子形式,利用R语言完成一元线性回归分析相关代码及结果分析,其中包括变量间散点图;回归分析;残差分析。
1 题目背景
在动物学研究中,有时需要找出某种动物的体积与重量的关系.因为动物的重要相对而言容易测量,而测量体积比较困难,因此,人们希望用动物的重要预测其体积.下面是18只某种动物的体积与重量数据,在这里,动物重量被看作自变量,用x表示,单位为kg,动物体积则作为因变量,用y表示,单位为dm3,18组数据列于表中.
18只某种动物的重量x与体积y数据:
在显著性水平α=0.05下对其进行方差分析,可以得到什么结果?
2. 原始序列散点图
首先,建立数据集, 并画出散点图: 考查数据点的分布趋势, 看是否呈直线条状分布。
运行程序:
a<-c(10.4,10.5,11.9,12.1,13.8,15,15.1,15.1,15.1,15.7,15.8,16,16.5,16.7,17.1,17.1,17.8,18.4) b<-c(10.2,10.4,11.6,11.9,13.5,14.5,14.8,15.1,14.5,15.7,15.2,15.8,15.9,16.6,16.7,16.7,17.6,18.3) A<-data.frame(a,b) plot(A$a,A$b)#画图,考察数据点的分布趋势,看数据是否在一条直线上
运行结果:
通过上图可以看出,动物的体重与体积大致在一条直线上,即可以认为重量a与体积b呈线性关系。
3 回归分析
进行回归分析,并在散点图上显示回归直线。
运行程序:
lm.reg<-lm(b~a) #使用线性回归模型y=β0+β1x summary(lm.reg) #提取模型计算结果 abline(lm.reg) #添加回归直线,进行回归分析,运行结果如图2
运行结果:
4 残差分析
图形诊断: 用函数residuals( )计算回归方程的残差, 并画出关于残差的散点图。
运行程序:
res<-residuals(lm.reg) plot(res) res
运行结果:
从图中可以看出, 每一个样本点的残差之前都无太大的差异,因此可以认为无明显异常点,不需要对该模型进行进一步的优化处理