逻辑回归数据的完全分离

时间:2019-01-12 15:46:38

标签: python machine-learning statistics logistic-regression statsmodels

我一直在SAS中运行一些大型逻辑回归模型,这些模型需要4个多小时才能收敛。但是最近,我获得了对Hadoop集群的访问权限,并且可以使用Python更快地拟合相同的模型(大约10到15分钟)。

问题是,我的数据中的数据点有一些完全/准完全的分离,导致无法收敛;尽管如此,我还是在SAS中使用FIRTH命令来生成可靠的参数估计值,但是在sklearn或statsmodels中,Python似乎没有等效的选项(我主要使用后者)。

还有另一种方法可以解决Python中的这个问题吗?

2 个答案:

答案 0 :(得分:0)

AFAIK,Python中没有Firth惩罚。 Statsmodels有一个未解决的问题,但目前尚无人在研究。

作为替代,可以使用其他类型的惩罚,例如如sklearn或statsmodels中可用。

另一个选择是更改观察到的响应变量。可以通过扩展数据集来实现广度。但是,我不知道在Python中有任何配方或原型。

https://github.com/statsmodels/statsmodels/issues/3561

Statsmodels正在进行惩罚方面的工作,但目前的重点是针对通用加性模型GAM(尤其是样条)的特征/变量选择(弹性网,SCAD)和二次惩罚。

Firth使用数据相关的惩罚,这不适用于惩罚结构是数据独立的“先验”的通用惩罚框架。

答案 1 :(得分:0)

条件似然是解决完美分离的另一种方法。这在基本上可以使用的Statsmodels PR中:

https://github.com/statsmodels/statsmodels/pull/5304

相关问题