我通过 MatchIt 包对倾向分数进行了分层:
install.packages("MatchIt")
library(MatchIt)
# Stratification on the propensity score
stra <- matchit(treat ~ X1 + X2 + X3, data = data.mc, , method = "subclass")
smry.stra <- summary(stra, standardize = TRUE)
data.stra <- match.data(stra)
现在我想计算治疗组和对照组之间倾向评分的方差比。我可以只计算总治疗组和对照组的方差吗?
stra.ratio <- var(data.stra$distance[data.stra$treat == 1]) /
var(data.stra$distance[data.stra$treat == 0])
还是我必须以某种方式考虑地层和地层的权重?
提前非常感谢!
从软件包的文档中,值的描述weights
:
"每个匹配的控制单元的权重与其匹配的处理单元的数量成正比,控制权重的总和等于唯一匹配的控制单元的数量。 "
这向我表明,是的,我们应该采用加权方差。如果加权处理方差始终等于加权方差,我不会感到惊讶,因为权重应始终为 1,但我们肯定会看到控制方差的差异。
下面是使用 MatchIt
包附带的数据的可重现示例:
library(MatchIt)
library(SDMTools)
data(lalonde)
stra <- matchit(treat ~ age + educ + black + hispan + married + nodegree, data = lalonde, method = "subclass")
data.stra <- match.data(stra)
treatment <- data.stra[data.stra$treat == 1, ]
control <- data.stra[data.stra$treat == 0, ]
stra.ratio <- wt.var(treatment$distance, treatment$weights) / wt.var(control$distance, control$weights)