用Python实战倾向性得分匹配:破解观察性数据的因果推断难题
当市场团队兴奋地展示上季度促销活动带来25%销售额增长时,作为数据科学家的你该如何判断这个数字的真实性?在无法进行随机分组实验的商业场景中,倾向性得分匹配(PSM)成为了解开因果谜题的金钥匙。本文将带你用Python从零实现PSM全流程,揭示隐藏在观察性数据背后的真实因果效应。
1. 为什么观察性数据需要特殊处理?
医疗领域有个经典案例:统计数据显示定期体检的人群平均寿命反而比不体检人群短。这个反常识的结论背后,是体检行为与健康状况的复杂纠缠——身体状况较差的人更可能主动体检。这种由于混杂变量(Confounder)导致的虚假关联,在商业数据分析中同样常见。
观察性数据与实验数据的本质差异在于:
- 实验数据:通过随机分配确保处理组和对照组可比性(如A/B测试)
- 观察性数据:处理分配非随机,组间存在系统性差异(如高价值客户更可能收到优惠券)
下表展示了某电商促销活动的原始数据问题:
| 指标 | 处理组(收到优惠券) | 对照组(未收到) | 差异 |
|---|---|---|---|
| 转化率 | 18% | 9% | +9% |
| 历史购买频次 | 5.2次 | 3.1次 | +2.1次 |
| 客单价 | ¥320 | ¥210 | +¥110 |
关键洞察:直接比较会高估促销效果,因为处理组本就是高价值用户

搞定观察性研究中的因果推断&spm=1001.2101.3001.5002&articleId=98879488&d=1&t=3&u=6fbe6a180cfa4de0928f09380e5b595e)
2252

被折叠的 条评论
为什么被折叠?



