《R语言实战》自学笔记50-回归诊断标准方法

数据准备

df <- read.table(file = "D:/Documents/R wd/df.csv", header = T, sep = ",", colClasses = c(year = "character", nitrogen = "character", variety = "character", block = "character")) # 数据导入。
df # 查看数据。
##    year nitrogen variety block   v1   v2  v3  v4   v5
## 1  2020       N1       a     1 1.26 2.14 0.4 5.0 3.25
## 2  2020       N1       a     2 1.20 2.90 0.1 5.3 1.27
## 3  2020       N1       a     3 1.30 3.00 0.3 5.6 2.24
## 4  2020       N1       b     1 1.08 1.72 1.8 2.8 1.00
## 5  2020       N1       b     2 1.05 1.65 1.7 2.5 3.12
## 6  2020       N1       b     3 1.15 1.35 1.5 3.1 4.57
## 7  2020       N2       a     1 1.32 3.78 1.6 6.0 5.85
## 8  2020       N2       a     2 1.28 4.32 1.4 6.1 6.48
## 9  2020       N2       a     3 1.35 3.95 1.3 6.2 7.21
## 10 2020       N2       b     1 1.33 3.47 2.8 4.1 6.56
## 11 2020       N2       b     2 1.28 2.72 2.4 4.3 8.43
## 12 2020       N2       b     3 1.30 3.90 2.2 4.5 7.55
## 13 2021       N1       a     1 1.19 3.61 0.8 6.0 3.11
## 14 2021       N1       a     2 1.21 3.29 0.5 5.7 2.54
## 15 2021       N1       a     3 1.24 3.26 0.7 5.6 1.28
## 16 2021       N1       b     1 1.09 2.71 1.8 4.0 3.24
## 17 2021       N1       b     2 1.28 2.32 1.6 4.2 1.27
## 18 2021       N1       b     3 1.35 1.95 1.3 4.3 1.15
## 19 2021       N2       a     1 1.45 4.35 1.8 7.2 5.74
## 20 2021       N2       a     2 1.40 3.80 1.2 7.0 6.85
## 21 2021       N2       a     3 1.37 4.23 1.6 6.8 7.42
## 22 2021       N2       b     1 1.28 2.72 2.4 5.1 8.20
## 23 2021       N2       b     2 1.15 3.35 2.5 5.5 5.70
## 24 2021       N2       b     3 1.24 3.46 2.7 4.9 6.00

8.3 回归诊断

8.3.1 标准方法

最常见的方法就是对lm()函数返回的对象使用plot()函数,可以生成评价模型拟合情况的四幅图形。

fit <- lm(v1 ~ v3, data = df) # 数据框df中v1和v3线性拟合。  
par(mfrow = c(2,2)) # 设置放置图的布局。
plot(fit) # 返回模型评价图。Residuals vs Fitted图中显示拟合值怎么变化,残差值基本维持不变,两者之间无相互关系,说明模型不准确度可以,Normal Q-Q图数据点均在45度的直线附近,说明符合正态分布;Scale-Location方差值基本维持在1左右,方差确定,符合同方差假设;Residuals vs Leverage图中点都在0.5等高线内,说明没有离群点。
image.png

为理解这些图形,我们来回顾一下OLS回归的统计假设。
 线性 若因变量与自变量线性相关,那么残差值与预测(拟合)值就没有任何系统关联。
换句话说,除了白噪声,模型应该包含数据中所有的系统方差。

扩展学习
数据噪声(Noise):数据集中的干扰数据(对场景描述不准确的数据),即测量变量中的随机误差或方差。
残差(Residuals)在数理统计中是指实际观察值与估计值(拟合值)之间的差。

 正态性 当预测变量值固定时,因变量成正态分布,则残差值也应该是一个均值为0的正
态分布。正态Q-Q图(Normal Q-Q,右上)是在正态分布对应的值下,标准化残差的概率
图。若满足正态假设,那么图上的点应该落在呈45度角的直线上;若不是如此,那么就
违反了正态性的假设。

 同方差性 若满足不变方差假设,那么在位置尺度图(Scale-Location Graph,左下)中,水平线周围的点应该随机分布。

 独立性 你无法从这些图中分辨出因变量值是否相互独立,只能从收集的数据中来验证。

四幅图解读
1、残差图与拟合图(Residuals vs Fitted):如果残差的分布比较均匀,万亩就认为误差分布符合Guaasian-Markov Condition。如果残差随着y值的增大而有增大或减小的趋势,或者残差的分布更近似于一个二次曲线,那么就意味着可能原本的数据并不是线性关系。
2、QQ图(Normal QQ-plot):用来检测其残差是否是正态分布的。如果符合正态分布,图上的点应该是贴近y=x这条直线。
3、位置尺度图(Scale-Location Graph):用来检查等方差假设。若水平线周围的点随机分布,则认为满足不变方差假设。
4、残差与杠杆图(Residuals vs Leverage):用来鉴别出离群点、高杠杆值点和强影响点。
 一个观测点是离群点,表明拟合回归模型对其预测效果不佳(产生了巨大的或正或负的
残差)。

 一个观测点有很高的杠杆值,表明它是一个异常的预测变量值的组合。也就是说,在预
测变量空间中,它是一个离群点。因变量值不参与计算一个观测点的杠杆值。

 一个观测点是强影响点(influential observation),表明它对模型参数的估计产生的影响过
大,非常不成比例。强影响点可以通过Cook距离即Cook’s D统计量来鉴别。在线性模型里用Cook距离分析一个点是否非常influential(极端点)。一般来说距离大于0.5的点就需要引起注意了。图中1和0.5分别就是Cook距离为1和0.5的等高线。

参考资料:

  1. 《R语言实战》(中文版),人民邮电出版社,2013.
  2. 数据挖掘:数据清洗——数据噪声处理,https://blog.csdn.net/AvenueCyy/article/details/104389276
  3. R语言(3)-四张图检验线性回归模型,https://zhuanlan.zhihu.com/p/49149862

你可能感兴趣的:(《R语言实战》自学笔记50-回归诊断标准方法)