倾向得分与个人权重匹配

问题描述

我正在尝试对调查数据进行倾向得分匹配。我知道可以进行匹配过程的MatchIt软件包,但是我可以在某些方面包括单个权重吗?因为如果我不考虑它们,那么相关性较低的观察结果可能与相关性较高的观察结果相匹配。谢谢!

解决方法

在此答案下方更新2020-11-25。

调查权重不能以这种方式与匹配一起使用。您可以考虑使用权重,它可以容纳调查权重。通过加权,您可以使用考虑调查权重的模型来估计倾向得分的权重,然后将估计的权重乘以调查权重以得出最终的权重集。

可以使用MatchIt软件包WeightIt(我是作者)的加权伴侣来完成的。经过您的治疗A,结果Y(对于本次演示,我假设是连续的),协变量X1X2以及抽样权重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,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一样。这为用于估计倾向得分的模型提供了调查权重,但不影响匹配。如果您希望将单位与具有类似调查权重的其他单位配对,则应输入调查权重作为变量来匹配或放置卡尺。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...