案例研究“精确”匹配,具有重叠的时间间隔R

问题描述 投票:4回答:1

我想在考虑时间间隔的同时执行案例对照匹配。如果控制观测值对自变量X1,X2具有相同的值,并且时间间隔X3与情况重叠,则需要匹配。

例如,假设以下df1:

Y   X1    X2                  X3
1   44   1978   2017-01-01 UTC--2019-01-01 UTC
0   44   1978   2014-01-01 UTC--2015-01-01 UTC
0   44   1978   2018-01-01 UTC--2020-01-01 UTC
0   45   1978   2018-01-01 UTC--2020-01-01 UTC

使用以下代码创建:

library(lubridate)
library(MatchIt)

df1 <- data.frame(Y = c(1,0,0, 0), X1 = c(44,44,44, 45), X2 = c(1978, 1978, 1978, 1978), X3 = c(interval(ymd(20170101), ymd(20190101)), interval(ymd(20140101), ymd(20150101)), interval(ymd(20180101), ymd(20200101)), interval(ymd(20180101), ymd(20200101))))

matchit(Y ~ X1 + X2 + X3, data = df1,  method = "exact")

#Error in weights.subclass(psclass, treat) : No units were matched

我想要第一行和第三行之间的匹配项

有可能吗?

提前感谢

r lubridate case-study
1个回答
0
投票

您可以使用间隔的intersect创建一个新列。

df1$X3i <- intersect(df1$X3, df1$X3)

matchit(Y ~ X1 + X2 + X3i, data = df1,  method = "exact")
# Call: 
#   matchit(formula = Y ~ X1 + X2 + X3i, data = df1, method = "exact")
# 
# Exact Subclasses: 1
# 
# Sample sizes:
#   Control Treated
# All             3       1
# Matched         2       1
# Unmatched       1       0
© www.soinside.com 2019 - 2024. All rights reserved.