首页 > 其他分享 >手把手教你做ROC曲线

手把手教你做ROC曲线

时间:2023-05-30 14:45:20浏览次数:32  
标签:text2 AUC 曲线 手把手 ROC 准确率 诊断 教你做

ROC曲线构建流程如下:

一、案例背景

某医师针对55名病人、45名正常人分别进行两种诊断检验,诊断结果分别为text1、text2,想要研究两种诊断方式的预测准确率。图1展示了收集的部分数据如下:

图1

其中是否生病一栏,1代表生病,0代表未生病。

本案例的分析目的是研究两种诊断方式的预测准确率,所以可以通过比较两种诊断方式的ROC曲线的AUC值进行判断。为了帮助大家更好的理解ROC曲线,下面对ROC曲线的相关理论进行介绍。

二、相关理论

ROC曲线全程为受试者工作特征曲线,主要适用于评价二分类变量反映治疗效果或检查结果。下面分别介绍ROC曲线的概念、相关专业术语解释、以及关键指标AUC的判断。

(1)ROC曲线

ROC曲线分析当前在医学领域使用非常广泛,用于研究X(检验变量)对于Y(状态变量)的预测准确率情况以及确定界值点。

ROC曲线的基本思想是把敏感度和特异性看作一个连续变化的过程,用一条曲线描述诊断系统的性能,其制作原理是在连续变量中不同界值点处计算相对应的灵敏度和特异度,然后以敏感度为纵坐标、1-特异性为横坐标绘制一条真阳性率与假阳性率的曲线。

ROC曲线如图2:

图2

ROC曲线纵坐标为敏感度——阳性人群中,检测出阳性的概率,希望该值越高越好;横坐标为1-特异性——阴性人群中,检测为阳性的概率,希望该值越低越好。结合横纵坐标的概念,可以得到结论:曲线越往左上角说明预测准确率越高;曲线越往左上角说明曲线下面积越大,即AUC值越大说明预测准确率越高。

(2)专业术语解释

ROC曲线分析中有很多专业名词,说明如下图:

图3

以图4数据为例进行说明:

(3)ROC曲线下面积

ROC曲线下面积——AUC值的大小可以作为衡量试验准确度的一个指标,ROC曲线下面积值越大,说明预测准确度越高,反之说明预测准确率越低。AUC值介于0到1之间,关于AUC值的判断说明如下:

AUC<0.5:不符合实际情况, 预测诊断比随机性猜测还差,实际情况中不应该出现;

AUC=0.5:说明完全无预测诊断价值,预测准确率和猜测效果一样;

0.5< AUC <0.7:预测诊断价值很低,此种情况相对较常见;

0.7<=AUC<0.9:预测诊断价值高,此种情况较常见;

AUC>=0.9:说明预测诊断价值高,此种情况较好;

AUC = 1,是完美预测没有瑕疵,绝大多数情况下,不存在完美的预测诊断。

对ROC曲线的相关理论有了一定理解之后,接下来就可是使用SPSSAU软件的ROC曲线分析功能进行ROC曲线的构建与分析了。

三、分析操作

上传数据至SPSSAU系统,首先使用SPSSAU的数据标签功能,将是否生病变量中的数字1标识为“生病”,数字0标识为“未生病”,然后点击确认标签,操作如图5:

图5

数据处理完成后,选择ROC曲线分析,将“是否生病”拖拽到右侧状态变量y分析框中;将两次诊断结果拖拽到检验变量x分析框中;分割点默认设置为1(1代表生病,0代表未生病);点击开始分析,操作如图6:

图6

点击开始分析后,SPSSAU将自动输出ROC曲线分析结果;接下来对分析结果进行解读。

四、分析结果解读

①分样本处理结果

图7

首先对案例数据基本情况进行描述,图7展示了样本通过金标准诊断为阳性和阴性的人数。以数字1作为切割点, 1做为阳性,其它作为阴性。从图7可以看出:本次参与分析的样本中,阳性比例为55.00%,阴性比例为45.00%。

②ROC结果AUC汇总

图8

图8展示了本次ROC分析结果的AUC值以及对应的95%CI。从上图可以看出,text1对应的AUC值为0.947(95% CI:89.96%~99.38%),意味着text1对于是否生病的诊断价值非常高。text2对应的AUC值为0.679(95%CI:0.547~0.784),意味着text2对于是否生病的诊断价值比较低。

③ROC最佳界值结果

图9

图9展示了ROC最佳界值相关结果。最佳界值的意义为ROC曲线最靠近左上角的点,即敏感度和误报率组合的相对最优值。最佳临界值指尤登指数的最大值(尤登指数=敏感度 + 特异度 – 1),而Cut-off指在该值时可得到最大的尤登指数,二者是不同的名词,通常情况下使用最佳临界值较多。

从上图可以看出,text1的AUC值为0.947,对应最佳界值为0.820(此时敏感度为0.909,特异度为0.911);对应的Cut-off值为108.9。text2的AUC值为0.679,对应最佳界值为0.277(此时敏感度为0.455,特异度为0.822);对应Cut-off值为147。

④ROC曲线

图10

ROC曲线直观展示假阳性率(1-特异度)与真阳性率(敏感度)之间的关系情况。可以明显的看出,text1的AUC值(ROC曲线下面积)明显大于text2的面积,说明text1的预测准确率明显高于text2的预测准确率。

⑤ROC曲线之AUC比较检验

图11

最后,如果需要对比两项诊断方式的AUC面积是否存在着显著性差异,可手工录入四个数字,包括两个AUC值和两个标准误SE值。对应会生成AUC差值,z 值和p 值。上图显示,text1和text2这两项的AUC值呈现出显著性差异(z =4.6063,p =0.0000<0.01)。

五、总结

ROC曲线是以敏感度为纵坐标、1-特异性为横坐标绘制一条真阳性率与假阳性率的曲线。通过ROC曲线下面积AUC值可以对预测准确性进行评价;同时可以结合敏感度和特异性可以确定筛查标准的最佳界值点。在本次案例分析中,通过ROC曲线分析,得到text1的AUC值为0.947,预测诊断价值很高;text2的AUC值为0.679,预测诊断价值很低。针对两项的AUC面积进行显著性检验,得到二者诊断准确率存在显著性差异,即text1的诊断准确率明显高于text2的诊断准确率。

标签:text2,AUC,曲线,手把手,ROC,准确率,诊断,教你做
From: https://www.cnblogs.com/spssau/p/17443187.html

相关文章

  • SpringBoot集成RocketMQ,rocketmq_client.log日志文件配置
    SpringBoot项目集成rocketmq-client<dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-client</artifactId><version>4.7.0</version></dependency>项目启动时会在${user.home}/logs目录下创建一个roc......
  • An attempt has been made to start a new process before the current process has f
     Traceback(mostrecentcalllast): File"<string>",line1,in<module> File"E:\Eprogramfiles\Anaconda3\lib\multiprocessing\spawn.py",line116,inspawn_main   exitcode=_main(fd,parent_sentinel) File"E......
  • Rockchip RK3399 - 移植ubuntu根文件系统
    在上一篇文章中,我们介绍了通过busybox构建根文件系统,但是我们在使用的过程中有个致命的问题,就是缺少各种命令以及各种开发环境,比如python,jdk、mysql啊。比如我们需要使用python开发环境,那么我们就得自己去下载python源码编译,然后移植到开发板中。那我们就开始想,我们是不是像cento......
  • RocketMQ4.9.5集群部署
    RocketMQ集群部署背景:生产环境单机的MQ不具有高可用,所以我们应该部署成集群模式,这里给大家部署一个双主双从异步复制的Broker集群一、单机部署、部署前提参考https://www.cnblogs.com/hsyw/p/17428530.htmlhttps://www.cnblogs.com/hsyw/p/17429834.html二、集群部署......
  • RocketMQ 顺序消费机制
    顺序消息是指对于一个指定的Topic,消息严格按照先进先出(FIFO)的原则进行消息发布和消费,即先发布的消息先消费,后发布的消息后消费。顺序消息分为分区顺序消息和全局顺序消息。1、分区顺序消息对于指定的一个Topic,所有消息根据ShardingKey进行区块分区,同一个分区内的消息按......
  • Unity的AssetPostprocessor之Model:深入解析与实用案例 1
    UnityAssetPostprocessor模型相关函数详解在Unity中,AssetPostprocessor是一个非常有用的工具,它可以在导入资源时自动执行一些操作。在本文中,我们将重点介绍AssetPostprocessor中与模型相关的函数,并提供多个使用例子。OnPostprocessModelOnPostprocessModel是AssetPostprocessor......
  • Vivado2019.2下载(官网&百度云)与安装(手把手)
    龙芯杯对于vivado版本的要求:VivadoDesignSuiteHLWebPACK™版是革命性设计套件的免费版本。我们用它,能满足龙芯杯的需要,而且不用license区别如下:下载地址记得创建xilinx账号或者登陆!!!第一个是指下载一个exe之后,点击这个exe进行在线安装第二个是指把20几G的软件全部下到本地......
  • Rockchip RK3399 - 移植uboot 2023.04和内核FIT uImage制作
    ----------------------------------------------------------------------------------------------------------------------------开发板:NanoPC-T4开发板eMMC:16GBLPDDR3:4GB显示屏:15.6HDMI接口显示屏u-boot:2023.04linux  :5.2.8------------------------------------------......
  • 【教程】手把手教你如何修改ChatGPT的密码
    申请OpenAI成功后,如何修改OpenAI的密码?OpenAI并没有内置账号安全管理的选项,因此它其实并没有绑定任何手机号的,手机号只是一道机器验证,邮箱也是。所以如果你用邮箱注册了OpenAI的话,后面是无法修改更换邮箱的。下面教你如何修改ChatGPT的密码,手机电脑端均可修改:第一步,打开OpenAI登陆......
  • Unity的IUnityLinkerProcessor:深入解析与实用案例
    UnityIUnityLinkerProcessorUnityIUnityLinkerProcessor是Unity引擎中的一个接口,它允许开发者在Unity项目构建时对代码进行链接处理。这个接口可以用来优化项目构建大小,减少不必要的代码和资源,提高项目的性能和加载速度。接口定义IUnityLinkerProcessor接口定义如下:namespace......