如何解决为什么手动计算的 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 举报,一经查实,本站将立刻删除。