【統計】 ROC曲線(1) – 模型評估首選方案
- 2019 年 12 月 17 日
- 筆記
基本概念
ROC曲線,也稱「受試者工作特徵曲線」,主要是用於X對Y的預測準確率情況。最初ROC曲線是運用在軍事上,現在更多應用在醫學領域,判斷某種因素對於某種疾病的診斷是否有診斷價值。

ROC曲線圖是反映敏感性與特異性之間關係的曲線。橫坐標X軸為 1 – 特異性,也稱為假陽性率(誤報率),X軸越接近零準確率越高;縱坐標Y軸稱為敏感度,也稱為真陽性率(敏感度),Y軸越大代表準確率越好。
根據曲線位置,把整個圖劃分成了兩部分,曲線下方部分的面積被稱為AUC(Area Under Curve),用來表示預測準確性,AUC值越高,也就是曲線下方面積越大,說明預測準確率越高。曲線越接近左上角(X越小,Y越大),預測準確率越高。

應用場景
ROC曲線的應用場景有很多,根據上述的定義,其最直觀的應用就是能反映模型在選取不同閾值的時候其敏感性(sensitivity, FPR)和其精確性(specificity, TPR)的趨勢走向。不過,相比於其他的P-R曲線(精確度和召回率),ROC曲線有一個巨大的優勢就是,當正負樣本的分布發生變化時,其形狀能夠基本保持不變,而P-R曲線的形狀一般會發生劇烈的變化,因此該評估指標能降低不同測試集帶來的干擾,更加客觀的衡量模型本身的性能。要解釋清楚這個問題的話,大家還是先回顧一下混淆矩陣。

其中比較重要的概念有:
(1) 真陽性(True Positive,TP):檢測不陽性,且實際不陽性;正確肯定的匹配數目;
(2) 假陽性(False Positive,FP):檢測不陽性,但實際陽性;誤報,給出的匹配是不正確的;
(3) 真陰性(True Negative,TN):檢測陽性,且實際陽性;正確拒絕的非匹配數目;
(4) 假陰性(False Negative,FN):檢測陽性,但實際不陽性;漏報,沒有正確找到的匹配的數目。

繪製原理
ROC曲線其實是多個混淆矩陣的結果組合。以疾病檢測為例,這是一個有監督的二分類模型,模型對每個樣本的預測結果為一個概率值,我們需要從中選取一個閾值來判斷健康與否。定好一個閾值之後,超過此閾值定義為不健康,低於此閾值定義為健康,就可以得出混淆矩陣。

而如果在上述模型中我們沒有定好閾值,而是將模型預測結果從高到低排序,將每次概率值依次作為閾值,那麼就可以得到多個混淆矩陣。對於每個混淆矩陣,我們計算兩個指標TPR和FPR,以FPR為x軸,TPR為y軸畫圖,就得到了ROC曲線。


AUC的概念
AUC (Area under Curve):ROC曲線下的面積,介於0.1和1之間,作為數值可以直觀的評價分類器的好壞,值越大越好。
AUC值作為評價標準,被定義為ROC曲線下的面積,取值範圍一般在0.5和1之間。使用AUC值作為評價標準是因為很多時候ROC曲線並不能清晰的說明哪個分類器的效果更好,而作為一個數值,對應AUC更大的分類器效果更好。
AUC 的常用計算方法有:(1)梯形法則:早期由於測試樣本有限,我們得到的AUC曲線呈階梯狀。曲線上的每個點向X軸做垂線,得到若干梯形,這些梯形面積之和也就是AUC;(2)Mann-Whitney統計量: 統計正負樣本對中,有多少個組中的正樣本的概率大於負樣本的概率。這種估計隨著樣本規模的擴大而逐漸逼近真實值。

AUC的用途
從AUC判斷分類器(預測模型)優劣的標準,AUC值越大的分類器,正確率越高。
- AUC = 1,是完美分類器,採用這個預測模型時,存在至少一個閾值能得出完美預測。絕大多數預測的場合,不存在完美分類器。
- 0.5 < AUC < 1,優於隨機猜測。這個分類器(模型)妥善設定閾值的話,能有預測價值。
- AUC = 0.5,跟隨機猜測一樣(例:丟銅板),模型沒有預測價值。
- AUC < 0.5,比隨機猜測還差;但只要總是反預測而行,就優於隨機猜測。


不同模型的比較
總的來說,AUC值越大,模型的分類效果越好,疾病檢測越準確。不過兩個模型AUC值相等並不代表模型效果相同,例子如下:
下圖中有三條ROC曲線,A模型比B和C都要好。

下面兩幅圖中兩條ROC曲線相交於一點,AUC值幾乎一樣:當需要高Sensitivity時,模型A比B好;當需要高Speciticity時,模型B比A好;


最優臨界點
所謂找到最優臨界點,就是保證TPR高的同時FPR要盡量的小,建立max(TPR+(1-FPR))的模型。同樣有三種方法:找到離(0,1)最近的點和Youden index。

1. 如果說Sn 和Sp 分別對應於sensitivity和specificity,所有ROC曲線上的點到ROC的距離可以表示為,讓d最小就好啦;
2. Youden index : 最大化ROC曲線上的點到x軸的垂直距離(最大化TPR(Sn)和FPR(1-Sp)的差異);

性能比較-Delong test
我們知道ROC曲線的性能可以通過曲線下面積即AUC來得到,那麼如何通過統計學的角度來比較兩個ROC曲線呢,就是這裡說的就是Delong test,可以得到兩個曲線的P值,p<0.05可以看作兩個曲線有較大差異。目前常用高的SPSS和Prism GraphPad是不能計算ROC曲線的最優臨界值,更是無法對不同ROC曲線的效能進行Delong統計比較的。
作為數據分析終結者的科研貓工程師們,實力寵粉是我們的職責所在,於是繼GEO終結者、TCGA生存分析終結者之後,我們開發了又一款終極工具-「ROC分析終結者」(ROC Terminator),可以一鍵生成多模式ROC曲線+完整模型評估參數+Delong模型比較檢驗。工具下期公布,大家先睹為快吧:


