R 中的逻辑回归导致完美分离(Hauck-Donner 现象)。怎么办?

机器算法验证 r 回归 物流 分离
2022-02-14 05:01:41

我正在尝试使用 50 个连续解释变量来预测二元结果(大多数变量的范围是)。我的数据集有近 24,000 行。当我在 R 中运行时,我得到:glm

Warning messages:  
1: glm.fit: algorithm did not converge  
2: glm.fit: fitted probabilities numerically 0 or 1 occurred 

我已经阅读了其他建议可能会发生完美分离的回复,但我确信我的数据中并非如此(尽管可能存在准完全分离;我如何测试以查看是否是这种情况?) . 如果我删除一些变量,“没有收敛”错误可能会消失。但情况并非总是如此。

我尝试在bayesglm函数中使用相同的变量并得到相同的错误。

你会采取什么步骤来弄清楚这里到底发生了什么?您如何找出导致问题的变量?

1个回答

有了这么大的设计空间(!),可以在没有单独采用任何变量的情况下获得完美的分离。我什至会赞同 David J. Harris 的评论,认为这很有可能。R50

您可以轻松地测试您的类在您的设计空间中是否完全分离。这归结为解决线性规划问题。这个“测试”的 R 实现(不是术语统计意义上的测试)在 safeBinaryRegression中实现。

如果事实证明分离确实是问题,并且如果您只对 glm 的普通使用感兴趣(例如 glm 不是由更高级别的函数而是由您调用),那么有一个算法的 R 实现稍微修改了经典的,使其对分离“稳健”。它在 hlr包中实现