2021-10-14
一、圖表介紹
受試者工作特征曲線 (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曲線可以(yi)用于(yu)比較兩(liang)種或兩(liang)種以(yi)上不同診(zhen)斷(duan)方法(fa)對疾(ji)病的(de)識別(bie)能(neng)力大(da)小。在對同一疾(ji)病的(de)兩(liang)種或是兩(liang)種診(zhen)斷(duan)方法(fa)進行比較時,可將各(ge)個診(zhen)斷(duan)方法(fa)的(de)ROC曲線畫到同一個ROC空間中(同一個坐標系中),這樣就可以(yi)直(zhi)觀(guan)的(de)鑒別(bie)各(ge)種診(zhen)斷(duan)方法(fa)的(de)優劣了。越是靠(kao)近左上角的(de)ROC曲線所代表的(de)診(zhen)斷(duan)方法(fa)性(xing)能(neng)越好。
圖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)
# 先(xian)畫個簡(jian)單的ROC
plot(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曲線,只是針對(dui)單個指(zhi)標的,如(ru)(ru)果有多個診(zhen)斷指(zhi)標該如(ru)(ru)何(he)繪圖呢?另外(wai),針對(dui)數據如(ru)(ru)何(he)添加置(zhi)信度(du)區間呢?要(yao)調(diao)整更多樣式也挺費功夫的。接(jie)下來我們看看基因云平(ping)臺如(ru)(ru)何(he)滑溜(liu)的實現。
三、平臺實現
首先,登入派森諾基因云, 進入【云圖匯→ROC曲線】
1. 準備數據
數據第一列為分類診(zhen)斷結果,其它列為對應的指標(biao)的預測值。
圖5 數據文件示例
2. 提交繪圖
上傳(chuan)數據后,一鍵提交繪圖即可。
圖6 提交數據繪圖
3. 參數調整
在圖(tu)表調整里(li)面可(ke)(ke)以對圖(tu)表的顏色(se)、線條(tiao)樣式、還可(ke)(ke)以添加置信(xin)度等多種參數的個性化調整。
圖7 參數調整頁面
添加平(ping)滑曲線,通(tong)過選擇S-G濾波、高階(jie)貝(bei)塞(sai)爾(er)等方法,可(ke)以生成不同精(jing)度的擬合曲線。
圖8 平滑ROC曲線
置信區間的調(diao)整(zheng),可以(yi)選擇誤差(cha)棒以(yi)及面積著色兩種形式進行展示。
圖9 添加置信區域ROC曲線
更多技術資訊,請關注派森(sen)諾官網