在最近的一次技術講座網絡研討會,我討論了預測外周動脈疾病 (PAD) 的風險,其中響應是明確的,有兩種可能的結果:是(患者有患 PAD 的風險)和否(患者沒有患 PAD 的風險)。
在那次演講中,我指出預測模型包含兩部分:1)模型創建的概率函數;2)用於將數據分類為最有可能是或否的截止值。 我簡單提到,ROC 曲線是評估和比較模型創建的概率函數的好方法。
這篇博文將進一步解釋 ROC 曲線以及如何解釋它們。 我還將在預測罕見事件(不平衡數據)和選擇分類截止值時提供一些有關 ROC 曲線的想法。
ROC曲線
外周動脈疾病 (PAD) 風險預測模型的 ROC 曲線如圖 1 所示。
Figure 1. ROC Curve for PAD prediction model.Figure 1. ROC Curve for PAD prediction model.Figure 1. ROC Curve for PAD prediction model.圖1。 PAD 預測模型的 ROC 曲線。
ROC曲線的標準要素:
- x軸為1-Specificity,即假陽性率;它的範圍從 0 到 1。 它也可以被認為是模型的 I 類錯誤。
- y軸是Sensitivity,即真陽性的比例;它的範圍從 0 到 1。 它也可以被認為是模型的力量,或者 1-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 = Yes 的相應預測概率。
Figure 2. ROC Curve for Rare Event Example.Figure 2. ROC Curve for Rare Event Example.Figure 2. ROC Curve for Rare Event Example.圖 2. 罕見事件示例的 ROC 曲線。
首先,請注意數據點按預測概率排列,範圍從 0.02 到 0.53。 如果我根據“是”和“否”的數量相同的數據集構建了一個模型,我預計範圍將在 0 到 1 之間,其中 0.5 靠近曲線中心。 然而,該數據集適用於稀有或不平衡的數據集,這意味著“是”的頻率比“否”的頻率要低得多。因此,所有預測概率都落在該範圍的下限- 它們均為0.53 及以下。
圖表右上角的數據點對應於數據子集中的最低預測概率 (0.02)。 在我們討論用於繪製這一點的計算之前,請花一點時間考慮一下該場景。 如果我們使用最低預測概率之一作為截止值對所有預測概率進行分類,我們的分類會發生什麼? 當其中許多數據實際上為“否”時,幾乎所有數據都會被分類為“是”。這對應於高誤報率(1-特異性)。 同樣,任何為“是”的數據都將被分類為“是”,即高真陽性率(靈敏度)。
還要考慮圖表左下角的數據點。 該點對應於數據中的最高預測概率 (0.53)。如果使用最高預測概率作為截止值,則所有數據將被分類為“否”,這意味著誤報率(1-特異性)很低,實際上為零。任何為“是”的數據都將被分類為“否”,這會導致真陽性率(靈敏度)較低,並且再次為零。
計算 1-特異性和靈敏度
為了在 ROC 曲線上繪製數據,我們必須計算 1-特異性和靈敏度。 讓我們從圖 2 右上角的數據點開始,它對應於數據子集中的最低預測概率 (0.02)。 首先,使用預測概率 0.02 作為截止值,將整個數據集分類為“是”或“否”。將此預測條件與實際或真實條件進行比較,數據可分為四種結果:真陽性、真陰性、假陰性、假陽性(圖3)。 圖 3 稱為混淆矩陣,混淆矩陣中填充的數字用於計算 1-特異性和靈敏度。
|
真實情況
|
實際積極
|
實際負面
|
預測狀況
|
預測為陽性
|
真陽性 (TP)
|
誤報 (FP)
|
預測陰性
|
假陰性 (FN)
|
真陰性 (TN)
|
圖 3. 二元分類模型的結果(混淆矩陣)。
1-特異性
1-特異性是假陽性率,通過用 1 減去真陰性率來計算。 真陰性率是模型預測的真陰性 (TN) 數量除以實際陰性總數,其中包括真陰性 (TN) 和假陽性 (FP)。

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

將 0.02 的分類截止值應用於整個數據集後,我們得到如圖 4 所示的結果。
|
真實情況
|
實際積極
|
實際負面
|
預測狀況
|
預測為陽性
|
目標價 = 277
|
FP = 3394
|
預測陰性
|
FN = 0
|
TN = 312
|
圖 4. 分類截止值為 0.02 的 PAD 預測模型的結果。
根據這些結果,我們可以計算 1-特異性和敏感性,分別對應於繪製在 ROC 曲線上的 x 和 y 值。


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

Youden 的 J 統計量範圍在 0 和 1 之間,其中 0 對應於相同的真陽性率和假陽性率,1 對應於所有真陽性且沒有假陽性的模型。 它也可以被認為是 ROC 曲線上距離代表隨機模型的對角線最遠的點。
如果您在擬合模型平台中使用Nominal Logistic,當您選擇ROC曲線時,您還將獲得相應的ROC表。 表中的一列是 Youden's J Statistic,標記為 Sens-(1-Spec)。 ROC 表可以按 Sens-(1-Spec) 降序排序,以識別具有最大 Sen-(1-spec) 的預測概率 (Prob),即真陰性率(特異性)和真陽性率(靈敏度) )兩者都最大化。 您可以看到 JMP 在 Sens-(1-Spec) 的最大值旁邊添加了一個星號。

在 PAD 示例中,3,983 名患者的數據集中只有 277 名 PAD 患者; 0.07 的分類截止值平衡了真陽性率和真陰性率。 一旦確定了分類截止值,就可以在保存到數據表的預測公式中對其進行更改。 我要指出的是,選擇截止值取決於預測模型的目標以及與結果相關的風險。 例如,如果研究人員希望防止誤報或誤報,則可以選擇不同的截止值。