【科研猫·统计】ROC曲线(2):一码到底

2019-12-17 12:11:51 浏览数 (1)

上一期《点击可入:【统计】 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统计比较结果表。

咱们科研猫的技术向来都是很少说废话空话的技术流、实干派,所以,看看这些分析结果,各位傲娇的科研喵们可还满意?

0 人点赞