【发布时间】:2020-12-27 05:21:44
【问题描述】:
我正在运行一个序数回归模型。我有 8 个解释变量,其中 4 个是分类的 ('0' 或 '1') ,其中 4 个是连续的。事先我想确定没有多重共线性,所以我使用方差膨胀因子(car 包中的 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?我应该坚持第二个结果并仍然做一个序数模型吗?
【问题讨论】:
标签: r multicollinearity