Statsmodels 逻辑回归 class 失衡

Statsmodels Logistic Regression class imbalance

我想 运行 通过 class 或样本权重重新平衡数据集,对具有 0.5% 正 class 的数据集进行逻辑回归。我可以在 scikit learn 中执行此操作,但它不提供模型的任何推论统计信息(置信区间、p 值、残差分析)。

这可以在 statsmodels 中完成吗?我在 statsmodels.discrete.discrete_model.Logit.fit

中没有看到 sample_weights 或 class_weights 参数

谢谢!

程序员的回答:

statsmodels Logit 和其他离散模型还没有权重。 (*)

GLM 二项式通过每次观察的成功和不成功试验次数隐含地定义了案例权重。它还允许通过 GLM 方差函数操纵权重,但这尚未得到官方支持和测试。

update statsmodels Logit 仍然没有权重,但 GLM 已经获得了 var_weights 和 freq_weights 几个 statsmodels 版本。 GLM 二项式可用于估计 Logit 或 Probit 模型。

统计学家's/econometrician的回答:

推论、标准误差、置信区间、测试等均基于随机样本。如果权重被操纵,那么这应该会影响推断统计。 但是,我从未考虑过根据观察到的响应重新平衡数据的问题。通常,这会产生选择偏差。快速的互联网搜索显示了几个答案,从重新平衡对 Logit 没有积极影响到作为替代方案的惩罚估计。

一种可能性是也尝试不同的 link 函数,cloglog 或其他 link 函数具有不对称或较重的尾部,更适合在一个 class 或中风险较小的数据类别。

(*) 实施权重的一个问题是决定它们对推理的解释是什么。例如,Stata 允许 3 种权重。