如何在 sas 中计算方差膨胀因子 (vif)
在回归分析中,当两个或多个预测变量彼此高度相关,以致它们在回归模型中不提供唯一或独立的信息时,就会出现多重共线性。
如果变量之间的相关程度足够高,则在拟合和解释回归模型时可能会出现问题。
检测多重共线性的一种方法是使用称为方差膨胀因子 (VIF) 的指标,该指标衡量回归模型中解释变量之间的相关性和相关强度。
本教程介绍如何在 SAS 中计算 VIF。
示例:在 SAS 中计算 VIF
在此示例中,我们将创建一个描述 10 名篮球运动员属性的数据集:
/*create dataset*/ data my_data; input rating points assists rebounds; datalines ; 90 25 5 11 85 20 7 8 82 14 7 10 88 16 8 6 94 27 5 6 90 20 7 9 76 12 6 6 75 15 9 10 87 14 9 10 86 19 5 7 ; run ; /*view dataset*/ proc print data =my_data;
假设我们想要拟合一个多元线性回归模型,使用得分作为响应变量,得分、助攻和篮板作为预测变量。
我们可以使用PROC REG将该回归模型与VIF选项进行拟合,以计算模型中每个预测变量的 VIF 值:
/*fit regression model and calculate VIF values*/ proc reg data =my_data; model rating = points assists rebounds / lively ; run ;
从参数估计表中,我们可以看到每个预测变量的 VIF 值:
- 积分: 1.76398
- 助攻: 1.96591
- 篮板数: 1.17503
注意:忽略模板中“Intercept”的 VIF,因为该值不相关。
VIF 值从 1 开始,没有上限。解释 VIF 的一般规则是:
- 值1表示给定预测变量与模型中的任何其他预测变量之间不存在相关性。
- 1到5之间的值表示给定预测变量与模型中的其他预测变量之间存在中等相关性,但通常没有严重到需要特别注意的程度。
- 大于5 的值表示给定预测变量与模型中的其他预测变量之间存在潜在的严重相关性。在这种情况下,回归结果中的系数估计和 p 值可能不可靠。
由于我们的回归模型中预测变量的每个 VIF 值都接近 1,因此多重共线性在我们的示例中不是问题。
如何处理多重共线性
如果您确定回归模型中存在多重共线性问题,有几种常见的方法可以解决它:
1. 删除一个或多个高度相关的变量。
在大多数情况下,这是最快的解决方案,并且通常是可接受的解决方案,因为您删除的变量无论如何都是多余的,并且向模型添加的唯一或独立信息很少。
2.以某种方式线性组合预测变量,例如以某种方式相加或相减。
通过这样做,您可以创建一个包含两个变量信息的新变量,并且不再存在多重共线性问题。
3. 执行旨在解释高度相关变量的分析,例如主成分分析或偏最小二乘 (PLS) 回归。
这些技术专门设计用于处理高度相关的预测变量。
其他资源
以下教程解释了如何在 SAS 中执行其他常见任务: