🍉CSDN小墨&晓末:https://blog.csdn.net/jd1813346972
个人介绍: 研一|统计学|干货分享
擅长Python、Matlab、R等主流编程软件
累计十余项国家级比赛奖项,参与研究经费10w、40w级横向
该篇文章以实际例子形式,利用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
运行结果:
根据返回结果,回归系数的估计与检验: 回归系数的估计为 β 0 ^ = − 0.1040 \hat{\beta_0}=-0.1040 β0^=−0.1040, β 1 ^ = 0.9881 \hat{\beta_1}=0.9881 β1^=0.9881,相应的标准差 V a r ( β 0 ^ ) = 0.2120 Var(\hat{\beta_0})=0.2120 Var(β0^)=0.2120, V a r ( β 1 ^ ) = 0.0205 Var(\hat{\beta_1})=0.0205 Var(β1^)=0.0205。它们的p值不大,故均是显著的。
根据相关分析,相关系数 R 2 = 0.9931 R^2=0.9931 R2=0.9931,表明数据中99%可由回归方程来表述。
根据方程的检验: F分布的p值为 2 e − 16 2e^{-16} 2e−16, 因此方程是非常显著的, 这与 R 2 R^2 R2的结果一致,所以,回归系数和回归方程都通过了检验,所以Y对X的一元回归方程为:
y = − 0.1040 + 0.9881 x y=-0.1040+0.9881x y=−0.1040+0.9881x
4 残差分析
图形诊断: 用函数residuals( )计算回归方程的残差, 并画出关于残差的散点图。
运行程序:
res<-residuals(lm.reg)
plot(res)
res
运行结果:
从图中可以看出, 每一个样本点的残差之前都无太大的差异,因此可以认为无明显异常点,不需要对该模型进行进一步的优化处理。