【科研貓·統計】ROC曲線(2):一碼到底

  • 2019 年 12 月 17 日
  • 筆記

上一期《點擊可入:【統計】 ROC曲線(1) –

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語言系列 」乾貨直通車,想學哪裡點哪裡》系列課程,多的不說,把前三節看會了是必須的。然後,來看看我們的結果截圖:

是不是很贊!這個工具的幾大特點:

  1. 多模型繪圖,一鍵生成(最多可支援5條ROC曲線)
  2. 支援全方位模型評估(多達14種參數)
  3. 支援多模型間比較(自動計算兩兩比較)
  4. 輸入文件簡單易學(excel直接導入)
  5. 矢量圖形輸出(直接輸出發表級別矢量圖)

下面我們就來看看這個工具怎麼用吧。

導入數據

第一步

上面剛剛講過我們的數據是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統計比較結果表。

咱們科研貓的技術向來都是很少說廢話空話的技術流、實幹派,所以,看看這些分析結果,各位傲嬌的科研喵們可還滿意?