如何在Cox回归中将3个治疗组与倾向得分匹配

时间:2020-04-19 19:02:15

标签: r matching cox-regression multinomial propensity-score-matching

我不久前开始使用R,如果您需要一些时间来理解您的答案,我深表歉意。 我正在尝试按倾向评分来匹配患者。我有3个“治疗”组-AKI组,AKR组和无肾功能不全组,该变量在我的数据中名为“ kidney_groups”。我想评估这个变量是否通过Cox回归预测了一年内的死亡(还有另外两个我不想匹配的变量)。我想通过变量STSscoremortality和GFR_mdrd_epi计算每个患者的倾向得分。 我使用了2个不同的代码来计算倾向得分,但我不确定下一步需要做什么,以便可以匹配我的患者并在cox回归中使用匹配的数据。 我使用的第一个代码:

#######makepropensity score data###############

## Function to add generalized PS to dataset
AddGPS <- function(data, formula, family = multinomial(), psPrefix = "PS_") {

## Fit multinomial logistic regression
  resVglm <- vglm(formula = formula, data = data, family = family)

 ## Calculate PS
  psData <- as.data.frame(predict(resVglm, type = "response"))
  names(psData) <- paste0(psPrefix, names(psData))
  cbind(data, psData)
}

 zTavi<-AddGPS(data = fTavi, # dataset
                   ## Propensity score model for multinomial regression
              formula = fTavi$kidney_groups ~ fTavi$GFR_mdrd_EPI+fTavi$STSscoremortality)

在这段代码中,我获得了3个新变量:每个治疗组的PS_1,PS_2,PS_3-倾向得分

在第二个代码中,我使用了trimatch软件包:

 fTavi.tpsa <- trips(fTavi, fTavi$kidney_groups, formu)

 fTavi.matched.caliper <- trimatch(fTavi.tpsa, method=NULL)
 summary(unmatched(fTavi.matched.caliper))


 matched.out <- merge( fTavi.matched.caliper , fTavi$death1Y)

但是从第二个代码中,我得到了具有11050行的怪异数据(尽管我的原始数据只有1328行,只有大约650个匹配数据):

dim(fTavi.matched.caliper) [1] 11050 7

谢谢

0 个答案:

没有答案