Logistic回归模型的C-Index

本文参考相关网络文章,如涉及侵权,请原作者联系本文作者


临床预测模型是临床研究的常用方法,通常我们构建出模型,需要对模型的效能进行评估。为什么要评估呢,其实就是看你建的模型靠不靠谱。其中一个重要指标是区分能力(准确性),也就是区分有病/无病、有效/无效、死亡/存活等结局的预测能力。即通过评估模型预测结果与实际观察结果的符合程度,以评价模型的预测准确性。

区分能力可以用C统计量的大小来表示。

C-index,全称concordance index,也常写作Harrell’s C-index, concordance C,  C statistic等,最早是由范德堡大学生物统计教授Harrell在1996年提出的,主要用于反映各种预测模型的区分能力,考察模型是否进行正确预测。

针对二分类logistic回归模型,C-index可简化为:某疾病病人的预测患病概率大于对照的预测患病概率的可能性。

经过证明,针对二分类logoistic回归的C-index等价于ROC曲线下面积(AUC)。AUC主要反映二分类logistic回归模型的预测能力,但C-index可以评价各种模型预测结果的准确性,可以简单这样理解:C-index是AUC的扩展,AUC是C-index的一种特殊情况。

C-index的定义很是简单,C-index=一致的对子数/有用的对子数本质是计算预测结果与实际结果一致的情况所占的比例。

想象一下将所有研究对象随机的两两配对,n个研究对象,应该产生Cn2=n*(n-1)/2 个对子数,然后在这么多对子中找到有用的对子数作为分母。 

理论上,C-index取值范围是[0.5-1],若预测与实际完全不一致,则C-index = 0.5,也即模型并无比随机好,没啥实际效用。若模型预测结果与实际结果完全一致,则C-index = 1。

构建疾病风险预测模型最常用的是R软件,虽然R可以比较方便的计算Logistic回归模型的C统计量,但遗憾的是C统计量的95%可信区间并未直接给出,而临床预测模型的文章通常需要我们提供这些数据。

有的专家建议可以使用SPSS软件计算曲线下面积AUC的95%可信区间。

补充知识点:对于结局是二分类的回归模型,ROC曲线下面积的值与C指数是一样的,95%可信区间也是一样的。

虽然能解决这个问题,但软件换来换去,还是略显麻烦一些,我们一起来看看如何计算通过R软件计算C统计量的95%可信区间

R软件操作

首先,通过复制粘贴的方法导入数据。

mydata <- read.delim("clipboard")

打包数据:

library(rms)

ddist <- datadist(mydata)

options(datadist="ddist")

构建logistic回归模型:

mylog<-lrm(disease~x+y,data=mydata,x=T,y=T)

计算C指数:

install.packages("Hmisc")

library(Hmisc)

Cindex <- rcorrcens(mydata$disease~predict(mylog))

C统计量=0.919,SD=0.04,

计算C统计量SE的公式为SE=SD/2,

进一步计算C统计量95%可信区间的上限ul和下限dl。

结果显示,C统计量=0.919,95%可信区间为0.880-0.958

你可能感兴趣的:(Logistic回归模型的C-Index)