ROC曲線是什麼... 派森諾教你如何畫

受試者工作特徵曲線 (receiver operating characteristic curve,簡稱ROC),又稱為感受性曲線。

一、圖表介紹

受試者工作特徵曲線 (receiver operating characteristic curve,簡稱ROC),又稱為感受性曲線(sensitivity curve)。ROC曲線下面積(the area under the ROC curve, AUC)是指ROC曲線與x軸、(1,0)-(1,1)圍繞的面積,只要ROC曲線下面積大於0.5,就證明該診斷試驗具有一定的診斷價值。同時,AUC越接近1證明診斷試驗的真實性越好。ROC曲線越是靠近左上角,靈敏度越高,誤判率越低,則診斷方法的性能越好。可知ROC曲線上最靠近左上角的ROC曲線上的點其靈敏度和特異性之和最大,這個點或者其鄰近點常被稱為診斷參考值,這些點被稱為最佳臨界點,點上的值被稱為最佳臨界值。

ROC曲線可以用於比較兩種或兩種以上不同診斷方法對疾病的識別能力大小。在對同一疾病的兩種或是兩種診斷方法進行比較時,可將各個診斷方法的ROC曲線畫到同一個ROC空間中(同一個坐標係中),這樣就可以直觀的鑒別各種診斷方法的優劣了。越是靠近左上角的ROC曲線所代表的診斷方法性能越好。

圖1 ROC曲線圖


二、R語言實現

1. 繪製ROC曲線

library("pROC")# Create a few ROC curves:data(aSAH)roc.s100b <- roc(aSAH$outcome, aSAH$s100b)roc.wfns <- roc(aSAH$outcome, aSAH$wfns)roc.ndka <- roc(aSAH$outcome, aSAH$wfns)
# 先畫個簡單的ROCplot(roc.s100b)

圖2 簡單ROC圖


2. 添加擬合線

# 添加擬合後的光滑曲線
plot(smooth(roc.s100b), add=TRUE, col="blue")
legend("bottomright", legend=c("Empirical", "Smoothed"),
      col=c(par("fg"), "blue"), lwd=2)

圖3 添加擬合曲線ROC


3. 添加面積

# 添加AUC面積
plot(roc.s100b, print.auc=TRUE, auc.polygon=TRUE, grid=c(0.1, 0.2),
    grid.col=c("green", "red"), max.auc.polygon=TRUE,
    auc.polygon.col="lightblue", print.thres=TRUE)

圖4 ROC圖添加AUC

以上ROC曲線,只是針對單個指標的,如果有多個診斷指標該如何繪圖呢?另外,針對數據如何添加置信度區間呢?要調整更多樣式也挺費功夫的。接下來我們看看基因雲平臺如何滑溜的實現。


三、平臺實現

首先,登入派森諾基因雲, 進入【雲圖匯→ROC曲線

1. 準備數據

數據第一列為分類診斷結果,其他列為對應的指標的預測值。

圖5  資料檔案示例


2. 提交繪圖

上傳數據後,一鍵提交繪圖即可。

圖6 提交數據繪圖


3. 參數調整

在圖表調整裏面可以對圖表的顏色、線條樣式、還可以添加置信度等多種參數的個性化調整。

圖7 參數調整頁面


添加平滑曲線,通過選擇S-G濾波、高階貝塞爾等方法,可以生成不同精度的擬合曲線。

圖8 平滑ROC曲線


置信區間的調整,可以選擇誤差棒以及面積著色兩種形式進行展示。

圖9 添加置信區域ROC曲線


      中國網是國務院新聞辦公室領導,中國外文出版發行事業局管理的國家重點新聞網站。本網通過10個語種11個文版,24小時對外發佈資訊,是中國進行國際傳播、資訊交流的重要窗口。

      凡本網註明“來源:中國網”的所有作品,均為中國網際網路新聞中心合法擁有版權或有權使用的作品,未經本網授權不得轉載、摘編或利用其他方式使用上述作品。

電話:0086-10-88828000

傳真:0086-10-88828231

媒體合作:0086-10-88828175

品牌活動合作:0086-10-88828063

廣告合作:0086-10-88825964