微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么手动计算的 VIF 不同?

如何解决为什么手动计算的 VIF 不同?

让我们考虑数据

set.seed(42)
y <- sample(0:1,100,T)
df1 <- data.frame('Binary' = rnorm(100)>0.5 * 1,'Unif' = runif(100),'Exp' = rexp(100))

我想以两种方式拟合 logit 回归并计算“二进制”变量的 VIF - 通过 car::vif 和手动。

让我们拟合一个模型:

model <- glm(y~.,data = df1,family = binomial())

通过vif函数

> car::vif(model)
   variable     gvif
1:   Binary 1.020622
2:     Unif 1.017845
3:      Exp 1.005069

手动

> 1/(1-summary(lm(df1$Binary~df1$Unif + df1$Exp))$r.squared)
[1] 1.021415

我的问题是 - 为什么不同?是我计算错误还是这只是估计错误

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。