分享

丁香园论坛

 peck82 2019-08-06

例:为了研究恶性胆道梗阻住院患者生存时间的影响因素,从三所医院获得1995-2000年95例住院患者的数据,试用COX回归模型做生存分析。

install.packages("survival")

library(survival)

outsur <- coxph(Surv(time,status)~factor(group)+factor(gender)+age+cost+duration+complica+factor(obstruct)+size+stage+hb+stb+alt+ast+alp+rgt+wbc,data=surdata)

summary(outsur)

cox.zph(outsur)

par(mfrow=c(3, 3))

plot(cox.zph(outsur))

dfbeta <- residuals(outsur, type="dfbeta")

 par(mfrow=c(4, 4))

 for (j in 1:16) {

   plot(dfbeta[, j], ylab=names(coef(outsur))[j])

  abline(h=0, lty=2)

   }

outsur$means(分组作生存曲线时可用)

poutsur <- survfit(outsur) 

print(poutsur)

     n  events  median 0.95LCL 0.95UCL 

     95      64     180     146     258 

summary(poutsur,times=seq(0,600,50))

install.packages("survminer")

library(survminer)

ggsurvplot(survfit(outsur),color = "#2E9FDF",surv.median.line = "hv",ggtheme = theme_minimal())

计算C statistic的几种方法:

方法1:

c_index <- summary(outsur)$concordance

c_index

       C                   se(C) 

0.76378897    0.04320431 

95%可信区间可通过(C-1.96*se,C+1.96*se)计算, 结果为95%CI(0.6791086,0.8484694)

方法2:

survConcordance( Surv(time,status)~predict(outsur) ,data=surdata)

方法3:

source("http:///biocLite.R")

biocLite("survcomp")

library(survcomp)

cindex <- concordance.index(predict(outsur),surv.time = surdata$time,surv.event = surdata$status,method="noether")

cindex$c.index; cindex$lower; cindex$upper

[1] 0.7635488

[1] 0.7070965

[1] 0.8200011

不同COX回归模型C statistic比较:

cindex1 <- concordance.index(predict(outsur1),surv.time = surdata$time,surv.event = surdata$status,method="noether")

cindex.comp(cindex,cindex1)

$p.value

[1] 0.005853815

$cindex1

[1] 0.7635488

$cindex2

[1] 0.7085508

       扫瞄二维码关注医学统计与R语言公众号

                                                   

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多