问题描述
我想使用 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)
这应该会告诉你你需要的一切。