r - 具有可变治疗交互作用的每个治疗组的 C 指数
问题描述
我很难计算每个治疗组的C 指数(带有survAUC R 包的UnoC)来评估可变治疗相互作用。
我有一个包含 4 个解释变量 X1、X2、X3、X4 的数据库,如下所示:
> str(data)
'data.frame': 1000 obs. of 7 variables:
$ X1 : num -0.578 0.351 0.759 -0.858 -1.022 ...
$ X2 : num -0.7897 0.0339 -1.608 -1.1642 -0.0787 ...
$ X3 : num -0.1561 -0.7147 -0.8229 -0.1519 -0.0318 ...
$ X4 : num 1.4161 -0.0688 -0.155 -0.1571 -0.649 ...
$ TRT : num 0 0 0 0 0 0 0 1 0 1 ...
$ time: num 6.52 2.15 3 1.31 1.56 ...
$ stat: num 1 1 1 1 1 1 1 1 1 1 ...
变量 X4 与治疗变量相互作用,我没有审查数据。
我想计算每个治疗组的 C 指数 (UnoC)。我预计控制组的 C 指数等于 0.5,而实验组的 C 指数要高得多。 但是,我得到的两条手臂的价值几乎相同!
谁能证实:如果我在变量和治疗之间有很强的交互作用,那么实验组的 C 指数很高,而对照组的 C 指数 = 0.5?
这是我的尝试:
TR <- data[1:500,]
TE <- data[501:1000,]
s <- Surv(TR$time, TR$stat)
sNew <- Surv(TE$time, TE$stat)
train.fit <- coxph(Surv(time, stat) ~ X4, data=TR)
lpnew <- predict(train.fit, newdata=TE)
# The C-index for each treatment arm
UnoC(Surv.rsp = s[TR$TRT == 1], Surv.rsp.new = sNew[TE$TRT == 1], lpnew = lpnew[TE$TRT == 1])
[1] 0.7577109
UnoC(Surv.rsp = s[TR$TRT == 0], Surv.rsp.new = sNew[TE$TRT == 0], lpnew = -lpnew[TE$TRT == 0])
[1] 0.7295202
谢谢您的帮助