完全分离逻辑回归数据
Complete separation of logistic regression data
我已经 运行 SAS 中的一些大型逻辑回归模型,需要 4 个多小时才能收敛。然而,最近我获得了对 Hadoop 集群的访问权限,并且可以使用 Python 更快地拟合相同的模型(大约 10-15 分钟)。
有问题的是,我的数据中有一些 complete/quasi-complete 数据点分离导致无法收敛;尽管如此,我还是在 SAS 中使用 FIRTH 命令来生成稳健的参数估计值,但在 sklearn 或 statsmodels 中似乎没有 Python 的等效选项(我主要使用后者)。
在 Python 中还有其他方法可以解决这个问题吗?
据我所知,Python 中没有可用的 Firth 惩罚。 Statsmodels 有一个未解决的问题,但目前没有人在处理它。
作为替代方案,可以使用不同类型的惩罚,例如在 sklearn 或 statsmodels 中可用。
另一种选择是更改观察到的响应变量。 Firth 可以通过扩充数据集来实现。但是,我不知道 Python.
中的任何配方或原型
https://github.com/statsmodels/statsmodels/issues/3561
Statsmodels 正在进行惩罚方面的工作,但目前的重点是 feature/variable 选择(弹性网络、SCAD)和广义加法模型 GAM 的二次惩罚,尤其是样条曲线。
Firth 使用数据相关惩罚,这不符合惩罚结构与数据无关的通用惩罚框架 "prior"。
条件似然是解决完美分离的另一种方法。这是一个基本可以使用的Statsmodels PR:
我已经 运行 SAS 中的一些大型逻辑回归模型,需要 4 个多小时才能收敛。然而,最近我获得了对 Hadoop 集群的访问权限,并且可以使用 Python 更快地拟合相同的模型(大约 10-15 分钟)。
有问题的是,我的数据中有一些 complete/quasi-complete 数据点分离导致无法收敛;尽管如此,我还是在 SAS 中使用 FIRTH 命令来生成稳健的参数估计值,但在 sklearn 或 statsmodels 中似乎没有 Python 的等效选项(我主要使用后者)。
在 Python 中还有其他方法可以解决这个问题吗?
据我所知,Python 中没有可用的 Firth 惩罚。 Statsmodels 有一个未解决的问题,但目前没有人在处理它。
作为替代方案,可以使用不同类型的惩罚,例如在 sklearn 或 statsmodels 中可用。
另一种选择是更改观察到的响应变量。 Firth 可以通过扩充数据集来实现。但是,我不知道 Python.
中的任何配方或原型https://github.com/statsmodels/statsmodels/issues/3561
Statsmodels 正在进行惩罚方面的工作,但目前的重点是 feature/variable 选择(弹性网络、SCAD)和广义加法模型 GAM 的二次惩罚,尤其是样条曲线。
Firth 使用数据相关惩罚,这不符合惩罚结构与数据无关的通用惩罚框架 "prior"。
条件似然是解决完美分离的另一种方法。这是一个基本可以使用的Statsmodels PR: