我通过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])
或者我是否必须以某种方式考虑地层和阶层的权重?
非常感谢你!
答案 0 :(得分:2)
从包的文档中,对值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)