如何在 r 中测试多重共线性
在回归分析中,当两个或多个预测变量彼此高度相关,以致它们在回归模型中不提供唯一或独立的信息时,就会出现多重共线性。
如果预测变量之间的相关程度足够高,则在拟合和解释回归模型时可能会出现问题。
检测回归模型中的多重共线性的最简单方法是计算称为方差膨胀因子(通常缩写为VIF )的指标。
VIF 衡量模型中预测变量之间的相关性强度。它的值介于 1 和正无穷大之间。
我们使用以下经验法则来解释 VIF 值:
- VIF = 1:给定预测变量与模型中的任何其他预测变量之间不存在相关性。
- VIF 介于 1 和 5 之间:给定预测变量与模型中的其他预测变量之间存在中等相关性。
- VIF > 5 :给定预测变量与模型中的其他预测变量之间存在很强的相关性。
以下示例演示如何通过计算模型中每个预测变量的 VIF 值来检测 R 回归模型中的多重共线性。
示例:R 中的多重共线性测试
假设我们有以下数据框,其中包含有关各个篮球运动员的信息:
#create data frame df = data. frame (rating = c(90, 85, 82, 88, 94, 90, 76, 75, 87, 86), points=c(25, 20, 14, 16, 27, 20, 12, 15, 14, 19), assists=c(5, 7, 7, 8, 5, 7, 6, 9, 9, 5), rebounds=c(11, 8, 10, 6, 6, 9, 6, 10, 10, 7)) #view data frame df rating points assists rebounds 1 90 25 5 11 2 85 20 7 8 3 82 14 7 10 4 88 16 8 6 5 94 27 5 6 6 90 20 7 9 7 76 12 6 6 8 75 15 9 10 9 87 14 9 10 10 86 19 5 7
假设我们想要拟合一个多元线性回归模型,使用得分作为响应变量,得分、助攻和篮板作为预测变量。
要计算模型中每个预测变量的 VIF,我们可以使用car包中的vive()函数:
library (car) #define multiple linear regression model model <- lm(rating ~ points + assists + rebounds, data=df) #calculate the VIF for each predictor variable in the model lively(model) points assists rebounds 1.763977 1.959104 1.175030
我们可以看到每个预测变量的 VIF 值:
- 积分: 1.76
- 助攻: 1.96
- 篮板数: 1.18
由于模型中预测变量的每个 VIF 值都接近 1,因此多重共线性在模型中不是问题。
注意:如果多重共线性成为模型中的问题,大多数情况下最快的解决方案是删除一个或多个高度相关的变量。
这通常是一个可接受的解决方案,因为您删除的变量无论如何都是多余的,并且在模型中添加了很少的唯一或独立信息。
其他资源
以下教程解释了如何在 R 中执行其他常见任务: