【问题标题】:Stratification on the propensity score: How can I calculate the variance ratio?倾向得分的分层:如何计算方差比?
【发布时间】:2015-01-24 19:06:28
【问题描述】:

我通过 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])

或者我是否必须以某种方式考虑地层和地层的权重?

非常感谢您!

【问题讨论】:

  • 这似乎更像是对统计建议的请求。也许您可以包含一个页面链接,该页面描述如果您希望这是一个特定的编码,那么应该如何计算“方差比”(在判断匹配成功的上下文中可能是什么)应该问题。
  • 匹配后不分层,例如最近邻匹配,方差比的计算如下:比率=方差治疗组/方差控制组。我只是不知道在倾向得分分层的情况下是否以及如何考虑分层和权重。

标签: r


【解决方案1】:

来自包的文档,值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)

【讨论】:

  • 非常感谢!我就这样试过了,效果很好!
猜你喜欢
  • 2011-10-02
  • 1970-01-01
  • 1970-01-01
  • 2015-04-06
  • 1970-01-01
  • 2020-11-27
  • 1970-01-01
相关资源
最近更新 更多