在最近從技術角度講網絡研討會,我討論了預測外周動脈疾病(PAD)的風險,其中反應有兩種可能的結果:是(患者有PAD風險)和否(患者無PAD風險)。
在那次演講中,我指出了預測模型包含兩個部分:1)模型創建的概率函數; 2)用於將數據分類為最可能是或否的臨界值。 我簡要提到過,ROC曲線是評估和比較模型創建的概率函數的好方法。
這篇博客文章將進一步說明ROC曲線及其解釋方法。 在預測稀有事件(不平衡數據)並選擇分類臨界值時,我還將提供一些有關ROC曲線的想法。
ROC曲線
圖1顯示了外周動脈疾病(PAD)風險預測模型的ROC曲線。
圖1。 PAD預測模型的ROC曲線。
ROC曲線的標準元素:
- x軸為1-Specficity,即誤報率;取值範圍是0到1。 也可以將其視為模型的I型錯誤。
- y軸是靈敏度,是真實正值的比例;取值範圍是0到1。 也可以將其視為模型的功效或1-Type II錯誤。
- 有時,一條對角線穿過0,0和1,1,這是真實的陽性率等於錯誤的陽性率。 這條線代表真正的隨機模型或沒有預測價值的模型。
那麼在ROC曲線上繪製了什麼?
要了解在ROC曲線上繪製的內容,請記住類別響應的預測模型有兩個部分:1)概率函數和2)臨界值,用於將概率分類為最可能的類別。 對於數據集中的每個觀察,將預測概率用作分類臨界值。 在數據集中為每個觀察結果繪製了具有該截止值的模型的結果靈敏度和1-特異性。 我將在下面詳細介紹這些計算。
請注意,ROC曲線永遠不會落在穿過0,0和1,1的對角線以下。
並且如何解釋ROC曲線?
完美的模型穿過網格(0,1)的左上角。 x值為0表示該模型不會導致誤報。 y值為1表示模型得出所有真實正值。
ROC曲線(AUC)下的區域指示模型距ROC曲線的左上角有多近。 AUC為1是理想模型,而AUC為0.5是隨機模型或無預測值的模型。 由於ROC曲線永遠不會落到對角線以下,因此AUC始終在0.5到1之間。
較高的AUC表示該模型距離對角線較遠,對角線表示沒有預測值的模型,並且接近通過網格左上角(0,1)的理想模型。
仔細研究PAD模型的ROC曲線
讓我們仔細研究一下PAD風險的預測模型的ROC曲線,以及如何計算x和y值。 圖2是數據集中的觀測子集的圖形圖,並繪製在ROC曲線上。 這些點中的一些點用其對應的PAD =是的預測概率標記。
圖2。 稀有事件示例的ROC曲線。
首先,請注意,數據點按預測概率的順序排列,範圍從0.02到0.53。 如果我是根據數據集構建的模型,其中的數字是“是”和“否”,則我希望範圍在0到1之間,並且在曲線中心附近為0.5。 但是,此數據集是針對稀有或不平衡的數據集的,這意味著與“否”相比,“是”的出現頻率要低得多。因此,所有預測的概率都落在範圍的下限–均為0.53及以下。
圖右上角的數據點對應於數據子集中的最低預測概率(0.02)。 在討論用於繪製該點的計算之前,請花一點時間考慮一下該場景。 如果我們使用最低的預測概率之一作為對所有預測概率進行分類的臨界點,那麼分類將發生什麼? 當其中許多數據確實為“否”時,幾乎所有數據都將被分類為“是”。這對應於較高的誤報率(1-Specificity)。 同樣,任何為“是”的數據都將被歸類為“是”,這是很高的真實陽性率(靈敏度)。
還要考慮圖表左下角的數據點。 該點對應於數據中的最高預測概率(0.53)。如果將最高的預測概率用作臨界值,則所有數據都將被分類為“否”,這意味著誤報率(1-Specificity)低,實際上為零。任何為“是”的數據都將被歸類為“否”,這會導致較低的真實陽性率(靈敏度),並且再次為零。
計算1特異性和靈敏度
要在ROC曲線上繪製數據,我們必須計算1-Specificity和Sensitivity。 讓我們從圖2右上角的數據點開始,它對應於數據子集中的最低預測概率(0.02)。 首先,將預測概率0.02作為臨界值,以將整個數據集分類為是或否。將該預測條件與實際或真實條件進行比較,並將數據分為四個結果–真實陽性,真實陰性,假陰性,假陽性(圖3)。 圖3稱為混淆矩陣,混淆矩陣中填充的數字用於計算1-Specificity和Sensitivity。
|
真實條件
|
實際正面
|
實際負數
|
預測條件
|
預測積極
|
真正(TP)
|
誤報(FP)
|
預測為負
|
假陰性(FN)
|
真負(TN)
|
圖3。 二進制分類模型(混淆矩陣)的結果。
1-專長
1-Specificity是錯誤的陽性率,是通過從中減去真實的陰性率來計算的。 真實陰性率是模型預測的真實陰性數(TN)除以實際陰性總數,其中包括真實陰性(TN)和假陽性(FP)。

靈敏度
靈敏度是真實陽性率,是模型預測的真實陽性率(TP)除以實際陽性總數,包括真實陽性率(TP)和假陰性(FN)。

對整個數據集應用0.02的分類截止值,我們得到的結果顯示在下面的圖4中。
|
真實條件
|
實際正面
|
實際負數
|
預測條件
|
預測積極
|
TP = 277
|
FP = 3394
|
預測為負
|
FN = 0
|
TN = 312
|
圖4。 PAD預測模型的結果,分類截止值為0.02。
從這些結果,我們可以計算分別對應於ROC曲線上繪製的x和y值的1-Specificity和Sensitivity。


總而言之,ROC曲線是用於創建概率函數的數據集中每個數據點的圖。 當將預測概率用作分類臨界值時,通過使用混淆矩陣中的結果為每個數據點計算1特異性和敏感性。
通過對ROC曲線進行這些計算,我們還可以得出結論,使用概率函數和0.02分類的預測模型不是很好的模型。 首先,由於該點接近代表真正隨機模型的對角線,因此,我們比簡單地為患者隨機分配PAD風險要好得多。 從計算中我們還可以看到,我們的真實陰性率(特異性)為0.08,真實陽性率(敏感性)為1,差異很大。 換句話說,雖然對100%的真實PAD病例進行了分類,但假陽性率為92%。 我們將要選擇一種分類截止值,以平衡特異性和敏感性,並且離對角線更遠,更靠近圖的左上角。
選擇分類截止
默認情況下,臨界值0.5用於根據概率函數對數據進行分類, JMP使用此臨界值創建預測公式。 臨界值為0.5可能適用於實際正負數相等的數據。 但是,當實際的陽性率較低(例如,罕見事件或數據不平衡)時,0.5的臨界值可能不是最佳的。
問題就變成了,對於稀有事件,可以使用哪種方法選擇分類截止? ROC曲線確實為我們提供了一些線索。 圖表的左上角是最大的真實陰性率(特異性)和真實陽性率(敏感性)。 查看圖2,其中標記了預測概率,我們可以看到,如果我們的目標是平衡特異性和敏感性,則對於此預測模型,約0.07的臨界值將是最佳選擇。但是,ROC曲線通常沒有用其預測概率標記。
可以使用Youden的J統計量來找到與ROC曲線上特異性和敏感性最大化的點相對應的預測概率。

Youden的J統計量介於0到1之間,其中0對應於相等的真陽性和假陽性比率,而1對應於具有所有真陽性和沒有假陽性的模型。 也可以將其視為ROC曲線上與代表隨機模型的對角線最遠的點。
如果在Fit Model Platform中使用標稱邏輯,則選擇ROC曲線時,還將獲得相應的ROC表。 表格中的一列是Youden的J統計量,並標記為Sens-(1-Spec)。 可以按Sens-(1-Spec)降序對ROC表進行排序,以識別出具有最大Sen-(1-spec)的預測概率(Prob),在該概率中,真陰性率(特異性)和真陽性率(靈敏度) )都最大化。 您會看到JMP在Sens-(1-Spec)的最大值旁邊放置一個星號。

在PAD示例中,從3,983名患者的數據集中僅發現了277名PAD患者。 0.07的分類截止值抵消了真實的正負率。 確定分類截止值後,可以在保存到數據表的預測公式中對其進行更改。 我將注意到,選擇臨界值取決於預測模型的目標以及與結果相關的風險。 如果研究人員希望防止例如誤報或誤報,研究人員可能會選擇其他截止值。