【科研貓·統計】ROC曲線(2):一碼到底
- 2019 年 12 月 17 日
- 筆記
ROC曲線作為評估模型效能的工具,其使用頻率是極其高的,平時我們在做ROC分析的時候會遇到很多問題,比如:
- 如何同時繪製多個模型的ROC曲線;
- 如何計算評估模型效能的參數;
- 如何通過統計分析比較模型優劣…..
這些問題都一直困擾著很多人。為啥困擾呢?因為沒有軟體可以把這些分析一下子都做了!打個比方吧,SPSS是做統計分析的權威軟體之一,它就能夠輕鬆幫我們製作ROC曲線,但是,也僅僅只能繪製ROC曲線了。畫出來的圖形是往往這樣的:

這樣的結果呢,從畫圖上來說,也算是滿足我們的要求的。但是,我們評估模型的好壞不僅僅是做一個ROC曲線,看看AUC面積就結束了,還要看很多指標,比如上一期我們講到的NPV(陰性預測值)、PPV(陽性預測值)、Specificity(特異性),Sensitivity(靈敏度)、Accuracy(準確度)等數值,這些數值怎麼計算呢?
這個時候我們就要講到上期我們提及的約登指數了。在這裡我們不再重複贅述約登指數的概念。那SPSS能否通過約登指數確定最優cut-off值,然後計算上面的這些指標呢?答案是:不能!網上有很多人百度查找解決方案,因為ROC圖出來了,結果一堆模型評估的數值出不來,導致很難往下寫文章。

英雄往往都是在大家走投無路的時候出現的,因為我們的技術大牛切身體會到大家在做ROC分析時的苦楚,所以,開發了一款全能工具。是時候祭出我們的必殺技了!終結者系列之「ROC曲線終結者」。

我們的工具是基於R程式碼開發的,所以如果沒有任何R語言基礎的同學,建議先行從R語言基礎學起來,哪怕不會寫R程式碼,最起碼得懂怎麼運行吧。沒有R語言基礎的,請務必點擊這裡:《「 R語言系列 」乾貨直通車,想學哪裡點哪裡》系列課程,多的不說,把前三節看會了是必須的。然後,來看看我們的結果截圖:

是不是很贊!這個工具的幾大特點:
- 多模型繪圖,一鍵生成(最多可支援5條ROC曲線)
- 支援全方位模型評估(多達14種參數)
- 支援多模型間比較(自動計算兩兩比較)
- 輸入文件簡單易學(excel直接導入)
- 矢量圖形輸出(直接輸出發表級別矢量圖)
下面我們就來看看這個工具怎麼用吧。

導入數據
第一步


上面剛剛講過我們的數據是excel直接導入即可,所以,數據格式其實很簡單,看一下就明白了。程式碼會自動讀入一個名為data.xlsx的Excel文件,這個文件的格式如下:

就跟咱們平時用SPSS或者GraphPad做ROC曲線分析的時候一摸一樣,一列二分類變數(比如預後好/差),幾列測量變數(比如腫瘤指標的高低、CT上腫瘤的大小等等)。我們要做的就是把數據拷貝到這個文件中就萬事大吉了。我們的分析工具最多可以支援5個測量變數哦。

開始分析
第二步


數據導入之後,用RStudio打開我們的R程式碼:ROC_Terminator.R。直接「全選(Ctrl+A)」-「運行(Ctrl+Enter)「即可。然後只需等待幾秒,數據結果(共6個文件)就會乖乖出現在你的程式碼所在的目錄下了。如下所示:

這六個文件分別是:(1)整合的ROC曲線(不同配色、線型區別,含AUC值);(2)平滑擬合的ROC曲線;(3)帶有95%置信區間(Confidence Interval,CI)的ROC曲線帶狀圖;(4)帶有95%置信區間的ROC曲線箱線圖;(5)14種模型評估參數表;(6)多模型兩兩間Delong統計比較結果表。
咱們科研貓的技術向來都是很少說廢話空話的技術流、實幹派,所以,看看這些分析結果,各位傲嬌的科研喵們可還滿意?