在 Matlab/R 中使用惩罚似然(套索?)进行逻辑回归

机器算法验证 回归 物流 广义线性模型 套索 罗吉特
2022-04-13 15:00:59

我试图logistic regression在很少有积极因素的情况下使用。我知道最大似然会受到小样本偏差的影响。所以 MATLABglmfit对我不起作用。我尝试firth在 R 中使用回归,但它只是挂断了我强大的 PC(150,000 个观察值,9 个虚拟变量,1500 个正数)。MATLAB 也有这个功能lassoglm,但我不确定它是否可以用于逻辑回归,很少有阳性结果。您能否确认/建议替代方案?

一些有用的链接——这里这里

2个回答

鉴于规定的样本量(150,000),您为什么认为“小样本”量会导致偏差?你有 1500 个正面案例的观察结果,我通常不会认为它很小

R 中的一个替代方案是brglm包,它也实现了 Firth 的方法。

然而,我最近提到一篇论文 ( Gelman et al 2008 ),该论文表明,在贝叶斯背景下,与其他减少偏差的方法相比,Firth 的方法表现相当糟糕。该论文的作者bayesglm()在 R 包arm中编写了该函数,以提供模型系数的一系列先验(Firth 的方法归结为模型中先验的特定选择;杰弗里斯先验)。我提到它的主要原因是它也可能比迄今为止考虑的选项更有效。

有 1% 的阳性率,你就有了不平衡的班级。正如某些人指出的那样,您没有小样本问题。相反,你有一个罕见的事件场景(也就是类不平衡)。使用 vanilla MLE 优化的逻辑回归将由主要类别 (99%) 主导。

在这种情况下,普通逻辑回归的替代方案包括:

  1. 罕见事件逻辑回归(Zelig::relogit在 R 中实施 King,Leng 2001),它使用加权和偏差校正来解决不平衡问题。
  2. Firth 回归使用惩罚 MLE 代替。brglm并且更新的brglm2可能是更快的实现。)

请注意,套索惩罚降低了模型的维数,并且可能有助于 MLE 收敛。然而,它并没有解决由类不平衡驱动的偏差。