模型評價——C-index


 

 

二、C-index計算

    在很多臨床文章中經常看見統計方法里面描述模型的區分能力(Discrimination ability)用C-Statistics來度量,下面我們就用R語言為大家演示這個所謂的C-Statistics如何計算?本文先講解Cox回歸中的C-Statistics (一般稱為C-index)的計算,Logistic回歸C-Statistics計算將在后續文章中介紹。嚴格說來C-index包括以下幾種,我們僅介紹臨床上較為常用的第一種。

1.Harrell’s C

2.C-statistic by Begg et al.(survAUC::BeggC)

3.C-statistic by Uno et al.(survC1::Inf.Cval; survAUC::UnoC)

4.Gonen and Heller Concordance Index forCox models (survAUC::GHCI, CPE::phcpe, clinfun::coxphCPE)

 

方法1: 直接從survival包的函數coxph結果中輸出,需要R的版本高於2.15.需要提前安裝survival包可以看出這種方法輸出了C-index (對應模型參數C),也輸出了標准誤,95%可信區間就可以通過C加減1.96*se得到。並且這種方法也適用於很多指標聯合。

方法2: 利用rms包中的cph函數和validate函數,可提供un-adjusted和bias adjusted C指數兩種。

 

代碼及代碼解讀,結果解讀如下:

> # 模擬一組數據並設置為數據框結構

> age

> bp

> d.time

> cens

> death

> os

> sample.data

> head(sample.data) # 展示數據框sample.data的前6行

 

> # 方法1. {survival}包

> library(survival) # 載入survival包

> fit

> sum.surv

> c_index

> c_index

         C      se(C) 

0.53318557 0.02741619 


> #方法2. {rms}包

> library(rms)

> set.seed(1)  # 這里設置種子,目的是為了能重復最后的結果,因為validate函數的校正結果是隨機的。

> dd

> options(datadist='dd')

> fit.cph

> fit.cph  # 模型參數 Dxy*0.5+0.5 即是c-index

 

> # Get the Dxy

> v

> Dxy = v[rownames(v)=="Dxy", colnames(v)=="index.corrected"]

> orig_Dxy = v[rownames(v)=="Dxy", colnames(v)=="index.orig"]

> # The c-statistic according to Dxy = 2(c-0.5)

> bias_corrected_c_index  

> orig_c_index

> bias_corrected_c_index

[1] 0.5152632

> orig_c_index

[1] 0.5331856

 

來源:http://www.jintiankansha.me/t/iBEg0ZCeDU

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM