1

我想通过使用 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() 那时有效。

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

4

1 回答 1

2

VIF 不涉及因变量 - 它仅与自变量有关,例如,如果您运行

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

那应该告诉你你需要的一切。

于 2021-01-30T14:22:34.857 回答