我不久前开始使用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
谢谢