为什么以及如何在逻辑回归中匹配变量?

数据挖掘 机器学习 预测建模 统计数据 逻辑回归 机器学习模型
2022-03-02 01:49:21

我有一个约 4.7K 记录的数据集,专注于具有 60 个特征的二进制分类。第 1 类有 1554 条记录,第 2 类有 3558 条记录。

现在我想找出影响疾病存在与否的结果的风险因素。这是一个监督学习问题

我了解人们进行匹配以确保两个类具有相似的分布,以便比较结果可靠。

1)我看到人们通常根据年龄等人口统计数据进行匹配。如果我们保持年龄不变,是否可以推断出哪些因素真正影响结果。我这样理解正确吗?

2)如果我将所有变量都放在逻辑回归模型中,那不是混淆了吗?为什么我必须进行匹配?

3) 在 60 个特征中,我想基于 4 个变量进行匹配。如何为我的完整数据集执行此操作?有没有python包可以做到这一点?

有人可以帮助我如何做到这一点吗?

1个回答

看来(如果我理解正确的话)您想模拟一些混杂因素的因果效应X在某些结果上y通过使用 Logit。如果这是正确的,如果你知道结果y,你应该只使用 Logit 没问题,因为在这种情况下(如果你能够控制所有相关的混杂因素X),你可以确定的边际效应xy.

我想您在问题中指的是“倾向得分匹配”(PSM)。此技术用于“预测”您不确定是否存在某些情况的情况i 接受治疗(y=1或者y=0) 并且您尝试“预测”这个结果。换句话说:倾向得分是在给定某些条件下接受治疗的条件(预测)概率x.

但是,如果您观察到y,如果你没有理由相信存在偏见y,您应该可以使用普通的 Logit。在这里,澄清您的问题实际上是什么对您来说非常重要(这从您的问题中不清楚)。所以如果治疗(y) 是非随机的,您可以考虑使用 PSM 来“纠正”这种偏差。如果没有,您可以使用普通的 Logit。

PSM 用于计量经济学和相关领域。因此,据我所知,没有现成的 Python 实现。但是,您可以看看这篇文章或者,如果您不介意使用 R,请查看this

无论如何:PSM 有它的优点和缺点。由于近年来匹配取得了巨大进展,因此它也有点过时了。所以对你来说最重要的事情是——在我看来——如果你真的需要“调整”治疗/未治疗的y(因此,如果您有理由相信数据生成过程是有偏见的或非随机的)。