黃永迎 程志浩 劉揚(yáng) 周玉博 李宏田 劉建蒙
ROC(receiver operating characteristic)曲線通常被譯為受試者工作特征曲線[1-2],美國(guó)生物統(tǒng)計(jì)百科全書(shū)[3]將其定義為“一種量化實(shí)驗(yàn)者、診斷者或預(yù)測(cè)者及其所用工具對(duì)存在混淆的兩種狀況或兩種自然狀態(tài)做出鑒別的準(zhǔn)確程度的方法”,國(guó)內(nèi)相關(guān)專業(yè)書(shū)籍[1-2]依據(jù)其曲線繪制方式將其定義為:“對(duì)診斷指標(biāo)或模型預(yù)測(cè)概率的各個(gè)截?cái)嘀?以1-特異度(假陽(yáng)性率)為橫坐標(biāo)、以靈敏度(真陽(yáng)性率)為縱坐標(biāo)繪制的曲線即ROC曲線”。
ROC曲線分析起源于20世紀(jì)中期概率論和統(tǒng)計(jì)決策理論[4],最初用于描述雷達(dá)接收器對(duì)雷達(dá)信號(hào)與相關(guān)噪聲的鑒別性能[5],故Receiver原意指雷達(dá)接收器,而Operating Characteristic這一術(shù)語(yǔ)源于質(zhì)量控制領(lǐng)域,通常用于描述根據(jù)不同批次樣品來(lái)區(qū)分產(chǎn)品質(zhì)量?jī)?yōu)劣的可操作性特征[6]。1960年Lusted LB將ROC曲線分析應(yīng)用于醫(yī)學(xué)決策領(lǐng)域[7-9],1982年Swets等[10]總結(jié)了ROC曲線分析相關(guān)理論及其在生物醫(yī)學(xué)方面的應(yīng)用,此后ROC曲線分析廣泛應(yīng)用于篩檢和診斷試驗(yàn)的評(píng)價(jià),以及Logistic回歸等預(yù)測(cè)模型的預(yù)測(cè)效果評(píng)價(jià)[11]。
ROC曲線應(yīng)用領(lǐng)域雖廣[12-15],但其主要用途可概括為以下三個(gè)方面:(1)描述基于定量指標(biāo)(主要包括但不限于各類檢測(cè)指標(biāo)、儀器測(cè)試值、模型預(yù)測(cè)概率等定量指標(biāo))對(duì)二分類結(jié)局指標(biāo)(如是否患病)做出預(yù)測(cè)的準(zhǔn)確程度;(2)尋找定量指標(biāo)用于預(yù)測(cè)結(jié)局指標(biāo)的最佳截?cái)嘀?(3)比較不同定量指標(biāo)對(duì)同一結(jié)局指標(biāo)的預(yù)測(cè)效能。ROC曲線綜合考慮了靈敏度(sensitivity)和特異度(specificity),且與結(jié)局事件發(fā)生率無(wú)直接關(guān)系[11],通常被視為預(yù)測(cè)效果評(píng)價(jià)的最優(yōu)方法[12,16-17]。但值得注意的是,ROC曲線與原始數(shù)據(jù)對(duì)應(yīng)關(guān)系不夠直觀、主要借助統(tǒng)計(jì)軟件繪制,其曲線下面積(area under curve,AUC)雖有理論釋義,但在醫(yī)學(xué)教育和實(shí)踐中難以真切呈現(xiàn)[18],對(duì)于初學(xué)者和非專業(yè)人士而言通常較難理解。鑒于此,有必要探索針對(duì)ROC曲線及AUC的簡(jiǎn)單易解、形象直觀的闡釋方法,以加強(qiáng)使用者對(duì)這一重要工具的理解和應(yīng)用。
繪制ROC曲線及估計(jì)AUC的方法包括參數(shù)法和非參數(shù)法,當(dāng)樣本量較大時(shí)兩種方法計(jì)算的AUC近似相等[17]。在實(shí)踐中基于樣本數(shù)據(jù)準(zhǔn)確估計(jì)總體分布通常較為困難,故參數(shù)法的應(yīng)用受到一定限制[14]。非參數(shù)法是常用統(tǒng)計(jì)軟件計(jì)算AUC的主要方法,但也有的軟件兼具兩種方法。本文討論范疇僅限非參數(shù)法。
非參數(shù)法即依據(jù)試驗(yàn)數(shù)據(jù)直接繪制ROC曲線,所繪制的曲線通常呈階梯型。假定某試驗(yàn)擬評(píng)價(jià)某定量指標(biāo)對(duì)某疾病的診斷效能,納入經(jīng)金標(biāo)準(zhǔn)診斷的病例數(shù)為na(number of abnormals)、非病例數(shù)為nn(number of normals),病例組定量指標(biāo)平均檢測(cè)值高于非病例組,在實(shí)際分析時(shí)若檢測(cè)值高于截?cái)嘀?cutoff value)則判定為陽(yáng)性,反之判定為陰性。若na個(gè)病例和nn個(gè)非病例的檢測(cè)值互不相同,則ROC曲線應(yīng)包含na+nn+1個(gè)截?cái)嘀?將na+nn個(gè)檢測(cè)值排序后,介于其之間的截?cái)嘀祽?yīng)有na+nn-1個(gè),另有高于最高檢測(cè)值和低于最低檢測(cè)值的截?cái)嘀蹈?個(gè)),將這些截?cái)嘀邓鶎?duì)應(yīng)的坐標(biāo)點(diǎn)(x=1-特異度,y=靈敏度)用線段連接起來(lái)就得到了ROC曲線。由最高截?cái)嘀颠^(guò)渡至最低截?cái)嘀祵?duì)應(yīng)ROC曲線由坐標(biāo)點(diǎn)(0,0)過(guò)渡到坐標(biāo)點(diǎn)(1,1),高于最高檢測(cè)值的截?cái)嘀祵?duì)應(yīng)(0,0)坐標(biāo)點(diǎn),低于最低檢測(cè)值的截?cái)嘀祵?duì)應(yīng)(1,1)坐標(biāo)點(diǎn)。表1是某Logistic模型用于預(yù)測(cè)妊娠期高血壓的示例數(shù)據(jù),病例組和非病例組各10例。圖1A給出了基于該示例數(shù)據(jù)[第(3)列和第(4)列]繪制的ROC曲線。
表1 某Logistic模型預(yù)測(cè)妊娠期高血壓的示例數(shù)據(jù)
為更好闡釋ROC曲線含義,特此引入一個(gè)概念——非標(biāo)化ROC曲線(unstandardized ROC curve)。非標(biāo)化ROC曲線以真陽(yáng)性數(shù)為縱坐標(biāo)、假陽(yáng)性數(shù)為橫坐標(biāo),其繪制過(guò)程如下:(1)以高于最高檢測(cè)值的截?cái)嘀邓鶎?duì)應(yīng)的(0,0)坐標(biāo)點(diǎn)為始點(diǎn);(2)截?cái)嘀涤筛叩降兔俊芭矂?dòng)”一次,則診斷為陽(yáng)性的對(duì)象數(shù)增加1例,若該對(duì)象確為病例,則真陽(yáng)性數(shù)增加1例,假陽(yáng)性數(shù)不變,反映在圖形上為一條豎線;若該對(duì)象為非病例,則假陽(yáng)性數(shù)增加1例,真陽(yáng)性數(shù)不變,反映在圖形上為一條橫線;(3)曲線由左下向右上延伸直至低于最低檢測(cè)值的截?cái)嘀邓鶎?duì)應(yīng)的(nn,na)坐標(biāo)點(diǎn)。圖1B給出了基于表1示例數(shù)據(jù)[第(5)列和第(6)列]繪制的非標(biāo)化ROC曲線。
非標(biāo)化ROC曲線每條線段對(duì)應(yīng)一個(gè)研究對(duì)象,豎線相當(dāng)于病例,橫線相當(dāng)于非病例,故曲線形狀取決于病例和非病例的檢測(cè)值(或模型預(yù)測(cè)概率)排序。換言之,非標(biāo)化ROC曲線相當(dāng)于把病例和非病例按照檢測(cè)值由高到低排列后的一維序次反映在了二維平面上。圖2A更直觀地展示了一維次序與二維非標(biāo)化ROC曲線對(duì)應(yīng)關(guān)系,圖中一維次序紅色實(shí)心圓表示病例,藍(lán)色實(shí)心圓表示非病例,二維非標(biāo)化ROC曲線紅色豎線表示病例,藍(lán)色橫線表示非病例。理論上講,當(dāng)檢測(cè)方法足夠精確時(shí),很難出現(xiàn)相同檢測(cè)值[19]。但在實(shí)踐中,若某個(gè)病例的檢測(cè)值與某個(gè)非病例的檢測(cè)值相等,則非標(biāo)化ROC曲線會(huì)相應(yīng)減少一個(gè)階梯而多出一個(gè)斜坡。比如,若表1第11行第8個(gè)病例的模型預(yù)測(cè)概率由0.50變?yōu)?.47(與第12行第4個(gè)非病例的檢測(cè)值相同),非標(biāo)化ROC曲線則在相應(yīng)位置出現(xiàn)一個(gè)斜坡(圖2B紫色線段)。
紅色實(shí)心圓代指病例,藍(lán)色實(shí)心圓代指非病例;紅色豎線代指病例,藍(lán)色橫線代指非病例。圖A中箭頭所指為檢測(cè)值(模型預(yù)測(cè)概率)由高到低的方向,可見(jiàn)一維的排序和粗ROC曲線的線段是一一對(duì)應(yīng)的關(guān)系;圖B所示為病例和非病例存在相同檢查值(模型預(yù)測(cè)概率)時(shí),在粗ROC曲線上體現(xiàn)為一斜線(紫色線段)圖2 一維次序與二維非標(biāo)化ROC曲線對(duì)應(yīng)關(guān)系
通過(guò)圖1A和圖1B對(duì)比可知,對(duì)于同樣的試驗(yàn)數(shù)據(jù),非標(biāo)化ROC曲線與傳統(tǒng)ROC曲線形狀一致。傳統(tǒng)ROC曲線可以理解為橫縱坐標(biāo)量綱標(biāo)化后的非標(biāo)化ROC曲線,即將非標(biāo)化ROC曲線縱軸以病例總數(shù)為參比值做標(biāo)化,標(biāo)化后的縱軸即為真陽(yáng)性率,將非標(biāo)化ROC曲線橫軸以非病例總數(shù)為參比值做標(biāo)化,標(biāo)化后的橫軸即為假陽(yáng)性率(即1 - 特異度)。
AUC是ROC曲線分析最為重要的量化評(píng)價(jià)指標(biāo)。通常認(rèn)為,AUC介于0.5~0.7之間診斷價(jià)值較低,介于0.7~0.9之間診斷價(jià)值中等,大于0.9診斷價(jià)值較高[20]。非參數(shù)法AUC計(jì)算公式如下(與兩個(gè)獨(dú)立樣本秩和檢驗(yàn)統(tǒng)計(jì)量計(jì)算公式一致[21-22]):
(1)
其中,
na和nn分別為病例數(shù)和非病例數(shù),xai和xnj分別表示每個(gè)病例與非病例所對(duì)應(yīng)的定量指標(biāo)的檢測(cè)值。公式含義如下:將na個(gè)病例所對(duì)應(yīng)的檢測(cè)值與nn個(gè)非病例所對(duì)應(yīng)的檢測(cè)值兩兩對(duì)比(共有na×nn組對(duì)比),在每一次比較中,若前者大于后者則Ψ=1,若前者小于后者則Ψ=0,若二者相等則Ψ=0.5,所有na×nn個(gè)Ψ的算術(shù)平均值即為AUC[12,16]。鑒于此,AUC可通俗理解為病例組每個(gè)檢測(cè)值大于非病例組每個(gè)檢測(cè)值的平均概率,或理解為隨機(jī)選擇的病例比隨機(jī)選擇的非病例更有可能被判定為病例的概率[22-23]。
基于非標(biāo)化ROC曲線闡釋AUC計(jì)算公式的含義更為直觀。圖3在圖1B非標(biāo)化ROC曲線的基礎(chǔ)上增加了網(wǎng)格背景,同時(shí)將豎線所表示的病例標(biāo)記為1、將橫線所表示的非病例標(biāo)記為0。如圖所示,每條豎線將所有的0分為左右兩部分,每條橫線將所有的1分為上下兩部分,圖中綠色背景標(biāo)識(shí)的格子數(shù)相當(dāng)于非標(biāo)化ROC曲線下面積。該面積可以看作每一行的曲線下面積之和,而每一行曲線下面積即為該行綠色格子數(shù),取決于該行1的右側(cè)有幾個(gè)0,即取決于檢測(cè)值比該病例更小的非病例的個(gè)數(shù),所以xai>xnj時(shí)Ψ取1;當(dāng)某個(gè)病例與某個(gè)非病例的檢測(cè)值相同時(shí),曲線線段為格子對(duì)角線,相對(duì)應(yīng)的曲線下面積為0.5個(gè)格子,所以xai=xnj時(shí)Ψ取0.5;每行白色格子數(shù)取決于1的左側(cè)有幾個(gè)0,即取決于檢測(cè)值比該病例更大的非病例的個(gè)數(shù),因白色格子不計(jì)入AUC,所以xai 公式(1)經(jīng)簡(jiǎn)單變換可得到公式(2)和公式(3),公式(2)方括號(hào)內(nèi)部為某一病例與所有非病例的比較結(jié)果,公式(3)方括號(hào)內(nèi)部為某一非病例與所有病例的比較結(jié)果,兩個(gè)公式方括號(hào)外部為對(duì)所有病例[公式(2)]或所有非病例[公式(3)]求算術(shù)平均值的過(guò)程。 (2) (3) 基于非標(biāo)化ROC曲線,公式(2)方括號(hào)內(nèi)部分可理解為某一行綠色格子數(shù)與該行總格子數(shù)nn(即非病例數(shù))的比值,該比值反映該病例在所有非病例中的相對(duì)位置,即該病例檢測(cè)值比非病例檢測(cè)值更大的概率,方括號(hào)外的部分可理解為對(duì)所有行(即所有病例)所對(duì)應(yīng)的概率取均值(先基于總行數(shù)na求和再除以na)。鑒于此,AUC可理解為病例檢測(cè)值比非病例檢測(cè)值更大的平均概率,等價(jià)于“隨機(jī)選擇的病例比非病例更有可能被診斷為病例的概率”。公式(2)方括號(hào)內(nèi)的部分還可以理解為,某個(gè)1右側(cè)0的個(gè)數(shù)占0的總個(gè)數(shù)的比例,當(dāng)以這個(gè)1對(duì)應(yīng)的檢測(cè)值為截?cái)嘀禃r(shí),其右側(cè)的0將被正確地判斷為陰性,故該比例即為真陰性率;方括號(hào)外部分可理解為以所有病例檢測(cè)值作為截?cái)嘀禃r(shí)的平均真陰性率,即AUC可理解為某檢測(cè)指標(biāo)用于疾病診斷時(shí)的平均真陰性率,即平均特異度。同理,基于公式(3)AUC可以理解為以所有非病例檢測(cè)值為截?cái)嘀禃r(shí)的平均真陽(yáng)性率,即AUC可理解為某檢測(cè)指標(biāo)用于疾病診斷時(shí)的平均靈敏度。表1示例數(shù)據(jù)第(7)列和第(8)列的均值均為0.74,與基于公式(1)~(3)計(jì)算的AUC相同。 AUC含義也可通過(guò)圖2所示的一維次序與二維非標(biāo)化ROC曲線對(duì)應(yīng)關(guān)系予以闡釋。假定某檢測(cè)指標(biāo)將病例和非病例排序如下:1,1,1,……,1,0,0,0,……,0,即na個(gè)1均在前面,nn個(gè)0均在后面(此為最理想情況),此時(shí)對(duì)應(yīng)的1的秩次總和為na×(na+1)/2,對(duì)應(yīng)的非標(biāo)化ROC曲線下格子數(shù)為na×nn。若因檢測(cè)指標(biāo)取值改變使得最后一個(gè)1與第一個(gè)0次序互換,則非標(biāo)化ROC曲線在該位置的軌跡由原來(lái)的先豎線后橫線變?yōu)橄葯M線后豎線,曲線下格子數(shù)相應(yīng)地減少1,但同時(shí)病例秩次總和(即1的秩次總和)增加1,1的秩次總和與曲線下格子數(shù)兩者之和不變。任何一種1和0的排序均可視為在“na個(gè)1均在前面,nn個(gè)0均在后面”的基礎(chǔ)上經(jīng)若干次0和1次序互換的結(jié)果,且在次序互換的過(guò)程中,1的秩次總和與曲線下格子數(shù)兩者之和始終保持恒定。當(dāng)某一病例與某一非病例檢測(cè)值相同時(shí),1的秩次總和變化幅度為0.5,非標(biāo)化ROC曲線下格子數(shù)也相應(yīng)變化半個(gè)格子,和依然為定值。綜上,1的秩次總和(記為∑Rank(1))與非標(biāo)化ROC曲線下格子數(shù)(記為Sn)之和始終為na×nn+na×(na+1)/2,非標(biāo)化ROC曲線下格子數(shù)Sn=na×nn+na×(na+1)/2-∑Rank(1),將其除以總格子數(shù)na×nn去量綱后即得另一AUC計(jì)算公式(4)。 (4) 基于表1示例數(shù)據(jù)第(9)列計(jì)算的∑Rank(1)=81,在此基礎(chǔ)上根據(jù)公式(4)計(jì)算的AUC為0.74,與根據(jù)公式(1)~(3)計(jì)算的AUC一致。通過(guò)公式(4)易知,當(dāng)na和nn固定時(shí),AUC大小主要取決于1的排序,某指標(biāo)診斷性能越優(yōu),則1的次序越靠前,∑Rank(1)越小,對(duì)應(yīng)的AUC越大,即AUC在本質(zhì)上刻畫(huà)了診斷指標(biāo)對(duì)病例與非病例的區(qū)分性排序能力。 以上所有論證均假定病例檢測(cè)值高于非病例檢測(cè)值,但論證思路同樣適用于病例檢測(cè)值低于非病例檢測(cè)值的情況;以上所有論證均假定檢測(cè)值為連續(xù)變量,對(duì)于等級(jí)變量,將其量化賦值后同樣可按上述思路進(jìn)行分析。非標(biāo)化ROC曲線能直觀反映樣本量,其曲線下面積的取值范圍因樣本量不同而不同。非標(biāo)化ROC曲線有助于理解ROC曲線的含義及AUC的計(jì)算公式,但當(dāng)樣本量過(guò)大時(shí),繪制非標(biāo)化ROC曲線的現(xiàn)實(shí)意義有限。ROC曲線不能直觀反映樣本量,AUC取值范圍介于0~1之間。 如前文所述,ROC曲線英文名稱中的receiver的原意在很多情境中已不再適用。鑒于此,國(guó)外曾有學(xué)者[24]建議將ROC曲線更名為靈敏度—特異度曲線(sensitivity-specificity curve,S-S curve),但未得以推廣,可能與ROC這一縮寫(xiě)已廣為應(yīng)用有關(guān)。也有學(xué)者建議將ROC理解成為relative operating characteristic curve[25],筆者對(duì)此很是認(rèn)同,主要考慮如下:(1)relative與receiver首字母相同,ROC縮寫(xiě)可維持不變;(2)醫(yī)學(xué)科研常用效應(yīng)指標(biāo)relative risk首個(gè)單詞即為relative,其含義是“與…相比”;relative在relative operating characteristic curve中可解讀為“與金標(biāo)準(zhǔn)相比”,某一檢測(cè)指標(biāo)用于疾病診斷時(shí)的相對(duì)性能,相應(yīng)的AUC便可理解為實(shí)際的AUC與最理想狀況(即取值為1.0)的比值。 綜上,ROC曲線在本質(zhì)上刻畫(huà)了某定量指標(biāo)對(duì)經(jīng)金標(biāo)準(zhǔn)判定的二分類指標(biāo)的排序軌跡,而AUC用于刻畫(huà)該定量指標(biāo)對(duì)該二分類指標(biāo)做出正確歸類的相對(duì)準(zhǔn)確程度,它同時(shí)刻畫(huà)出了平均真陽(yáng)性率和平均真陰性率,且兩者在數(shù)值上是相等的。三、AUC含義延伸解讀
四、局限與思考