我正在运行一个序数回归模型。我有 8 个解释变量,其中 4 个是分类变量('0'或'1'),其中 4 个是连续的。事先我想确保没有多重共线性,所以我使用方差膨胀因子(汽车包中的vif函数):
mod1<-polr(Y ~ X1+X2+X3+X4+X5+X6+X7+X8, Hess = T, data=df)
vif(mod1)
但我得到一个变量的 VIF 值为 125,以及以下警告:
警告消息:在 vif.default(mod1) 中:无拦截:vifs 可能不明智。
但是,当我将因变量转换为数字(而不是因子)时,并使用线性模型做同样的事情:
mod2<-lm(Y ~ X1+X2+X3+X4+X5+X6+X7+X8, data=df)
vif(mod2)
这次所有的 VIF 值都低于 3,表明不存在多重共线性。
我对vif功能感到困惑。它如何返回一个模型的 VIF > 100 和另一个模型的低 VIF?我应该坚持第二个结果并仍然做一个序数模型吗?