一元线性回归分析与建模

一元线性回归分析

一元回归分析的基本概念
回归模型的建立一般包括:
(1)通过某事物现,转化为具体问题;
(2)确定指标变量,收集整理数据,并构建模型进行参数估计;
(3)模型的检验,当模型检验不通过时,需要重新修改模型;
(4)模型的应用,得出结论,运行给出决策等。

基本概念
通常我们要先收集与研究相关的数据的一组或者多组样本,为直观观察数据的分布规律,我们可以将收集到每组数据绘制二维数据散点图。

一元回归分析的参数估计
一元回归模型的参数估计一般采用极大似然法与最小二乘法,其中最常用的是最小二乘法估计。

相关系数的检验

实际例子:


x  c(3.4,1.8,4.6,2.3,3.1,5.5,0.7,
       3.0,2.6,4.3,2.1,1.1,6.1,4.8,3.8)
y  c(26.2,17.8,31.3,23.1,27.5,36.0,14.1,
       22.3,19.6,31.3,24.0,17.3,43.2,36.4,26.1)
plot(x,y)
abline(lm)

lm lm(y~x)

summary(lm)

一元线性回归分析与建模

一元线性回归分析与建模
summary()函数用于结果的展示,其中包括残差的最大值最小值、中位数、回归系数、以及回归系数估计值、显著性检验的值,它包含的结果非常多。其中intercept为截距,也就是回归常数项的估计值,Estimate是回归系数的估计值,std是标准差,后面的为T检验的值与检验P值与显著性结果。判断显著性的方法除了P值外,还可以使用方差分析来判断。
拟合模型
一元线性回归分析与建模

方差分析


anova(lm)

一元线性回归分析与建模
从方差分析的结果来看,自由度为13,sum-sq为回归平方和为SSR=841.77,与残差平方和SSE=69.75,从P值得结果可知,回归方程是显著的。

计算相关系数与显著性检验
回归系数的检验方式有很多,比如kendall检验,spearman检验等,在这里采用常用的pearson相关系数检验。


cor(x,y,method = "pearson")

cor.test(x,y,alternative = "two.sided",
         method = "pearson",conf.level = 0.95)

一元线性回归分析与建模
最后得到相关系数为:0.9609777,95%置信区间为[0.8837722,0.9872459],其中P值小于0.05,则可以说明两者具有高度显著的线性相关。

残差分析


e  resid(lm)
round(e,3)

plot(x,e)

一元线性回归分析与建模

回归系数的置信区间


confint(lm)

一元线性回归分析与建模
可见常数项的置信区间为[7.209605,13.346252],回归系数的置信区间为[4.070851 5.767811]。

预测值


new_data  data.frame(x = 3.3)

y.pred  predict(lm,new_data,interval = "prediction",level = 0.95)

y.conf  predict(lm,new_data,interval = "confidence",level = 0.95)

一元线性回归分析与建模

模型诊断


library("lindia")
gg_diagnose(lm)

一元线性回归分析与建模
其中第一为残差直方图,可以用来判断残差的正态性是否存在极端值;第二张自变量与残差的关系图;第三张为预测值与残差的关系图,可以用来判断方差齐性的评估,每个点随机的分布在参考线的两侧,没有规律;第四张为残差的Q-Q图,用于残差的正态性判断;第五张当参考线水平时证明方差齐性,第六张为杠杆和残差的关系图,第七张为Cook’s Distance图,用于识别是否存在强影响点。

完整代码


x  c(3.4,1.8,4.6,2.3,3.1,5.5,0.7,
       3.0,2.6,4.3,2.1,1.1,6.1,4.8,3.8)
y  c(26.2,17.8,31.3,23.1,27.5,36.0,14.1,
       22.3,19.6,31.3,24.0,17.3,43.2,36.4,26.1)

plot(x,y)

abline(lm)

lm lm(y~x)

summary(lm)

anova(lm)

cor(x,y,method = "pearson")

cor.test(x,y,alternative = "two.sided",
         method = "pearson",conf.level = 0.95)

e  resid(lm)
round(e,3)

plot(x,e)

zre  e/2.316

sre  rstandard(lm)

confint(lm)

new_data  data.frame(x = 3.3)

y.pred  predict(lm,new_data,interval = "prediction",level = 0.95)

y.conf  predict(lm,new_data,interval = "confidence",level = 0.95)

library("lindia")
gg_diagnose(lm)

Original: https://blog.csdn.net/m0_56444893/article/details/122072030
Author: 「已注销」
Title: 一元线性回归分析与建模

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/634943/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球