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

时间:2021-01-11 20:59:39

标签: r model regression glm

让我们考虑数据

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

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

0 个答案:

没有答案