二元逻辑回归多重共线性检验

机器算法验证 回归 物流 多重共线性 方差膨胀因子
2022-04-10 05:54:14

我喜欢 Peter Flom 对有关逻辑回归中多重共线性的早期问题的回答,但 David Garson 的逻辑二项式回归指出,即使自变量是比率尺度,也没有对二元相关逻辑回归的多重共线性进行有效测试。谁能提供一份或多份参考资料?我自己的经验是 OLS 相关矩阵和 VIF 对我有用,因为我的逻辑系数在根据多重共线性的 OLS 测试去除纠缠自变量之前变得混乱。但我必须公布我的结果和方法,如果有一个或多个存在的话,我想要一种有信誉的引用实践的方式。

1个回答

我很高兴你喜欢我的回答:-)

并不是说逻辑回归中没有检测共线性的有效方法:由于共线性是自变量之间的关系,因此因变量无关紧要。

有问题的是要弄清楚逻辑回归有多少共线性太多了。David Belslely 对条件索引进行了大量工作。他发现,超过 30 的指数在一个以上变量中具有显着差异,这表明共线性会导致 OLS 回归出现严重问题。然而,“严重”始终是一种判断。或许了解共线性问题的最简单方法是证明数据中的微小变化会导致结果发生巨大变化。

[本文 http://www.medicine.mcgill.ca/epidemiology/joseph/courses/epib-621/logconfound.pdf] 提供了逻辑回归中的共线性示例。它甚至表明R检测到精确的共线性,事实上,一些近似共线性的情况会导致相同的警告:

Warning message:
glm.fit: fitted probabilities numerically 0 or 1 occurred

尽管如此,我们可以忽略这个警告并运行

set.seed(1234)
x1 <- rnorm(100)
x2 <- rnorm(100)
x3 <- x1 + x2 + rnorm(100, 0, 1)

y <- x1 + 2*x2 + 3*x3 + rnorm(100)
ylog <- cut(y, 2, c(1,0))

m1<- glm(ylog~x1+x2+x3, family = binomial)
coef(m1)

产生 -2.55、1.97、5.60 和 12.54

然后我们可以稍微扰动 x1 和 x2,将它们添加到新的 x3 并再次运行:

x1a <- x1+rnorm(100,0,.01)
x2a <- x2+rnorm(100,0, .01)
x3a <- x1a + x2a + rnorm(100, 0, 1)

ya <- x1a + 2*x2a + 3*x3a + rnorm(100)
yloga <- cut(ya, 2, c(1,0))


m2<- glm(ylog~x1a+x2a+x3a, family = binomial)
coef(m2)

这会产生截然不同的系数:0.003、3.012、3.51 和 -0.41

然而,这组自变量的条件指数并不高:

library(perturb)
colldiag(m1)

说最大条件指数是3.54。

我不知道是否有人对此进行过任何蒙特卡洛研究;如果没有,这似乎是一个很好的研究领域