
MatchingFrontier包简介及R实现
构造匹配边界 估计边界效应 可视化分析 生成优化后的匹配样本
发布日期:2025-04-12 02:38:27
浏览次数:9
分类:精选文章
本文共 1916 字,大约阅读时间需要 6 分钟。
MatchingFrontier 包简介
由哈佛大学的 Gary King 和 Christopher Lucas 以及 MIT 的 Richard Nielsen 三位学者共同开发的 MatchingFrontier 包于 2015 年首次发布在 GitHub 上,现已可在 CRAN 上方便下载。该包提供了一种用于因果推断的优化分组匹配效率的算法。
传统的 PSM 方法仅通过倾向得分本身进行匹配,在匹配组与对照组的相似度、模型依赖度、统计效率及偏误等多方面表现欠佳。研究者长期面临偏误与方差之间的权衡困境:通过修剪数据以降低不平衡,从而减少模型依赖度,但同时也会减少样本量,进而增大估计值的方差。
MatchingFrontier 算法通过同步优化不平衡(在处理组与对照组之间)和样本大小,实现了对分组匹配效率的最大化。此外,该包的核心用途在于生产最优的匹配样本,标准的 PSM 分析流程在计算出 ATT 值后已实质上结束。
核心功能
该包主要由以下四个函数模块构成:
makeFrontier
estimateEffects
Visualize the full frontier
使用步骤
1. 载入所需程序包和数据集
library(MatchingFrontier) data(lalonde) lalonde <- as.data.frame(lalonde) attach(lalonde)
2. 数据集简介
数据集 lalonde
包含以下变量:
re78
:1978 年实际收入(结果变量)treat
:是否参加就业培训(处理变量)age
:年龄educ
:教育年限black
:是否为黑人hisp
:是否为拉丁族married
:是否结婚nodegree
:是否有学位re74
、re75
:1974 年和 1975 年的实际收入u74
、u75
:1974 年和 1975 年是否失业
样本共计 1185 个观测。
3. 计算匹配边界
match.on <- colnames(lalonde)[!(colnames(lalonde) %in% c('re78', 'treat'))] my.frontier <- makeFrontier( dataset = lalonde, treatment = 'treat', outcome = 're78', match.on = match.on ) # 返回结果显示,997 个观测值被移除,最终保留 188 个优化样本。
4. 估计效应
my.form <- as.formula(re78 ~ treat + age + black + education + hispanic + married + nodegree + re74 + re75) my.estimates <- estimateEffects( my.frontier, 're78 ~ treat', mod.dependence.formula = my.form, continuous.vars = c('age', 'education', 're74', 're75'), prop.estimated = 0.1, means.as.cutpoints = TRUE )
5. 可视化分析
plotFrontier( my.frontier, cex.lab = 1.4, cex.axis = 1.4, type = 'l', panel.first = grid(NULL, NULL, lwd = 2) ) plotEstimates( my.estimates, ylim = c(-10000, 3000), cex.lab = 1.4, cex.axis = 1.4, panel.first = grid(NULL, NULL, lwd = 2) ) plotMeans(my.frontier)
6. 生成优化后的匹配样本
n <- 180 matched.data <- generateDataset(my.frontier, N = n) # 可选择部分或全部观测本文选择了 180 个观测。
总结
MatchingFrontier 包通过创新性的算法解决了传统 PSM 方法在偏误与方差权衡上的缺陷,帮助研究者高效完成因果推断任务。
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2025年05月02日 09时08分24秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
mac下PyCharm导入第三方包
2025-04-11
Mac下redis安装和启动
2025-04-11
Mac下可用的sublime3
2025-04-11
Mac下各种网络命令的使用
2025-04-11
Mac下如何配置环境变量
2025-04-11
Mac下安装jdk
2025-04-11
Mac下安装PEAR
2025-04-11
Mac下安装PIL库
2025-04-11
mac下安装配置nginx
2025-04-11
MAC下安装配置Tomcat
2025-04-11
Mac下忘记MySQL密码可以这样做!
2025-04-11
Mac下显示\隐藏所有文件
2025-04-11
mac下编译openjdk8?so easy!
2025-04-11
mac下配置PrintAssembly
2025-04-11
Mac下配置多个SSH-Key (gitLab)
2025-04-11
mac下面有epoll?
2025-04-11
Mac中禁止Chrome浏览器更新
2025-04-11
Mac使用git拉取代码
2025-04-11
mac关闭占用某个端口的进程
2025-04-11
mac删除appstore账号和更新失败的问题
2025-04-11