R 时间相关协变量Cox模型的C统计量和95%置信区间

R 时间相关协变量Cox模型的C统计量和95%置信区间,r,cox-regression,R,Cox Regression,我正在使用时间相关协变量进行Cox回归。我特别感兴趣的是计算一致性指数的95%置信区间。然而,coxph模型的标准摘要仅返回一致性指数及其标准误差。是否也有可能获得95%置信区间 谢谢 library(survival) temp <- subset(pbc, id <= 312, select=c(id:sex, stage)) pbc2 <- tmerge(temp, temp, id=id, death = event(time, status)) #set range

我正在使用时间相关协变量进行Cox回归。我特别感兴趣的是计算一致性指数的95%置信区间。然而,coxph模型的标准摘要仅返回一致性指数及其标准误差。是否也有可能获得95%置信区间

谢谢

library(survival)

temp <- subset(pbc, id <= 312, select=c(id:sex, stage))
pbc2 <- tmerge(temp, temp, id=id, death = event(time, status)) #set range
pbc2 <- tmerge(pbc2, pbcseq, id=id, ascites = tdc(day, ascites),
bili = tdc(day, bili), albumin = tdc(day, albumin),
protime = tdc(day, protime), alk.phos = tdc(day, alk.phos))
fit2 <- coxph(Surv(tstart, tstop, death==2) ~ log(bili) + log(protime), pbc2)

summary(fit2)

coxph(formula = Surv(tstart, tstop, death == 2) ~ log(bili) + 
    log(protime), data = pbc2)

  n= 1807, number of events= 125 

                 coef exp(coef) se(coef)      z Pr(>|z|)    
log(bili)     1.24121   3.45981  0.09697 12.800   <2e-16 ***
log(protime)  3.98340  53.69929  0.43589  9.139   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

             exp(coef) exp(-coef) lower .95 upper .95
log(bili)         3.46    0.28903     2.861     4.184
log(protime)     53.70    0.01862    22.853   126.181

**Concordance= 0.886  (se = 0.029 )**
Rsquare= 0.168   (max possible= 0.508 )
Likelihood ratio test= 332.1  on 2 df,   p=<2e-16
Wald test            = 263.3  on 2 df,   p=<2e-16
Score (logrank) test = 467.8  on 2 df,   p=<2e-16
使用RMS包中的验证函数,使用引导获得C索引的95%CI是否有意义?我想出了以下代码。你怎么认为?但是,我不确定如何正确处理来自训练/测试列的Dxy值。训练列的CI对我来说似乎没问题,而测试列的CI看起来很窄

library(survival)
library(rms)
library(tidyboot)

temp <- subset(pbc, id <= 312, select=c(id:sex, stage))
pbc2 <- tmerge(temp, temp, id=id, death = event(time, status)) #set range
pbc2 <- tmerge(pbc2, pbcseq, id=id, ascites = tdc(day, ascites),
bili = tdc(day, bili), albumin = tdc(day, albumin),
protime = tdc(day, protime), alk.phos = tdc(day, alk.phos))
fit2 <- cph(Surv(tstart, tstop, death==2) ~ log(bili) + log(protime), pbc2, x=T, y=T, surv=T)
set.seed(1)
output <- capture.output(validate(fit2, method="boot", B=1000, dxy=T, pr =T))
head(output)
output <- as.matrix(output)
output_dxy <- as.matrix(output[grep('^Dxy', output[,1]),])
output_dxy <- gsub("(?<=[\\s])\\s*|^\\s+|\\s+$", "", output_dxy, perl=TRUE)
train <- abs(as.numeric(lapply(strsplit(output_dxy, split=" "), "[", 2))[1:1000])/2+0.5
test <- abs(as.numeric(lapply(strsplit(output_dxy, split=" "), "[", 3))[1:1000])/2+0.5
summary(train)
summary(test)
ci_lower(train, na.rm = FALSE)
ci_upper(train, na.rm = FALSE)
ci_lower(test, na.rm = FALSE)
ci_upper(test, na.rm = FALSE)

另一方面,log-bili和log-protime中的关系不太可能是线性的。保证日志中的样条函数

在使用一致性概率估计值0.886之前,您需要从R生存包中验证

该估计旨在处理时间相关的协变量 标准误差解释了估计两个回归系数的不确定性
如果这两个条件都满足,可以使用+-1.96 se获得c指数的大致0.95置信区间

非常感谢。带有对数协变量的示例只是由于从vignette中复制和粘贴。在我自己的数据集中,我不使用对数协变量。粗略的0.95 CI和1.96se似乎是一个很好的解决方案,可能足以满足我的应用程序。