R中具有特定行的PSM

PSM in R with specific lines

为了通过 PSM(“Matchit”-Package and Method = full)获得匹配对,我需要为我的纵向数据框指定我的命令。每个案例都有几个观察结果,但我只需要将每位患者的第一个观察结果包含在匹配中。所以匹配应该基于每个患者的第一次观察,但我后来的分析应该包括每个患者的完整数据集和所有观察结果。

有人知道如何实现吗?

我尝试使用数据子集(每位患者的第一次观察),但无法使用“Match.data”获得包含在数据集中的匹配(每位患者的所有观察)。

提前致谢 西蒙(拼命写硕士论文)

我的理解是,您只想在第一个时间点创建匹配项,但要在所有时间点为每个单元标识这些匹配项。幸运的是,这非常简单:只需在第一个时间点执行匹配,然后将匹配的数据集与完整数据集合并。这可能是这样的。假设您的原始长数据集是 d 并且有一个 ID 列 id 和一个时间列 time.

m <- matchit(treat ~ X1 + X2, data = subset(d, time == 1), method = "full")
md1 <- match.data(m)
d <- merge(d, md1[c("id", "subclass", "weights")], by = "id", all.x = TRUE)

您的新数据集应该有两个新列,subclassweights,其中包含每个单元的匹配子类和匹配权重。具有相同 ID 的行(即在多个时间点对应于同一单元的行)将具有相同的值 subclassweight.