多元多元回归的 VIF 检验

问题描述

我想使用 VIF 函数测试多重共线性。我有一个包含 13 个度量和 4 个预测变量的模型,创建方式如下:

M <- lm(cbind(S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12,S13) ~ x1 + x2 + x3 + x4,data = dat)
M

当我尝试在这个模型上运行 vif 函数时,它给出了一个错误

if (names(coefficients(mod)[1]) == "(Intercept)") { : argument is of length 0
vif(M)

我也尝试过分别进行每个测量,但是在所有假设下测试 13 个模型是相当重复的,尽管 vif() 可以工作。

有没有办法让整个模型都适用? 我很抱歉没有包含一组数据来测试它。我希望它仍然传达了我的问题。

解决方法

VIF 不涉及因变量——它只涉及自变量,所以如果你跑了,例如

m1 = lm(S1 ~ x1 + x2 + x3 + x4,data = dat)
vif(m1)

这应该会告诉你你需要的一切。