我使用MatchIt根据倾向性分数进行匹配,然后检查标准化差异。我试图手动计算一些匹配变量的标准化差,但我得到的结果与模型的输出不同。
#run the model
ps<-matchit(y ~ ., data=mydata, method = "nearest", distance = "logit")
#store the results as a data frame
comp <- as.data.frame(summary(ps, standardize = TRUE)["sum.matched"])
#print the results
comp[, "sum.matched.Std..Mean.Diff." , drop=FALSE]
我这里的问题是:有人知道matchIt包中使用的手动计算标准化差的公式吗?我对均值和比例的标准化差的公式感兴趣(它们是不同的吗?也许这就是为什么)
发布于 2016-03-15 03:05:31
我也有同样的问题,我认为MatchIt使用的公式与最常用的公式不同。
根据Ho等人的文章(http://imai.princeton.edu/research/files/matchit.pdf),“标准化=真选项将打印出平衡测量的标准化版本,其中平均差被原始处理组中的标准差标准化(除以)。”
因此,包的公式中的分母应该是s(已处理),而不是s(已处理)^2+s(控制)^2的平方根。
发布于 2018-07-23 08:46:27
我根据数据中的变量类型使用了以下公式:使用stddiff包。
SD1<- stddiff.numeric(data = Edrees, gcol = 1, vcol = ,2:4)
SD2<- stddiff.binary(data= Edrees, gcol = 1 , vcol = 6)
SD3<- stddiff.category(data = Edrees, gcol = 1, vcol = 7)
https://stackoverflow.com/questions/29246341
复制相似问题