带有特定线路的R PSM



由于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值。

相关内容

  • 没有找到相关文章

最新更新