1. 程式人生 > >用R軟體包ROCR畫ROC曲線

用R軟體包ROCR畫ROC曲線

        ROC曲線可以簡單、直觀得觀察分析方法的臨床準確性,並可用肉眼作出判斷。ROC以真陽性率(靈敏度FPR)為縱座標,假陽性率(1-特異度TPR)為橫座標繪製的曲線,可準確反映某分析方法特異性和敏感性的關係,是試驗準確性的綜合代表。ROC曲線不固定分類界值,允許中間狀態存在,利於使用者結合專業知識,權衡漏診與誤診的影響,選擇一更佳截斷點作為診斷參考值。提供不同試驗之間在共同標尺下的直觀的比較,ROC曲線越凸越近左上角表明其診斷價值越大,利於不同指標間的比較。曲線下面積可評價診斷準確性。


1.相關定義及計算公式(用混淆矩陣的形式將分類結果展示出來)



2.載入R包ROCR

Packages > Install > ROCR > Install

確保電腦聯網即可下載


3.畫ROC曲線

      本身這個軟體內嵌的是有參考資料的,你可以執行:ROCR.simple$labels和ROCR.simple$predictions來檢視資料內容。

ROC曲線執行命令如下:
data(ROCR.simple)
pred <- prediction(ROCR.simple$predictions, ROCR.simple$labels) #ROCR.simple$predictions為預測標籤,ROCR.simple$labels為真實標籤
perf <- performance(pred,"tpr","fpr")
plot(perf,colorize=TRUE)


4.ROC曲線評價統計量

       ROC曲線下的面積(area under ROC curve)值在1.0和0.5之間。在AUC>0.5的情況下,AUC越接近於1,說明診斷效果越好。AUC在 0.5~0.7時有較低準確性,AUC在0.7~0.9時有一定準確性,AUC在0.9以上時有較高準確性。AUC=0.5時,說明診斷方法完全不起作用,無診斷價值。AUC<0.5不符合真實情況,在實際中極少出現。

auc值用以下命令提取:

auc <- performance(pred,'auc')
auc=unlist(slot(auc,"y.values"))