ROC曲线绘制原理及如何用SPSS绘制ROC曲线

2023-11-20

《本文同步发布于“脑之说”微信公众号,欢迎搜索关注~~》

ROC曲线(Receiver operating characteristic curve),即受试者工作特征曲线,主要用来评价某个指标对两类被试(如病人和健康人)分类/诊断的效果,以及寻找最佳的指标临界值使得分类效果最好。但是ROC曲线绘制的原理是什么,或者说如何一步步画出ROC曲线,以及如何用SPSS软件快速绘制出ROC曲线呢?对于很多新手朋友来说,对上述问题并不十分清楚。笔者这里对上述问题进行详细阐述,以期大家对ROC曲线有更深入的了解。

ROC曲线的主要用途

前面已经提到,ROC曲线的主要用途有两个:1)评价某个/多个指标对两类被试(如病人和健康人)分类/诊断的效果。通过画出某个指标的ROC曲线就可以很明确地看出其分类/诊断效果的好坏;另外,可以同时画出多个指标的ROC曲线并计算各自的AUC(area under ROC,ROC曲线下的面积),就可以知道哪个指标的分类/诊断效果更好。2)寻找最佳的指标阈值使得分类效果最佳。

ROC曲线的绘制原理

ROC曲线是如何绘制出来的呢?在此之前,我们先学习几个基本的概念。1)真阳性率(TPR, True positive rate):所有实际为阳性的样本被正确地判断为阳性的个数与所有实际为阳性的样本个数之比,TPR又称为Sensitivity(灵敏度);2)假阳性概率(FPR, False positive rate):所有实际为阴性的样本被错误地判断为阳性的个数与所有实际为阴性的样本个数之比,FPR等于1-Specificity。
ROC曲线其实就是以FPR为横坐标,TPR为纵坐标绘制出来的曲线。

下面以一个具体的例子来详细了解ROC曲线是如何绘制的。
如图1所示,假设有10个被试,分成两类,Class=1的表示阳性样本,Class=0的表示阴性样本,Value表示测量的某个指标值。
1)首先,依据Value值从大到小对这10个被试进行排序(图1已经是按此规则排过序的);
2)接下来,依次把Value值作为阈值(即阈值依次为0.9,0.8,0.7,…,0.05),当被试的Value值大于等于此阈值时被认为是阳性,否则此被试被认为是阴性。比如说,当以Value=0.6作为阈值,那么被试1,2,3,4被分类成阳性样本,其他被试被分类成阴性样本,据此,我们可以计算得到TPR=3/5,FPR=1/5。这样,我们就可以得到一组(TPR,FPR)值,依次把这10个Value值作为阈值,我们就可以得到10组(TPR,FPR)值,把这10组(TPR,FPR)绘制出来得到的曲线就是ROC曲线。
在这里插入图片描述图1

如何用SPSS绘制ROC曲线

当样本数据较多时,这样手算TPR和FPR比较麻烦,那么如何利用SPSS绘制ROC曲线呢?接下来,笔者通过实例操作教大家学会用SPSS绘制ROC曲线。

  1. 部分数据如图2所示:Group变量的值为0或1,表示两类被试,Value值表示测量的某个指标。
    在这里插入图片描述
    图2

  2. 点击SPSS菜单栏中“分析—ROC曲线图”,如图3所示。
    在这里插入图片描述
    图3

  3. 参数设置如图4,最后点击确定即可。
    在这里插入图片描述
    图4

  4. ROC曲线如图5所示,其中AUC=0.832.
    在这里插入图片描述
    图5

  5. ROC曲线对应的坐标点值如图6所示,这些坐标点表示不同阈值下得到的TPR和FPR.
    在这里插入图片描述
    图6

  6. 如何寻找最佳的指标阈值使得分类效果最好?最佳的指标阈值一般处于ROC曲线的最左上角,即TPR最大同时FPR最小。一般用Youden’s index来确定最佳指标阈值,Youden’s index=TPR-FPR=TPR-Specifity+1。可以利用图6的坐标数据,计算每个坐标处的Youden’s index,当Youden’s index最大时对应的指标值即为最佳的指标阈值。

总结
本文主要对ROC曲线绘制的原理以及如何用SPSS软件快速绘制出ROC曲线进行了详细的阐述,希望对大家的研究有所帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ROC曲线绘制原理及如何用SPSS绘制ROC曲线 的相关文章

  • C#System.ArgumentException

    C 自定义控件GDI绘制在主程序报错System ArgumentException 我的绘制图片内容大概如下 private Bitmap backGroundImage null private Bitmap prospectImage
  • Java 6-1 项目模块化-概念

    6 1 项目模块化 概念 一 组件化与模块化 组件化 以功能为依据 解决复用问题 初衷 可复用的代码 进行工具性的封装 目的 复用 解耦 依赖 各组件之间独立 低依赖甚至零依赖 架构 纵向 位于项目底层 被其他上层依赖 举例 Dialog
  • 完全数

    my0163 完全数 HOBO浩 描述 求正整数 2 和 n 之间的完全数 一行一个数 完全数 因子之和等于它本身的自然数 如 6 1 2 3 输入 输入n 1 n 5000 输出 一行一个数 按由小到大的顺序 输入样例 7 输出样例 6
  • 自学网络安全(黑客)的误区

    前言 网络安全入门到底是先学编程还是先学计算机基础 这是一个争议比较大的问题 有的人会建议先学编程 而有的人会建议先学计算机基础 其实这都是要学的 而且这些对学习网络安全来说非常重要 一 网络安全学习的误区 1 不要试图以编程为基础去学习网
  • java 二阶段提交,二阶段提交协议(Two Phase Commitment Protocol)

    一 典型的分布式事务实例 跨行转账问题是一个典型的分布式事务 用户A向B的一个转账1000 要进行A的余额 1000 B的余额 1000 显然必须保证这两个操作的事务性 类似的还有 电商系统中 当有用户下单后 除了在订单表插入记 还要在商品
  • mysql数据库常用sql语句

    数据库可以用图形化工具来实现一系列操作 这里涉及一些cmd命令行 首先要配置好环境变量可以全局操作命令 不然只能在mysql的安装目录下进行操作 这里不再叙述 1 进入数据库 mysql u root p 默认用户名为root 这个与mys
  • Flutter 中的单元测试:从工作流基础到复杂场景

    对 Flutter 的兴趣空前高涨 而且早就应该出现了 Google 的开源 SDK 与 Android iOS macOS Web Windows 和 Linux 兼容 单个 Flutter 代码库支持所有这些 单元测试有助于交付一致且可
  • 3种方法更改Linux系统的主机名(hostname)

    3种方法更改Linux系统的主机名 hostname
  • type-aliases-package的作用

    mapper xml文件中resultType或者parameterType会使用JavaBean作为返回结果或者参数需要使用完全限定名来指定引用 例如
  • undefined reference to ceil 链接错误

    undefined reference to ceil 链接错误 原因今天编译一个C文件 输入下面的代码后 GOP12 c文件代码大致为 include
  • 森林的先序和中序遍历

    森林的先序和中序遍历 先序遍历 中序遍历 最靠谱的方法 先序遍历 中序遍历 最靠谱的方法 把森林转为二叉树 左孩子 右兄弟的那种 然后对二叉树进行先序或中序遍历即得正确结果
  • 机器ubuntu20.04和ubuntu16.04在局域网下ros通信

    多台机器ros局域网通信 试过在ubuntu16 04的机器人和ubuntu20 04下安装不同版本ros通信 测试成功 首先保证两台机器在同一个局域网内 可以相互ping通 1 查看ip地址 ifconfig 2 ssh远程登录机器人计算
  • Qt界面制作简单教程,调用python代码

    利用Qt5design或Qt5Creator制作界面的布局 包括设置按钮的个数 布局和大小等 注意记得为每个按钮添加槽函数 保存生成 ui文件 利用pyuic5 xxx ui gt xxx py或pyuic5 xxx ui o xxx py
  • 最全的雅思8000词汇pdf_助力9分

    词汇是雅思学习的基础 对此我们特别设立 9分词汇 小栏目 专门分享词汇相关干货 包括但不限于 高频词解析 场景词汇总结 熟词辟义 同义替换等等 如果你还有其他有关词汇想要学习了解的 欢迎给我们留言 一定及时为大家补充 雅思听力part 1
  • html点击收缩展开菜单栏,jquery实现点击向下展开菜单项(伸缩导航)效果

    本文实例讲述了jquery实现点击向下展开菜单项 伸缩导航 效果 分享给大家供大家参考 具体如下 这里演示基于jquery打造的向下展开的多级导航条效果 纵向垂直排列 风格非常的简洁 鼠标点击时候展开菜单的二级项 再次点击的时候又向上合拢
  • Spring事务传播属性

    参考文献 Spring事务传播属性和隔离级别 https www cnblogs com eunice sun p 11024584 html spring事务传播机制总结 https blog csdn net m18330808841
  • GBA编程和汉化常用软件汇总

    内容来自GBA吧中的痴狂小黑 本人只是做个汇总和搬运 1 简易图片导入导出套装 PicSimpleImEx AutoPicRock Ver1 0 这两个软件是用C 写的 想要用 先装dotNetFx40 Full x86 x64 exe 然
  • 算法问题实战策略

    算法问题实战策略 基本信息作者 韩 具宗万 译者 崔盛一出版社 人民邮电出版社ISBN 9787115384621上架时间 2015 2 4出版日期 2015 年3月开本 16开页码 738版次 1 1 内容简介 算法问题实战策略 本书收录
  • 手动搭建torch2.0环境

    一 下载相关whl 1 从Previous PyTorch Versions PyTorch检查相互版本是否兼容 否则会出现无法使用cuda的问题 2 从https download pytorch org whl torch stable

随机推荐

  • 阶乘质因子分解(唯一分解定理)

    阶乘质因子分解 题目描述 对N 进行质因子分解 输入输出格式 输入格式 输入数据仅有一行包含一个正整数N N lt 10000 输出格式 输出数据包含若干行 每行两个正整数p a 中间用一个空格隔开 表示N 包含a个质因子p 要求按p的值从
  • Python JS逆向篇(一)

    Python JS逆向篇 一 效果实现 思路 最后一步 逆向 p a HmacSHA256 t s a state commonStore cupid sign key JS实现 py实现 先苦后甜 逆向主题 51job请求头headers
  • 【NodeJS】Express框架快速入门

    简介 作为前端开发 Nodejs已经成了很多公司对我们这一岗位的硬性要求 而 Express 框架则是其中知名度最高 也是最受欢迎的Nodejs开发框架 它帮助我们封装了Nodejs底层的API 屏蔽了大量的繁琐的细节 让我们只需要关注业务
  • Mybatis框架解析

    一 Mybatis框架简介 MyBatis框架是一个开源的数据持久层框架 它的内部封装了通过JDBC访问数据库的操作 支持普通的SQL查询 存储过程和高级映射 几乎消除了所有的JDBC代码和参数的手工设置以及结果集的检索 MyBatis作为
  • PAM机制

    一 PAM简介 Linux PAM linux可插入认证模块 是一套共享库 使本地系统管理员可以随意选择程序的认证方式 换句话说 不用 重新编写和 重新编译一个包含PAM功能的应用程序 就可以改变它使用的认证机制 这种方式下 就算升级本地认
  • 无监督低照度图像增强网络ZeroDCE和SCI介绍

    目录 简介 Zero DCE 算法介绍 模型代码 无监督loss介绍 小结 Self Calibrated Illumination SCI 模型介绍 无监督loss介绍 小结 总结 简介 当前有较多深度学习的方法来做图像效果增强 但多数都
  • 量化投资学习-31:如何评判专家的战法是否真的有效还是瞎蒙?

    每逢牛市 都会冒出各种股神 各种专家 在牛市大趋势的东风下 各种专家鱼龙混杂 如何如何评判专家的战法是否真的有效还是瞎蒙 所谓牛市 就是高点越来越高 即使在任何一个时间点买入 短暂的亏损后 股价也再创新高 一样能赚钱 因此 在牛市的大势下
  • 三个闭环负反馈PID调节系统:电流环、速度环和位置环的关系

    三个闭环负反馈PID调节系统 电流环 速度环和位置环的关系 伺服电机为了达到生产的精准控制 电机一般采用三环控制 这主要是为了使伺服电机系统形成闭环控制 所谓三环就是3个闭环负反馈PID调节系统 电压映射电流变化 电流映射转矩大小 转矩大小
  • Sql语句中的DML语句

    一 什么是DML语句 DML语句就是数据库操作语句 二 DML语句的分类 Insert 插入 Update 修改更新 Delete 删除 Select 选择 三 insert语句 Delete from 表名名称 where 条件 DELE
  • windows下配置Mysql-5.7.9服务

    第一步 从官方网站下载 mysql 5 7 9 winx64 zip 第二步 解压缩 在根目录下复制my default ini 改名为my ini 第三步 初始化mysql目录 bin mysqld initialize user mys
  • 在渗透测试中,扫描器原理是什么

    在渗透测试中 扫描器原理是什么 渗透测试中的扫描器是一种自动化工具 用于识别目标系统中的漏洞 弱点或配置错误 扫描器通过发送特定的网络请求或使用其他技术手段来检查目标系统的安全性 并生成报告以供分析和修复 以下是扫描器的一般原理 1 信息收
  • 一眼看懂promise与async await的区别

    promise方法 let p1 new Promise resolve reject gt setTimeout gt resolve 我是p1 4000 let p2 new Promise resolve reject gt setT
  • 12.HTML5下一代的HTML标准介绍与初识尝试

    关注回复 学习交流群 加入 安全开发运维 答疑交流群 请朋友们 多多点击文中的广告 支持作者更新更多文章 目录 本文为作者原创文章 为尊重作者劳动成果禁止非授权转载 若需转载请在 全栈工程师修炼指南 公众号留言 或者发送邮件到 master
  • 运维之Linux发行版和容器镜像网站及开源软件收集

    关注 WeiyiGeek 公众号 将我设为 特别关注 每天带你玩转网络安全运维 应用开发 物联网IOT学习 0x00 概述 0x01 镜像源网站 国内镜像 国内高校 0x02 发行版官网 CentOS kail Debian Ubuntu
  • 客户机操作系统已禁用 CPU。请关闭或重置虚拟机。解决方法

    今天在用VMware安装CentOS7报了这个错误 在网上找半天都没解决 最后换一个地址下的镜像就能正常安装了 Index of centos 7 9 2009 isos x86 64
  • 12_Linux ARM架构_安装JDK8-银河麒麟V10(Kylin Linux Advanced Server V10 )操作系统

    12 Linux ARM架构 安装JDK8 银河麒麟V10 Kylin Linux Advanced Server V10 操作系统 1 官网下载aarch64架构jdk包 2 linux服务器中创建java文件夹 方便后期快速寻找 3 将
  • DevC++如何改成中文?

    DevC 如何改成中文 1 点击Tools工具 2 选择环境选项 3 选择简体中文 4 点击确定
  • 深入理解Google Cast(一)基本概念

    什么是google cast google cast允许用户将手机上的内容投影到TV上 然后用户可以将手机作为遥控器来控制TV上的媒体播放 Google cast SDK用于扩展你的app 使其支持google cast功能 一个Cast
  • 图像验证码识别(九)——训练和识别

    前面讲到已经把所有的字符经过去干扰 分割和归一化得到标准大小的单个字符 接下来要做的就是识别验证码了 现在要做的基本上也就和OCR没什么区别了 因为得到的字符已经是尽可能标准的了 下面的识别分为两个步骤 第一步先是特征值的提取 第二步是SV
  • ROC曲线绘制原理及如何用SPSS绘制ROC曲线

    本文同步发布于 脑之说 微信公众号 欢迎搜索关注 ROC曲线 Receiver operating characteristic curve 即受试者工作特征曲线 主要用来评价某个指标对两类被试 如病人和健康人 分类 诊断的效果 以及寻找最