代码+视频,R语言使用BOOT重抽样获取cox回归方程C-index(C指数)可信区间

bootstrap自采样目前广泛应用与统计学中,其原理很简单就是通过自身原始数据抽取一定量的样本(也就是取子集),通过对抽取的样本进行统计学分析,然后继续重新抽取样本进行分析,不断的重复这一过程N(大于500次以上)次,然后得到N个统计结果,然后进行区间分析,得到最终结果。

上一章我们简单介绍了BOOT重抽样获取回归方程系数95%可信区间,可能大家对BOOT重抽样的用处感觉还不是很明显。BOOT重抽样在我们统计中处理数据还是很有用的,本期我们来介绍一下怎么使用BOOT重抽样获取cox回归方程C-index(C指数)可信区间,这也是一个粉丝向我问的问题,我觉得蛮有典型性和实用性的,因此就拿出来讲讲。首先我们看看什么是C-index(C指数),C-index,C指数即一致性指数(concordance index),用来评价模型的预测能力。c指数是指所有病人对子中预测结果与实际结果一致的对子所占的比例。我们在既往的文章《手把手教你使用R语言建立COX回归并画出列线图(Nomogram)》中已经介绍了怎么计算C指数,今天我们继续以原来文章的数据和方法为例进行视频演示。

R语言使用BOOT重抽样获取cox回归方程C-index(C指数)可信区间

代码

r 复制代码
library(survival)
library(rms)
library(boot)
bc<-cancer
bc <- na.omit(bc)
# inst: 机构代码,time: 以天为单位的生存时间,status: 状态:审查状态 1=审查,2=死亡,
# age: 年龄,sex: 男=1 女=2,ph.ecog:由医师评定的 ECOG 表现评分。
# ph.karno:由医师评定的 Karnofsky 表现评分(差=0-好=100),pat.karno:由患者评定的 Karnofsky 性能评分
# ,meal.cal:用餐时消耗的卡路里,wt.loss:过去六个月的体重减轻
bc$sex<-as.factor(bc$sex)

f <- cph(Surv(time, status) ~ age + sex + ph.ecog + pat.karno +wt.loss, 
         x=T, y=T, surv=T, data=bc)

rcorrcens(Surv(time, status) ~ predict(f), data = bc)

#C.index
C.index=1-0.344

##粉丝提供的
c_index <- function(formula, data, indices) {
  tran.data <- data[indices,]
  vali.data <- data[-indices,]
  fit <- coxph(formula, data=tran.data)
  result<-survConcordance(Surv(vali.data$time,vali.data$death)~predict(fit,vali.data))
  index<-as.numeric(result$concordance)
  return(index)
}

##我改良的
c_index <- function(data,indices){
  dat <- data[indices,]
  fit<- cph(Surv(time, status) ~ age + sex + ph.ecog + pat.karno +wt.loss, 
            x=T, y=T, surv=T, data=bc)
  pr1<-predict(fit,newdata=dat)
  Cindex=rcorrcens(Surv(time, status) ~ pr1, data =dat)[1]
  Cindex=1-Cindex
  Cindex 
}

#调试一下
c_index(bc,1:100)

###
results <- boot(data=bc, statistic=c_index, R=500)

#如果你想查看每个抽样的结果
results$t

##抽样分布
plot(results)

#计算可信区间
boot.ci(results,conf = 0.95)
#( 0.5977,  0.7104 ) 
相关推荐
m0_7487080516 分钟前
C++中的观察者模式实战
开发语言·c++·算法
qq_5375626728 分钟前
跨语言调用C++接口
开发语言·c++·算法
wjs202438 分钟前
DOM CDATA
开发语言
Tingjct40 分钟前
【初阶数据结构-二叉树】
c语言·开发语言·数据结构·算法
猷咪1 小时前
C++基础
开发语言·c++
IT·小灰灰1 小时前
30行PHP,利用硅基流动API,网页客服瞬间上线
开发语言·人工智能·aigc·php
快点好好学习吧1 小时前
phpize 依赖 php-config 获取 PHP 信息的庖丁解牛
android·开发语言·php
秦老师Q1 小时前
php入门教程(超详细,一篇就够了!!!)
开发语言·mysql·php·db
烟锁池塘柳01 小时前
解决Google Scholar “We‘re sorry... but your computer or network may be sending automated queries.”的问题
开发语言
是誰萆微了承諾1 小时前
php 对接deepseek
android·开发语言·php