建立多元线性回归的前提之一是:不存在多重共线性(Multicollinearity)。检验变量之间是否存在共线性问题可以使用方差膨胀因子(Variance inflation factor, VIF)。其计算和作图代码如下:
安装、加载R包
# install.packages("performance")
# install.packages("see")
library(performance)
library(see)
- 以
mtcars
数据集为例,建立回归模型
linear_model <- lm(mpg ~ cyl + disp + hp + drat, data = mtcars)
- 计算VIF
check_collinearity(linear_model)
# # Check for Multicollinearity
#
# Low Correlation
#
# Parameter VIF Increased SE
# hp 3.99 2.00
# drat 2.50 1.58
#
# Moderate Correlation
#
# Parameter VIF Increased SE
# cyl 7.76 2.79
# disp 6.23 2.50
- 可视化VIF结果
plot(check_collinearity(linear_model))
结果解读:方差膨胀因子(Variance inflation factor, VIF)可以用于诊断变量间是否存在多重共线性。通常来说,VIF >5 或者 VIF > 10 则提示存在对模型造成危害的共线性问题。本例中 如果以VIF > 10作为存在共线性问题的标准,可以使用上述4个变量进行建模。
参考资料
- 微信公众号“R语言和统计”: 如何进行回归的多重共线性检验?这种清新脱俗的方法值得拥有!
- Package ‘performance’