r - 倾向得分与个人权重匹配
问题描述
我正在尝试对调查数据进行倾向得分匹配。我知道包 MatchIt 可以进行匹配程序,但我可以在某些方面包含各个权重吗?因为如果我不考虑它们,一个不太相关的观察可以与一个更相关的观察相匹配。谢谢!
解决方案
在此答案下方更新 2020-11-25。
调查权重不能以这种方式与匹配一起使用。您可以考虑使用加权,它可以容纳调查权重。通过加权,您可以使用考虑调查权重的模型来估计倾向得分权重,然后将估计的权重乘以调查权重以得出最终的权重集。
这可以使用MatchIt
包装的加权伴侣来完成,WeightIt
(我是作者)。使用您的处理A
、结果Y
(我假设此演示是连续的)、协变量X1
和X2
和采样权重S
,您可以运行以下命令:
#Estimate the propensity score weights
w.out <- weightit(A ~ X1 + X2, data = data, s.weights = "S",
method = "ps", estimand = "ATT")
#Combine the estimated weights with the survey weights
att.weights <- w.out$weights * data$S
#Fit the outcome model with the weights
fit <- lm(Y ~ A, data = data, weights = att.weights)
#Estimate the effect of treatment and its robust standard error
lmtest::coeftest(fit, vcov. = sandwich::vcovHC)
在估计权重后评估平衡至关重要;您可以使用该cobalt
包来做到这一点,该包适用于WeightIt
对象并自动将采样权重合并到余额统计中。在估计效果之前,您将运行以下命令:
cobalt::bal.tab(w.out, un = TRUE)
只有达到平衡,您才能继续估计治疗效果。
除了使用逻辑回归倾向得分外,还有其他方法可以估计权重。WeightIt
提供对许多方法的支持,几乎所有方法都支持采样权重。每种方法的文档解释了是否支持抽样权重。
MatchIt
4.0.0 现在支持通过调查权重s.weights
,就像WeightIt
. 这为用于估计倾向得分的模型提供调查权重,但不影响匹配。如果您希望单位与具有相似调查权重的其他单位配对,则应输入调查权重作为变量以匹配或放置卡尺。
推荐阅读
- azure-cosmosdb - 如何清空集合,重建索引,然后再次填充集合?
- c# - 如何使用 LINQ 从 DataTable 中获取分组的字段数组
- javascript - 如何根据点击的按钮动态播放视频
- iis - 如何使用 PRTG 网络监视器监视 IIS 应用程序池工作进程
- c# - Jquery Modal 未在按钮单击 ASP.NET 上显示
- wordpress - 控制在 Wordpress 中显示多少帖子
- r - 如何使用 R 中的 ggplot 将两个数据帧的点相互连接?
- c# - 为什么它不将 Bool 变量传递给另一个类?
- docker - Cloud Run 的“gcloud builds submit”
- r - 无法在 R 中合并两个数据框