R語言機器學習與臨床預(yù)測模型26--綜合判別改善指數(shù)

本內(nèi)容為【科研私家菜】R語言機器學習與臨床預(yù)測模型系列課程

R小鹽準備介紹R語言機器學習與預(yù)測模型的學習筆記

你想要的R語言學習資料都在這里积担, 快來收藏關(guān)注【科研私家菜】


01 什么是綜合判別改善指數(shù)暑劝?

綜合判別改善指數(shù)(Integrated Discrimination Improvement, IDI)。這個指標也用于判斷預(yù)測模型改善情況透典,與上一講的凈重新分類指數(shù)(NRI)有類似也有不同。
IDI是由Pencina等人于2008年提出的一個非常新的判別指標。由于它考慮了不同切點的情況板辽,可以用來反映模型的整體改善狀況巷挥,在一定程度上補齊了NRI的短板桩卵。同時,雖然AUC也考慮到了不同切點倍宾,但是AUC的改善情況在臨床中不易解釋雏节,IDI也因此彌補了AUC的缺陷,可以形象地展示研究對象被準確重新判別的比例高职。
因此钩乍,當我們在進行2個疾病模型比較,或者2個指標診斷效能比較時怔锌,除了傳統(tǒng)的ROC曲線及其AUC寥粹,也可以同時給出NRI和IDI变过,更加全面多層次的展示模型的改善情況。

02 IDI計算公式

IDI的計算其實也比較簡單涝涤,它反映的是兩個模型預(yù)測概率差距上的變化媚狰,因此是基于疾病模型對每個個體的預(yù)測概率計算所得。它的計算方法為:



其中Pnew,events阔拳、Pold,events表示在患者組中崭孤,新模型和舊模型對于每個個體預(yù)測疾病發(fā)生概率的平均值,兩者相減表示預(yù)測概率提高的變化量衫生,對于患者來說裳瘪,預(yù)測患病的概率越高,模型越準確罪针,因此差值越大則提示新模型越好彭羹。

在模型比較時,將兩部分相減即可得到IDI泪酱,總體來說IDI越大派殷,則提示新模型預(yù)測能力越好。與NRI類似墓阀,若IDI>0毡惜,則為正改善,說明新模型比舊模型的預(yù)測能力有所改善斯撮,若IDI<0经伙,則為負改善,新模型預(yù)測能力下降勿锅,若IDI=0帕膜,則認為新模型沒有改善。

我們可以通過計算Z統(tǒng)計量溢十,來判斷IDI與0相比是否具有統(tǒng)計學顯著性垮刹,統(tǒng)計量Z近似服從正態(tài)分布,公式如下:


02 二分類變量R語言實現(xiàn)

示例數(shù)據(jù)來自于survival包里自帶的一份梅奧診所的數(shù)據(jù)张弛,記錄了418位患者的臨床指標與原發(fā)性膽汁性肝硬化(PBC)的關(guān)系荒典。其中前312個患者來自于RCT研究,其他患者來自于隊列研究吞鸭。我們用前312例患者的數(shù)據(jù)來預(yù)測2000天時間點上是否發(fā)生死亡寺董。此處需要說明的是原始數(shù)據(jù)是一個生存數(shù)據(jù),我們重新定義一個二分類的結(jié)局瞒大,死亡or 存活螃征,不考慮時間因素。先載入這份數(shù)據(jù)透敌,如圖4.所示盯滚。這個表中的結(jié)局變量是status踢械,0 = 截尾(刪失),1 = 接受肝移植魄藕,2 = 死亡内列。膽我們的研究目的“死亡與否”是個二分類變量,所以要做變量變換背率。再看time一欄话瞧,有的不夠2000天,這些樣本要么是沒到2000天就死亡了寝姿,要么是刪失了交排。我們要刪掉2000天內(nèi)刪失的數(shù)據(jù)。

##hereconsider pbc dataset in survival package as an example

library(survival)

dat=pbc[1:312,]

dat$sex=ifelse(dat$sex==''f'',1,0)

##subjectscensored before 2000 days are excluded

dat=dat[dat$time>2000|(dat$time<2000&dat$status==2),]

##predcitingthe event of ''death'' before 2000 days

event=ifelse(dat$time<2000&dat$status==2,1,0)

##standardprediction model: age, bilirubin, and albumin

z.std=as.matrix(subset(dat,select=c(age,bili,albumin)))

##newprediction model: age, bilirubin, albumin, and protime

z.new=as.matrix(subset(dat,select=c(age,bili,albumin,protime)))

##glmfit (logistic model)

mstd=glm(event~.,binomial(logit),data.frame(event,z.std),x=TRUE)

mnew=glm(event~.,binomial(logit),data.frame(event,z.new),x=TRUE)

##UsingPredictABEL package

library(PredictABEL)

pstd<-mstd$fitted.values

pnew<-mnew$fitted.values

##用cbind函數(shù)把前面定義的event變量加入數(shù)據(jù)集饵筑,并定義為dat_new

dat_new=cbind(dat,event)

##計算NRI,同時報告了IDI,IDI計算與cutoff點設(shè)置無關(guān)埃篓。

##cOutcome指定結(jié)局變量的列序號

##predrisk1,predrisk2為新舊logistic回歸模型

reclassification(data=dat_new,cOutcome=21,

                 predrisk1=pstd,predrisk2=pnew,

                 cutoff=c(0,0.2,0.4,1))
# 計算的IDI為0.44%,說明新模型較舊模型預(yù)測能力僅改善0.44%根资。

03 生存資料模型

生存資料的NRI與分類結(jié)局的NRI差別在于前者需要構(gòu)建Cox回歸模型架专,所以我們首先構(gòu)建新舊Cox回歸模型,計算這兩個模型的NRI.

##here consider pbc dataset in survival package as an example

library(survival)

dat=pbc[1:312,]

dat$time=as.numeric(dat$time)

##定義生存結(jié)局

dat$status=ifelse(dat$status==2,1, 0)

##定義時間點

t0=365*5

##基礎(chǔ)回歸模型

indata0=as.matrix(subset(dat,select=c(time,status,age,bili,albumin)))

##增加1個預(yù)測變量新模型

indata1=as.matrix(subset(dat,select=c(time,status,age,bili,albumin,protime)))

##舊模型中預(yù)測變量矩陣

covs0<-as.matrix(indata0[,c(-1,-2)])

關(guān)注R小鹽玄帕,關(guān)注科研私家菜(VX_GZH: SciPrivate)部脚,有問題請聯(lián)系R小鹽。讓我們一起來學習 R語言機器學習與臨床預(yù)測模型

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末裤纹,一起剝皮案震驚了整個濱河市委刘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鹰椒,老刑警劉巖钱雷,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異吹零,居然都是意外死亡,警方通過查閱死者的電腦和手機拉庵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門灿椅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人钞支,你說我怎么就攤上這事茫蛹。” “怎么了烁挟?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵婴洼,是天一觀的道長。 經(jīng)常有香客問我撼嗓,道長柬采,這世上最難降的妖魔是什么欢唾? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮粉捻,結(jié)果婚禮上礁遣,老公的妹妹穿的比我還像新娘。我一直安慰自己肩刃,他們只是感情好祟霍,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著盈包,像睡著了一般沸呐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上呢燥,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天崭添,我揣著相機與錄音,去河邊找鬼疮茄。 笑死滥朱,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的力试。 我是一名探鬼主播徙邻,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼畸裳!你這毒婦竟也來了缰犁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤怖糊,失蹤者是張志新(化名)和其女友劉穎帅容,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體伍伤,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡并徘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了扰魂。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片麦乞。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖劝评,靈堂內(nèi)的尸體忽然破棺而出姐直,到底是詐尸還是另有隱情,我是刑警寧澤蒋畜,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布声畏,位于F島的核電站,受9級特大地震影響姻成,放射性物質(zhì)發(fā)生泄漏插龄。R本人自食惡果不足惜愿棋,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望辫狼。 院中可真熱鬧初斑,春花似錦、人聲如沸膨处。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽真椿。三九已至鹃答,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間突硝,已是汗流浹背测摔。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留解恰,地道東北人锋八。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像护盈,于是被迫代替她去往敵國和親挟纱。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內(nèi)容