在 R 包匹配中使用多个卡尺
Using multiple calipers in R package Matching
我正在尝试使用 Matching 包中的 Match 函数来创建基于 4 个变量的匹配数据集。我希望其中两个变量完全匹配,两个在设定范围内。
我有以下代码:
X <- cbind(tmpcomb$sexf, tmpcomb$dobyear, tmpcomb$municipality_code, tmpcomb$first_test)
colnames(X) <- c("sex", "dobyear", "municipality", "test_date")
Tr <- tmpcomb$Tr
#Define caliper for age within 5 years (see package documentation for caliper)
cal_age <- 5/sd(tmpcomb$dobyear)
cal_test_date <- 180/sd(tmpcomb$first_test, na.rm = T)
#match
tmp_matched <- Match(Tr = Tr, X = X, exact = c(0, 1, 0, 1), caliper = c(.001, cal_age, .001, cal_test_date))
summary(tmp_matched)
我希望 sex
和 municipality
准确,dobyear
在 5 年内,first_test
在 180 天内。不过,我相信我为 caliper 编写的内容是不正确的,因为它只是进行精确匹配。有人可以向我解释如何在此设置中使用卡尺,我想我一定做错了什么。谢谢!
通过设置 exact = c(0, 1, 0, 1)
,您请求对 X
中的第二个和第四个变量进行精确匹配,即 dobyear
和 test_date
,并请求精确匹配 不 在 sex
和 municipality
上完成。 dobyear
和 test_date
的卡尺将被忽略,因为您要求对它们进行精确匹配。将 exact
更改为 exact = c(TRUE, FALSE, TRUE, FALSE)
以确保您请求对正确变量的精确匹配。完全匹配的变量的卡尺将被忽略,因此您不需要为它们指定 .001
(即,您可以提供 Inf
并且什么都不会改变)。
我正在尝试使用 Matching 包中的 Match 函数来创建基于 4 个变量的匹配数据集。我希望其中两个变量完全匹配,两个在设定范围内。
我有以下代码:
X <- cbind(tmpcomb$sexf, tmpcomb$dobyear, tmpcomb$municipality_code, tmpcomb$first_test)
colnames(X) <- c("sex", "dobyear", "municipality", "test_date")
Tr <- tmpcomb$Tr
#Define caliper for age within 5 years (see package documentation for caliper)
cal_age <- 5/sd(tmpcomb$dobyear)
cal_test_date <- 180/sd(tmpcomb$first_test, na.rm = T)
#match
tmp_matched <- Match(Tr = Tr, X = X, exact = c(0, 1, 0, 1), caliper = c(.001, cal_age, .001, cal_test_date))
summary(tmp_matched)
我希望 sex
和 municipality
准确,dobyear
在 5 年内,first_test
在 180 天内。不过,我相信我为 caliper 编写的内容是不正确的,因为它只是进行精确匹配。有人可以向我解释如何在此设置中使用卡尺,我想我一定做错了什么。谢谢!
通过设置 exact = c(0, 1, 0, 1)
,您请求对 X
中的第二个和第四个变量进行精确匹配,即 dobyear
和 test_date
,并请求精确匹配 不 在 sex
和 municipality
上完成。 dobyear
和 test_date
的卡尺将被忽略,因为您要求对它们进行精确匹配。将 exact
更改为 exact = c(TRUE, FALSE, TRUE, FALSE)
以确保您请求对正确变量的精确匹配。完全匹配的变量的卡尺将被忽略,因此您不需要为它们指定 .001
(即,您可以提供 Inf
并且什么都不会改变)。