例:为了研究恶性胆道梗阻住院患者生存时间的影响因素,从三所医院获得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语言公众号
|
|