首先:这个问题可能是这个stackoverflow帖子的重复/已经解决的问题。
我想使用该MatchIt
包使用马氏距离在我的数据集中执行完全阻塞匹配。我有两个要用于匹配的观察到的协变量(年龄和性别)。
我知道我可以使用以下参数执行基于 mahalanobis 的匹配:
formula <- as.formula("group ~ sex_boolean + age")
m.out <- matchit(formula=formula,
data=data_df,
distance='mahalanobis')
site_df_matched <- get_matches(m.out,data=data_df)
但这仅使用最近邻执行基于马氏的匹配。如果我想更严格怎么办?是否可以在马氏匹配中引入卡尺?想法如下:对于少数群体中的每个单元,在多数群体中找到一个马氏距离最小且位于定义的 caliper 内的单元。如果多数群体中没有单位,则应丢弃少数群体中的相应单位。
结果应该是大小相等的治疗组和对照组,其中包含在各自协变量中接近的单位对。“接近度”应该可以通过卡尺设置的严格程度来控制。更严格的卡尺会导致更多的少数群体被丢弃。
也许我对基于 mahalanobis 的匹配过程也有错误的理解,但是否可以(并推荐)这样做MatchIt
?