python - 在 Python 中无需替换的 Prospensity-score 匹配
问题描述
我有 2 个数据框,df_treatment
并且df_control
. 我想根据他们的倾向得分(已经计算)将每个元素匹配df_treatment
到最接近的匹配项。df_control
问题是我发现的唯一方法是基于 KNN 最近邻算法,但有替换,因此 in 中的一个元素df_control
可能与df_treatment
.
我试图找到一种方法来根据倾向得分匹配这两个数据集,以减少混淆偏差,但使用不替换的匹配方法,因为我必须将治疗组中的每个元素与其最接近的基于倾向得分的匹配匹配,对照组中的元素只能与治疗组中的一个元素匹配。
我正在尝试让算法在原始df_control
元素与治疗组中的元素匹配后删除它们(并“移动”到df_matched_control
),但我还没有找到解决此问题的方法。
我已经检查了这两个笔记本在 Python 中使用 KNN 进行倾向得分匹配,但我们都使用替换匹配:
https://github.com/konosp/propensity-score-matching/blob/main/propensity_score_matching_v2.ipynb
R 包 MatchIt 有最近邻匹配,它解决了这个问题,但我在 Python 中找不到类似的东西。
解决方案
推荐阅读
- android - Google Maps Flutter animateCamera 抛出错误
- c - 普通“int”位域的签名
- python - 使用 Python 从弹出窗口中抓取 CSV 文件
- azure - 适用于 Azure java 11 的 Spring Boot Starters
- php - 致命错误:未捕获错误:调用未定义函数 wp_get_current_user()
- json - Xamarin.Android - 如何从网站获取 JSON
- r - 在 R 中保存雷达图
- python - 为什么使用 3d 数组的 ndimage.convolve 会产生 3d 数组而不是 2d?
- drools - Drools - 何时使用多个 kie 会话?
- javascript - mongodb 找不到匹配项