R包MatchIt错误汇总输出

标签 r matching summary

我正在通过 MatchIt 包运行粗化精确匹配 (CEM) 作为预处理步骤,并希望在进一步分析中使用匹配的数据。在查看匹配数据的摘要统计数据时,我注意到从匹配数据集中提取的平均值与 MatchIt 摘要输出不同。例如,使用 lalonde 数据集:

library(MatchIt)
library(doBy)
data(lalonde)

m.out <- matchit(treat ~ age + educ + black + hispan + married + nodegree + re74 + re75, data = lalonde, method = "cem")
summary(m.out)   #Means from MatchIt summary output:

Summary of balance for matched data: 

             Means Treated   Means Control 
 age         21.5441         21.1781 
 educ        10.2941         10.3827 
 black       0.8676          0.8676 
 hispan      0.0588          0.0588 
 married     0.0441          0.0441 
 nodegree    0.6176          0.6176 
 re74        456.1345        622.8740 
 re75        350.6728        520.7135 

m.dat<-match.data(m.out)
ExtractedMeans<-summaryBy(age+educ+black+hispan+married+nodegree+re74+re75 ~ treat, data = m.dat, FUN=function(x) { c(Mean=mean(x)) } )
ExtractedMeans   #Means extracted manually from matched data:

treat         1          0 
age.Mean      21.544    19.628 
educ.Mean     10.294     9.7179 
black.Mean    0.8676    0.60256 
hispan.Mean   0.0588    0.10256 
married.Mean  0.0441    0.07692 
nodegree.Mean 0.6176    0.75641 
re74.Mean     456.13    609.61 
re75.Mean     350.67    464.22 

从匹配数据中手动提取的对照组均值与 MatchIt 摘要输出不一致。有人知道这是怎么回事吗?我上周将这个问题发布到 MatchIt gmane 电子邮件列表中,但尚未收到回复。感谢您的帮助。

最佳答案

“doSummary”函数未使用权重。如果将权重乘以要平均的变量,您将得到与包显示的平均值相同的平均值。例如,使用您的代码并执行以下操作:

> tapply(m.dat$age, m.dat$treat, mean)
       0        1 
19.62821 21.54412

> tapply(m.dat$age*m.dat$weights, m.dat$treat, mean)
       0        1 
21.17811 21.54412

因此,它们与 MatchIt 结果相同...

关于R包MatchIt错误汇总输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21192982/

相关文章:

r - 如果R中数据帧为空,如何编写if/else语句

r - 循环遍历 R 中的数据帧列表并应用 if else 函数

r - 模糊与精确匹配相结合

opencv - OpenCV:如何使用AffineTransformer

python - 在 Python 中总结 2 级嵌套字典

r - 汇总一个向量,然后将汇总统计信息附加到 R 中的原始数据帧

python - python中使用statsmodels错误的逻辑回归

r - 在 dplyr 中使用 mutate_all 格式化所有列

R ggplot : How can I create conditional labeling for a continuous axis ticks

r - MatchIT 中标准化差异的公式?