C-index,c指数即一致性指数(index of concordance),用来评价模型的预测能力。c指数是资料所有病人对子中预测结果与实际结果一致的对子所占的比例。它估计了预测结果与实际观察到的结果相一致的概率。c指数的计算方法是:把所研究的资料中的所有研究对象随机地两两组成对子。以生存分析为例,对于一对病人,如果生存时间较长的一位的预测生存时间也长于另一位的预测生存时间,或预测的生存概率高的一位的生存时间长于生存概率低的另一位,则称之为预测结果与实际结果一致。

所谓C-index,英文名全称concordance index,中文里有人翻译成一致性指数,最早是由范德堡大学(Vanderbilt University)生物统计教教授Frank E Harrell Jr 1996年提出,主要用于计算生存分析中的COX模型预测值与真实之间的区分度(discrimination),也称为Harrell's concordance index ;现阶段用的最多的是肿瘤患者预后模型的预测精度。一般评价模型的好坏主要有两个方面,一是模型的拟合优度(Goodness of Fit),常见的评价指标主要有R方,-2logL,AIC,BIC等等;另外一个是模型的预测精度,主要就是模型的真实值与预测值之间的差的大小,均方误差,相对误差等。从临床应用的角度来说,我们更注重后者,即统计建模主要是用于预测,而从C-index的概念大家看出它属于模型评价指标的后者,这一指标比前面提到的几个指标看起来更高大上,一般文献中用的也比较多。换句话说,如果预后模型建好,效果不错,即使不知道如何计算C-index值,报告软件输出结果中的预测误差是相同效果,再添加拟合优度会更能说明效果,这样反而更实用。

C-index本质上是估计了预测结果与实际观察到的结果相一致的概率,即资料所有病人对子中预测结果与实际结果一致的对子所占的比例。有点类似于ROC曲线下面积。

C-index的计算方法是:把所研究的资料中的所有研究对象随机地两两组成对子。以生存分析为例,对于一对病人,如果生存时间较长的一位,其预测生存时间长于生存时间较短的一位,或预测的生存概率高的一位的生存时间长于生存概率低的另一位,则称之为预测结果与实际结果一致。

C-index的计算步骤为:

(1)产生所有的病例配对。若有n个观察个体,则所有的对子数应为Cn2(组合数)?

(2)排除下面两种对子:对子中具有较小观察时间的个体没有达到观察终点及对子中两个个体都没达到观察终点。剩余的为有用对子。

(3)计算有用对子中,预测结果和实际相一致的对子数,即具有较坏预测结果个体的实际观察时间较短。

(4)计算。C=一致对子数/有用对子数。

由上述计算方法可以看出,C-index在0.5-1之间。0.5为完全不一致,说明该模型没有预测作用,1为完全一致,说明该模型预测结果与实际完全一致。在实际应用中,很难找到完全一致的预测模型,既往研究认为,C-index在0.50-0.70为较低准确度:在0.71-0.90之间为中等准确度;而高于0.90则为高准确度。

当C-index检验由同一样本建成的模型时易造成偏倚,因此再采用重抽样技术(Bootstrap)可以几乎无偏倚的检验预测模型的准确度。Bootstrap是非参数统计中一种重要的估计统计量方差进而进行区间估计的统计方法,是现代统计应用较为广泛的一种统计方法。

Bootstrap方法核心思想和基本步骤如下:

(1)采用重抽样技术从原始样本中抽取一定数量的样本,此过程允许重复抽样。

(2)根据抽出的样本计算给定的统计量T。

(3)重复上述N次(一般大于1000),得到N个统计量T。

(4)计算上述N个统计量T的样木方差,得到统计量的方差。

Bootstarap方法只是对单一样本且样本量较小的资料,如果数据集很大可以按照不同的比例将数据集拆分,一部分用于建模一部分用于验证。关于交叉验证(Cross-validation),由于篇幅有限,留作下次探讨。

R软件实现:

C-index的R软件计算实现有两种实现方法,一种是用到Harrell本人的的R包Hmisc package;另一种是Le Kang, Weijie Chen 2014年12月18日发布的R compareC Package;

############################

#### Method 1.Hmisc code ###

############################

data

library(Hmisc) ###加载Hmisc包,前提是安装了,如果没有安装,请百度如果安装R package,这里就不详细讲了!

library(survival)###加载survival包,主要用于建立模型###

f

fp

cindex.orig=1-rcorr.cens(fp,Surv(time,death)) [[1]]###计算出的C-index

###############################

#### Method 2.compareC code ###

###############################

data

library(compareC) ###加载compareC包,前提是安装了,如果没有安装,请百度如果安装R package,这里就不详细讲了!

library(survival) ###加载survival包,主要用于建立模型###

cindex Surv(time,death) ~ x1+x2+x3,data=survivldata)###计算出的C-index

###############################

#### Bootstrap code ###

###############################

bootit=200for(i in 1:bootit){case=noNA[group=="long",]control=noNA[group=="<24",]bootindex.case=sample(1:nrow(case),replace=T)boot.case.data=case[bootindex.case,]bootindex.control=sample(1:nrow(control),replace=T)boot.control.data=control[bootindex.control,]boot.data=rbind(boot.case.data,boot.control.data)dstr.boot=svydesign(id=~1, prob=~inv_weight, fpc=~ssize, data=boot.data)boot.fit=svycoxph(Surv(survival,surv_cens) ~x1+x2+x3,data=boot.data,x=TRUE,design=dstr.boot)cindex.train=1-rcorr.cens(lp.boot,Surv(boot.data$survival, boot.data$surv_cens))[[1]]cindex.test=1-rcorr.cens(lp_=.test,Surv(noNA$survival,noNA$surv_cens))[[1]]bias=rep(1,bootit)bias[i]=abs(cindex.train-cindex.test) }

参考文献:

Harrell FE, Califf RM, Pryor DB, Lee KL, and Rosati RA. (1982) Evaluating the yield of medical

tests. The Journal of the American Medical Association, 247(18), 2543–2546

Pencina MJ and D’Agostino RB. (2004) Overall C as a measure of discrimination in survival analysis:

model specific population value and confidence interval estimation. Statistics in Medicine,

23(13), 2109–2123

Kang L, Chen W, Petrick NA, and Gallas BD. (2014) Comparing two correlated C indices with

right-censored survival outcome: a one-shot nonparametric approach. Statistics in Medicine, 34(4),

685–703, doi: 10.1002/sim.6370

作者:MedSci 来源:MedSci原创

版权声明:

本网站所有注明“来源:梅斯医学”或“来源:MedSci原创”的文字、图片和音视频资料,版权均属于梅斯医学所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:梅斯医学”。本网所有转载文章系出于传递更多信息之目的,且明确注明来源和作者,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。同时转载内容不代表本站立场。

在此留言

R语言C指数,如何在R软件中求一致性指数( Harrell concordance index:C-index)?相关推荐

  1. R语言C指数,在R中求一致性指数( Harrell'concordance index:C-index)案例

    什么是一致性指数? C-index,英文名全称concordance index,中文里有人翻译成一致性指数,最早是由范德堡大学(Vanderbilt University)生物统计教教授Frank ...

  2. r语言 c长度,如何在R中设置C堆栈的大小?

    我遇到了类似的情况,在我的情况下,我可以通过设置launchctl限制来增加C Stack的大小. 在设置launchctl限制之前: > Cstack_info() size current ...

  3. R语言时间序列(time series)分析实战:简单指数平滑法预测

    R语言时间序列(time series)分析实战:简单指数平滑法预测 目录

  4. 零基础自学R语言 1 R语言介绍 1.4 基本R软件的用法

    零基础自学R语言 文章目录 零基础自学R语言 1 R语言介绍 1.4 基本R软件的用法 1.4.1 基本运行 1.4.2 项目目录 1 R语言介绍 1.4 基本R软件的用法 1.4.1 基本运行 在M ...

  5. r语言和python-Python和R语言的区别_Python与R的区别和联系

    Python和R语言的区别_Python与R的区别和联系 可能问这个问题会很无脑,但是我还没有深入接触过Python,只是用过R语言.谁能帮我解答一下,这两者的主要区别呢?是否存在代替关系呢? 精彩解 ...

  6. 使用R语言的正确姿势,R包干货奉献

    生物信息学习的正确姿势 NGS系列文章包括NGS基础.在线绘图.转录组分析 (Nature重磅综述|关于RNA-seq你想知道的全在这).ChIP-seq分析 (ChIP-seq基本分析流程).单细胞 ...

  7. Mac版R语言入门(一)R语言入门操作

    文章更新于2023年1月29日: 视频教程--微信公众号:R语言数据分析与实践                      bilibili: R语言数据分析与实践 CSDN:ZhenniLi 第一集: ...

  8. r语言remarkdown展示图_Markdown + R

    Markdown + R 科技写作与Markdown+R 科技写作会碰到什么难题? 如果你是纯文科生,写的都是豆瓣小酸文或者诗歌之类的,那么,看完上面这一部分就可以打住了.如果你还有写科技论文的需要, ...

  9. R语言ggplot2可视化:使用ggfortyify包中的autoplot函数自动可视化时间序列数据(Time Series Plot From a Time Series Object (ts))

    R语言ggplot2可视化:使用ggfortyify包中的autoplot函数自动可视化时间序列数据(Time Series Plot From a Time Series Object (ts)) ...

最新文章

  1. Distance metric learning
  2. ML之LiR:利用LiR线性回归算法(自定义目标函数MSE和优化器GD)对Boston房价数据集(两特征+归一化)进行回归预测
  3. python dict遍历_Python学习笔记:19个pythonic编程习惯,让你的Python入门更优雅
  4. system.img解包打包工具_好程序员云计算学习路线分享文件打包及压缩
  5. (转载)grep的使用
  6. DHTMLX 前端框架 建立你的一个应用程序教程(二)--设置布局
  7. 容联雷辉:视频系统由标清进入到移动高清时代
  8. 计算机与数字媒体专业概论
  9. 网页调用OCX控件总结
  10. Graph Neural Network(GAE,GVAE,ARGA)
  11. 期权、期货及其他衍生产品 第一章 课程笔记整理
  12. Android涂鸦简单制作
  13. 手机里舍不得删的48条短信
  14. 电影天堂,批量下载,简单实现
  15. 频数直方图的步骤_把握步骤 正确绘制频数分布直方图
  16. NLP——李宏毅课程笔记
  17. 暑期实习Day7---SpringMVC
  18. 为什么要使用MonoRail?
  19. 具有完全权限的管理员”的功能介绍
  20. 3年内被辞退5次,35岁程序员该何去何从?太厉害了!

热门文章

  1. 上微信 找不到服务器,【微信连接不上服务器】微信连接不上服务器怎么办?...
  2. docker健康检查
  3. PPT卡死了?只需要这几个小技巧,瞬间帮你提速!
  4. 向企业微信发送文字、图片的接口【亲测有效】
  5. Windows 2008 R2、2012 R2 磁盘扩容、新加磁盘
  6. 主动降噪耳机哪个牌子性价比最高?千元内主动降噪耳机推荐
  7. 伤寒论(太阳病笔记)——学习笔记,更待前辈指点
  8. unity ShaderLab 基础之【像素混合Blend】Blend命令详解 shaderLab blend blendOp透明度颜色混合
  9. 文末送书丨深度解读,人是如何在一瞬间理解语言的?
  10. Tarena - 关联查询