2、C-index計算函數
在不少臨牀文章中常常看見統計方法裏面描述模型的區分能力(Discrimination ability)用C-Statistics來度量,下面咱們就用R語言爲你們演示這個所謂的C-Statistics如何計算?本文先講解Cox迴歸中的C-Statistics (通常稱爲C-index)的計算,Logistic迴歸C-Statistics計算將在後續文章中介紹。嚴格說來C-index包括如下幾種,咱們僅介紹臨牀上較爲經常使用的第一種。blog
1.Harrell’s Cit
2.C-statistic by Begg et al.(survAUC::BeggC)io
3.C-statistic by Uno et al.(survC1::Inf.Cval; survAUC::UnoC)cli
4.Gonen and Heller Concordance Index forCox models (survAUC::GHCI, CPE::phcpe, clinfun::coxphCPE)date
方法1: 直接從survival包的函數coxph結果中輸出,須要R的版本高於2.15.須要提早安裝survival包能夠看出這種方法輸出了C-index (對應模型參數C),也輸出了標準誤,95%可信區間就能夠經過C加減1.96*se獲得。而且這種方法也適用於不少指標聯合。model
方法2: 利用rms包中的cph函數和validate函數,可提供un-adjusted和bias adjusted C指數兩種。方法
代碼及代碼解讀,結果解讀以下:im
> # 模擬一組數據並設置爲數據框結構統計
> 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