Hi,大家好,我是晨曦!
這期推文的主題來(lái)自評(píng)論區(qū)小伙伴的提問(wèn),這位小伙伴在構(gòu)建臨床預(yù)測(cè)模型的時(shí)候,審稿人給的回復(fù)是讓其添加臨床決策曲線(DCA)來(lái)評(píng)估構(gòu)建的模型
這位小伙伴在網(wǎng)絡(luò)上搜索了半天的教程仍然是一知半解,所以在評(píng)論區(qū)提出了自己的疑問(wèn),正好晨曦對(duì)這方面的內(nèi)容也很感興趣,所以本期推文的主題,我們就來(lái)看看這個(gè)一直被我們忽視的臨床決策曲線(DCA)
引言
我們?cè)跇?gòu)建預(yù)測(cè)模型的時(shí)候,為了告訴別人我們的模型在性能上是足夠優(yōu)越的,我們往往需要對(duì)我們的模型進(jìn)行評(píng)估,這個(gè)時(shí)候我們常常會(huì)對(duì)模型的區(qū)分度(ROC曲線)和校準(zhǔn)度(擬合優(yōu)度檢驗(yàn)),這其中ROC曲線是被我們使用的最多的,一般在5分以下的文章,往往都只會(huì)提供ROC曲線的結(jié)果,甚至有些文章連Calibration plot都不會(huì)提供,更別提使用更少的DCA曲線了
那么,第一個(gè)問(wèn)題來(lái)了,什么是DCA曲線?
DCA曲線首先是被MSKCC(紀(jì)念斯隆凱特琳癌癥研究所)的AndrewVickers博士等人研究出的一種評(píng)價(jià)方法,并在2006年發(fā)表在Med Decis Making,相較于二戰(zhàn)時(shí)期發(fā)明的ROC,DCA的歷史可謂是足夠的年輕,DCA的出現(xiàn)是為了解決一個(gè)問(wèn)題即這個(gè)模型是否真的值得被使用
總結(jié):DCA(臨床決策曲線)將告訴我們一個(gè)模型是否值得被使用以及如果你有幾個(gè)候選模型,你究竟應(yīng)該選擇哪個(gè)
參考文獻(xiàn)
Decision curve analysis: a novel method for evaluating prediction models
那么,解決了第一個(gè)問(wèn)題,我們繼續(xù)往下探索,為什么頂級(jí)期刊或者說(shuō)是高分雜志都要求臨床研究中有DCA呢?想要弄明白這個(gè)問(wèn)題,我們就需要來(lái)回歸一下DCA的發(fā)展歷程
里程碑一:DCA的誕生(2006年)
文獻(xiàn)總結(jié):傳統(tǒng)的預(yù)測(cè)模型評(píng)價(jià)標(biāo)準(zhǔn),比如ROC,針對(duì)的因變量為二分類變量(生或者死、穩(wěn)定或者復(fù)發(fā)),如果是連續(xù)型數(shù)值變量,那么就需要尋找cutoff以便轉(zhuǎn)化成分類變量(對(duì)于多分類變量也要轉(zhuǎn)化成二分類變量),同時(shí),傳統(tǒng)的決策分析技術(shù)雖然允許對(duì)臨床結(jié)果進(jìn)行評(píng)估,以判斷產(chǎn)生的模型是否值得被使用,但是需要收集額外的信息,而導(dǎo)致這項(xiàng)技術(shù)并不能夠廣泛的應(yīng)用,DCA的開(kāi)發(fā)解決了上述的問(wèn)題,并適用于二分類變量或者連續(xù)型變量且不需要提供額外數(shù)據(jù)就可以幫評(píng)估模型是否值得被使用以及多個(gè)候選模型中哪個(gè)更優(yōu)
晨曦雜談:文獻(xiàn)中的兩個(gè)例子提出了一個(gè)普遍性的原則,即準(zhǔn)確性指標(biāo)如敏感性、特異性和AUC,并不能夠很好的解釋模型所具有的臨床價(jià)值,雖然模型具有更高的AUC可能比一個(gè)較低的AUC更有價(jià)值,但是,從結(jié)果上看,更高AUC的模型可能會(huì)有會(huì)帶來(lái)更為劣質(zhì)的后果
即使DCA曲線有這么多優(yōu)勢(shì),但是這并不認(rèn)為DCA可以取代敏感性、特異性等準(zhǔn)確性衡量標(biāo)準(zhǔn),因?yàn)?,這兩者本身就不是一個(gè)方面的評(píng)價(jià)指標(biāo),所以,到這里,我們可以歸納出模型評(píng)價(jià)的三方面指標(biāo)
1.評(píng)價(jià)模型的區(qū)分度即模型的鑒別能力——ROC
2.評(píng)價(jià)模型的校準(zhǔn)度即模型的準(zhǔn)確性/一致性評(píng)估——擬合優(yōu)度檢驗(yàn)/Calibration curve
3.評(píng)價(jià)模型的臨床實(shí)用性即模式是否值得被使用——DCA
里程碑二:DCA的進(jìn)一步解釋(2009年)
文獻(xiàn)總結(jié):這篇文獻(xiàn)完善了DCA的相關(guān)內(nèi)容,晨曦在這里對(duì)這篇文獻(xiàn)進(jìn)行精讀,以便各位小伙伴可以加深對(duì)DCA的理論了解
首先,我們看下面這個(gè)Figure顯示了決策曲線分析的最基本元素。模型為淺灰色線,金標(biāo)準(zhǔn)測(cè)試(活檢)為虛線。另外兩行是“全部干預(yù)”(細(xì)黑線)和“沒(méi)有干預(yù)”(粗黑線)
模型相關(guān)背景知識(shí):研究人員試圖尋找其他的標(biāo)記物,可以預(yù)測(cè)PSA升高的男性的高級(jí)別癌癥。這個(gè)想法是,任何PSA升高的男性都將接受第二次檢查,只有當(dāng)這表明有侵襲性疾病的風(fēng)險(xiǎn)時(shí),才會(huì)進(jìn)行活檢
針對(duì)上述模型繪制了DCA曲線,如下圖所示
晨曦雜談:這里的干預(yù)是一個(gè)很寬泛的概念,它可能指藥物或手術(shù),也可能包括生活方式的建議,額外的診斷檢查,或隨后的監(jiān)測(cè)等等,所以我們可以進(jìn)行一個(gè)總結(jié):凡是我們想要探討的外界因素都可以被視為干預(yù),而我們干預(yù)的目的自然就是為了獲得“好結(jié)果”(陽(yáng)性結(jié)局),所以這里我們進(jìn)一步概括——干預(yù)被視為高風(fēng)險(xiǎn)患者從模型中中獲得陽(yáng)性結(jié)果時(shí)考慮的任何行為或外界因素,
那么我們?nèi)绾卫斫鈭D中的“全部干預(yù)”和“沒(méi)有干預(yù)”這兩條線呢?
這張F(tuán)igure的Y軸為獲益程度,X軸為醫(yī)生偏好,這里的Y軸在不同的模型中是固定的,表示的是患者基于干預(yù)的獲益程度;X軸則是根據(jù)不同模型選擇不同的干預(yù)方式,比如說(shuō)在上圖中,X軸劃分為兩大類即“擔(dān)心疾病”與“擔(dān)心活檢”
擔(dān)心疾病簡(jiǎn)單解釋為對(duì)于PSA較高的患者或者患者本身積極要求活檢,醫(yī)生更傾向于認(rèn)為疾病本身所帶來(lái)的危害要高于活檢所帶來(lái)的危,也就是說(shuō)建議活檢
擔(dān)心活檢簡(jiǎn)單解釋為對(duì)于PSA不是很高的患者且年齡比較小的患者或者是患者本人對(duì)于侵入性治療有抵觸情緒,在這種情況下醫(yī)生更傾向于認(rèn)為活檢所帶來(lái)的危害要高于疾病本身所帶來(lái)的危害,也就是說(shuō)不建議活檢
我們可以看到,在上圖中該模型比直接干預(yù)的獲益要大,除了那些屬于“非常擔(dān)心”類別的,對(duì)于這類來(lái)說(shuō),“對(duì)所有人進(jìn)行干預(yù)”策略的好處實(shí)際上略高。這在直覺(jué)上是合理的:一個(gè)PSA升高且醫(yī)生偏好又是十分擔(dān)心疾病本身的情況下,可能想要直接進(jìn)行活檢,而不是依賴模型(模型來(lái)判斷是否需要活檢),當(dāng)然我們也可以簡(jiǎn)單粗暴的看這張圖,只要我們的模型曲線在兩條實(shí)線的外側(cè)就說(shuō)明這個(gè)模型在臨床上是值得被應(yīng)用的(其中對(duì)于多個(gè)模型的DCA曲線比較,越遠(yuǎn)離兩條實(shí)現(xiàn)越說(shuō)明其有應(yīng)用的價(jià)值),回到文獻(xiàn)中的例子則是說(shuō)明使用該模型來(lái)確定患者是否應(yīng)該進(jìn)行活檢是有臨床價(jià)值的
這個(gè)時(shí)候我們繼續(xù)往下探索,上圖我們的X軸是醫(yī)生的偏好,我們這里只是簡(jiǎn)單的進(jìn)行了分類,實(shí)際上,醫(yī)生的偏好受到很多因素的影響,比如說(shuō)PSA升高的幅度、患者本身的情緒、醫(yī)療條件的限制等等,盡管我們可以簡(jiǎn)單的認(rèn)為越靠近兩端代表著這些外在因素更強(qiáng)烈從而讓偏好更加強(qiáng)烈,但是我們依舊想要把橫坐標(biāo)設(shè)定為閾值,畢竟數(shù)值讓我們更加有“安全感”,所以我們接下來(lái)探討如何把X軸轉(zhuǎn)化為閾值?
當(dāng)然具體的轉(zhuǎn)化在我們后續(xù)R的實(shí)操中都已經(jīng)被作者寫好的R包給囊括了,但是,我們依舊需要知道其中蘊(yùn)含的邏輯和思想,正所謂道法結(jié)合,你不光需要懂得道,你也要需要懂得法
我們示例里的模型最后預(yù)測(cè)的是患者患有高級(jí)別癌癥的預(yù)測(cè)概率(高級(jí)別癌癥自然就需要進(jìn)行活檢),這時(shí)候我們面臨著這樣一個(gè)事實(shí),如果模型預(yù)計(jì)患者患有高級(jí)別癌癥的概率為1%,那么患者和醫(yī)生自然都是不同意進(jìn)行活檢的,但是如果模型預(yù)計(jì)患者患有高級(jí)別癌癥的概率為99%,那么醫(yī)生和患者自然就會(huì)同意進(jìn)行活檢,然后我們不斷把這個(gè)概率進(jìn)行改變,直到醫(yī)生和患者不再確定,那么這個(gè)閾值到底是多少,這個(gè)就需要我們結(jié)合自己的數(shù)據(jù)來(lái)設(shè)定
那么這個(gè)10%我們還可以如何理解?
其實(shí)10%的風(fēng)險(xiǎn)就是1:9的概率,所以如果你使用10%的概率,那么就意味著“錯(cuò)過(guò)一個(gè)高級(jí)別癌癥比做不必要的活檢要糟糕九倍”,然后我們把概率放在DCA曲線上,就是如下圖所示
我們現(xiàn)在可以看到,只有當(dāng)閾值概率小于2%或3%時(shí),我們才應(yīng)該避免使用該模型。這在前列腺癌中是一種符合臨床規(guī)則的現(xiàn)象,活檢是侵入性且痛苦的,并與膿毒癥的風(fēng)險(xiǎn)相關(guān)。
然而,一個(gè)較低的閾值在其他一些情況下可能是合理的,例如,皮膚癌活檢,這是一種風(fēng)險(xiǎn)和侵入性要小得多的手術(shù)。還要注意的是,該曲線只繪制了20%。這是因?yàn)?,考慮到與活檢的危害相比,遺漏高級(jí)別前列腺癌的相對(duì)風(fēng)險(xiǎn),我們認(rèn)為任何患者或醫(yī)生在接受活檢前要求超過(guò)20%的風(fēng)險(xiǎn)都是不合理的。因此,閾值的合理范圍主要取決于上下文
當(dāng)然以上的大部分操作都有R包幫助我們解決了,但是你需要明白這其中的宏觀邏輯
這個(gè)時(shí)候相信各位小伙伴已經(jīng)充分明白了橫坐標(biāo)所代表的含義以及可以操作的地方,那么縱坐標(biāo)(收益)我們又該如何理解呢?
其實(shí)縱坐標(biāo)收益,我們可以理解為凈收益,例如,0.07意味著每100個(gè)人有7個(gè)真陽(yáng)性,即針對(duì)上面的例子就是100個(gè)人中有7個(gè)真正的高級(jí)別前列腺癌
好,到這里我們這篇文獻(xiàn)就給大家解讀完畢了,相信到這里,各位小伙伴對(duì)于DCA應(yīng)該有了一個(gè)全面的了解了,那么我們下面繼續(xù)我們里程碑的講解~
里程碑三:DCA被各大期刊所承認(rèn)和推薦
J Clin Oncol雜志-IF:28.24
JAMA雜志-IF:51.27
BMJ雜志-IF:27.6
所以到這里相信各位小伙伴已經(jīng)知道了,如果在我們構(gòu)建預(yù)測(cè)模型的時(shí)候,添加一個(gè)DCA,勢(shì)必會(huì)讓我們的文章更加嚴(yán)謹(jǐn),同時(shí)也會(huì)讓我們的文章更加具有專業(yè)性
了解完了理論知識(shí),那么我們接下來(lái)就開(kāi)始進(jìn)行R代碼的講解
代碼實(shí)戰(zhàn)
近年來(lái),決策曲線分析(decision curve analysis, DCA)逐漸成為臨床預(yù)后模型的寵兒,最主要的原因它從全新的角度來(lái)評(píng)估患者在治療后的獲益情況,即使沒(méi)有治療信息,也可以評(píng)估患者的治療獲益,這是決策曲線分析最大的優(yōu)點(diǎn)
那么在這里就給大家介紹一個(gè)繪制DCA曲線的R包——ggDCA包
###1.準(zhǔn)備工作####
#install.packages('ggDCA')
library(ggDCA)
library(tidymodels)
library(tidyverse)
library(rms)
###2.準(zhǔn)備輸入數(shù)據(jù)并構(gòu)建模型####
data("LIRI")
#包含了結(jié)局變量(status),生存時(shí)間(time)和4個(gè)基因(ANLN,CENPA,GPR182,BCO2)
#現(xiàn)在,我們來(lái)驗(yàn)證ANLN基因是否是肝癌的預(yù)后的新指標(biāo),假設(shè)我們已經(jīng)知道CENPA,GPR182,BCO2這3個(gè)基因?qū)Ω伟┑念A(yù)后有重要的影響(注意,這僅僅是假設(shè))
#那么,我們需要建立3個(gè)模型
#模型1:?jiǎn)为?dú)使用ANLN建立模型,驗(yàn)證ANLN對(duì)預(yù)后有影響
#模型2:使用CENPA,GPR182,BCO2這3個(gè)基因建立模型,驗(yàn)證這3個(gè)基因?qū)︻A(yù)后有影響
#模型3:同時(shí)使用這4個(gè)基因。
#我們得到最理想的結(jié)果是:模型1對(duì)預(yù)后有影響,模型2對(duì)預(yù)后有影響,模型3對(duì)預(yù)后有影響
#但是模型3在模型2加入了模型1之后,對(duì)預(yù)后的意義比模型1和模型2都要好。
df <- LIRI
df_split <- initial_split(df,prop = 0.7)#創(chuàng)建劃分任務(wù)
train <- training(df_split)#劃分訓(xùn)練集
test <- testing(df_split)#劃分測(cè)試集
m1 <- lrm(status~ANLN,train)#構(gòu)建模型
m2 <- lrm(status~CENPA+GPR182+BCO2,train)#構(gòu)建模型
m3 <- lrm(status~ANLN+CENPA+GPR182+BCO2,train)#構(gòu)建模型
d_train <- dca(m1)#得到繪制一個(gè)DCA的數(shù)據(jù)
ggplot(d_train)#繪制DCA曲線(一個(gè)模型)
d_train <- dca(m1,m2,m3)#得到繪制三個(gè)DCA的數(shù)據(jù)
ggplot(d_train)#繪制DCA曲線(三個(gè)模型)
d_train <- dca(m1,m2,m3,
model.names =c('ANLN','Other 3 genes','All 4 genes'))#修改圖例名稱
ggplot(d_train)
#以上都是基于訓(xùn)練集模型繪制DCA,那么如何轉(zhuǎn)移到測(cè)試集呢?
d_test <- dca(m3,
new.data=test)
ggplot(d_test)
#當(dāng)驗(yàn)證1個(gè)模型的時(shí)候會(huì)將原始模型(m3)和驗(yàn)證模型(validate)畫在一張圖里。
#但是當(dāng)驗(yàn)證的模型在2個(gè)及以上的時(shí)候,所畫出的圖形僅僅包含了驗(yàn)證結(jié)果,不包含原始模型結(jié)果
d_test <- dca(m1,m2,m3,
new.data=test)
ggplot(d_test)
#ggDCA包支持logistic回歸和cox回歸,使用方便,核心的命令只有2個(gè)dca()和ggplot(),一個(gè)分析,一個(gè)畫圖。使用極其簡(jiǎn)便,并且可以結(jié)合ggplot2包進(jìn)一步美化圖形
#以上只展示了logistic回歸,感興趣的小伙伴可以訪問(wèn)R包的幫助文檔獲取更多內(nèi)容
好啦,到這里,本期推文就給大家介紹到了這里,內(nèi)容還是比較繁雜的,晨曦這里也是給了大家盡可能直白的講解,相信配合上理論還有實(shí)戰(zhàn),各位小伙伴的臨床預(yù)測(cè)模型類文章都可以添加上這樣一張圖,好讓各位小伙伴的文章可以更加豐富
在這里也是感謝一棵樹老師開(kāi)發(fā)的ggDCA包,真的用起來(lái)是十分的方便,也歡迎大家有需要可以使用哦~
那么,本期推文到這里就結(jié)束了,也歡迎各位小伙伴在評(píng)論區(qū)積極討論,說(shuō)出你感興趣的話題,說(shuō)不定下期的主題就是你感興趣的內(nèi)容哦
我是晨曦,我們下期再見(jiàn)~
參考資料
晨曦單細(xì)胞文獻(xiàn)閱讀系列
晨曦單細(xì)胞筆記系列傳送門
1. 首次揭秘!不做實(shí)驗(yàn)也能發(fā)10+SCI,CNS級(jí)別空間轉(zhuǎn)錄組套路全解析(附超詳細(xì)代碼?。?/a>
2. 過(guò)關(guān)神助!99%審稿人必問(wèn),多數(shù)據(jù)集聯(lián)合分析,你注意到這點(diǎn)了嗎?
3. 太猛了!萬(wàn)字長(zhǎng)文單細(xì)胞分析全流程講解,看完就能發(fā)文章!建議收藏?。ǜ酱a)
4. 秀兒!10+生信分析最大的難點(diǎn)在這里!30多種方法怎么選?今天幫你解決!
5. 圖好看易上手!沒(méi)有比它更適合小白入手的單細(xì)胞分析了!老實(shí)講,這操作很sao!
6. 畢業(yè)救星!這個(gè)R包在高分文章常見(jiàn),實(shí)用!好學(xué)!
7. 我就不信了,生信分析你能繞開(kāi)這個(gè)問(wèn)題!今天一次性幫你解決!
晨曦單細(xì)胞數(shù)據(jù)庫(kù)系列傳送門
1. 寶兒,5min掌握一個(gè)單細(xì)胞數(shù)據(jù)庫(kù),今年國(guó)自然就靠它了!(附視頻)
2. 審稿人返修讓我補(bǔ)單細(xì)胞數(shù)據(jù)咋辦?這個(gè)神器幫大忙了!
3. 想白嫖、想高大上、想有高大上的SCI?這個(gè)單細(xì)胞數(shù)據(jù)庫(kù),你肯定用得上?。ㄅ湟曨l)
4. What? 扎克伯格投資了這個(gè)數(shù)據(jù)庫(kù)?炒概念?跨界生信?
5. 不同物種也能合并做生信?給你支個(gè)妙招,讓數(shù)據(jù)起死回生!
6. 零成本裝逼指南!單細(xì)胞時(shí)代,教你用單細(xì)胞數(shù)據(jù)庫(kù)巧篩基因,做科研!
7. 大佬研發(fā)的單細(xì)胞數(shù)據(jù)庫(kù)有多強(qiáng)? 別眼饞 CNS美圖了!零基礎(chǔ)的小白也能10分鐘學(xué)會(huì)!
8. 純生信發(fā)14分NC的單細(xì)胞測(cè)序文章,這個(gè)北大的發(fā)文套路,你可以試下!實(shí)在不行,拿來(lái)挖挖數(shù)據(jù)也行!
9. 如何最短時(shí)間極簡(jiǎn)白嫖單細(xì)胞分析?不只是腫瘤方向!十分鐘教你學(xué)會(huì)!
10. 生信數(shù)據(jù)挖掘新風(fēng)口!這個(gè)單細(xì)胞免疫數(shù)據(jù)庫(kù)幫你一網(wǎng)打盡了!SCI的發(fā)文源頭!
聯(lián)系客服