什么是ROC曲线

news2024/11/17 2:58:19

ROC曲线(Receiver Operating Characteristic Curve),也称为“接受者操作特性曲线”。它最早应用于雷达信号检测的分析,后来广泛应用于心理学和医学领域。

ROC分析是进行临床诊断试验评价最常用的方法。诊断试验是指评价某种疾病诊断方法的临床试验,主要应用于疾病诊断、疾病随访、疗效考核,以及药物毒副作用的监测。医生常通过对同一疾病的多种诊断试验进行分析比较,以便筛选出最佳诊断方案。

同样,在日常的工作和生活中,我们也经常需要进行预测,且总希望预测结果的准确性尽可能高。一个完美的分类模型是,我们可以将实际上属于类别1的也预测成1,属于类别0的也都预测成0。但实际的预测模型往往没有那么准确,一些实际属于类别1 的样本,根据我们的模型,却被预测为了0;而一些原本类别是0的样本,却被预测为了1。正如下图中的混淆矩阵所示:

40b1fa1d97c94be390a04be173176b36.png

 

通过上面的这个混淆矩阵,我们可以知道这个模型到底预测对了多少,预测错了多少;并且,还可以计算出与它相关的一系列分类性能评估指标:

正确率= 正确预测的正反例数 / 总数

误分类率= 错误预测的正反例数 / 总数

覆盖率/敏感度(Sensitivity) = 正确预测到的正例数 / 实际正例总数

负例的覆盖率/特异性(Specificity) = 正确预测到的负例个数 / 实际负例总数

命中率= 正确预测到的正例数 / 预测正例总数

负例的命中率= 正确预测到的负例个数 / 预测负例总数

15b39f55c31f4329adcbf0cc2930e811.png

 

ROC曲线是以1-Specificity(1-特异性)为横轴,Sensitivity(灵敏度)为纵轴所绘制的曲线。随着分类的概率阈值的减少,Sensitivity和1-Specificity也相应增加(也即Specificity相应减少),所以ROC曲线呈从左下角垂直上升到顶线,水平方向向右延伸到右上角的递增态势。

我们可以通过ROC曲线来判断模型效果的好坏,并以此标准比较不同模型的预测准确性。

ROC曲线好坏标准的参照是45度线,即对角线。如果ROC曲线沿着对角线方向分布,表示分类是随机造成的,该曲线表现不佳;而曲线越向左上方靠拢,越远离对角线,说明该曲线的灵敏度和特异性越高。

ROC曲线根据与45度线的偏离来判断模型好坏的好处是直观,缺点是不够精确。到底好在哪里,好了多少?这就要涉及到AUC(Area Under the  ROC Curve,ROC曲线下的面积)。

ROC曲线图中45度线下的面积是0.5,ROC曲线与它偏离越大,越向左上方靠拢,它下方的面积(AUC)就越大,其AUC值也越接近于1。因此,我们可以根据AUC的值来判断一个分类模型的预测效果。

AUC在0.5~0.7之间,说明模型效果较差;AUC在0.7~0.9之间,说明模型效果中等;AUC在0.9以上,说明模型效果佳。一般来说,AUC大于0.8,就可以认为模型效果较好。

 

 

 

案例分析

 

 

 

接下来我将用SPSS中的自带数据集bankloan.sav向大家介绍曲线分析方法。

这个数据集中包含了850位客户的财务和人口统计信息。前700个案例是以前获得贷款的客户,这些客户的违约情况是已知的。后150个案例还没有获得贷款,银行需要对他们进行建模预测,判断他们是否存在信用风险,即判断他们是否会产生违约。

在这个数据集中自带了3个违约概率预测变量(preddef1~3),即银行已经使用了3种不同方法进行了建模预测,接下来,我们需要通过ROC曲线分析来判断哪种模型预测的准确性最高。

打开数据集:

选择文件 -> “欢迎”对话框,在欢迎对话框中选择样本文件,选择bankloan.sav,选择打开。SPSS会自动打开这份数据文件。

b6d9109bdb414da1892337ba10c5c339.png

 

该数据集的部分数据截图如下所示:

2955f40c9adb4af98682f431dddd995c.png

 

数据分析:

选择分析 -> ROC曲线;

将preddef1、preddef2、preddef3这3个变量选入检验变量(这3个变量是分别用3种模型得到的违约概率值);

将违约变量选入状态变量;

因为在该案例的违约变量中违约编码为1,没有违约编码为0,所以在状态变量值中填入1;

勾选ROC曲线、带对角参考线,以及标准误差和置信区间;

完成后,点击确定。对话框如下所示:

d67a7619109e4e8ab957042c16c5565b.png

 

得到的分析结果如下所示:

e94f42b584224c35a8bde908610c0a97.png

 

分析结果详解:

a336a9031b0143708b8a6d953c8c692b.png

 

从分析结果来看,preddef1和preddef2的效果要好于preddef3。preddef1和preddef2的效果相近,但似乎preddef2离对角线更远一些。

preddef1的ROC曲线下的区域面积(AUC)是0.856,标准误为0.016,其95%的置信区间是0.825~0.886;

preddef2的ROC曲线下的区域面积(AUC)是0.870,标准误为0.015,其95%的置信区间是0.842~0.899;

preddef3的ROC曲线下的区域面积(AUC)是0.735,标准误为0.022,其95%的置信区间是0.693~0.778;

因此,preddef2比preddef1的AUC值略大,但它们的95%的置信区间存在交叉,因此可以认为它们的预测效果不存在显著差异。

以上就是在SPSS中进行ROC分析的详细过程,大家可以打开SPSS自行操作练习哦~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/804570.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

树莓派微型 web 服务器——正式设计报告

树莓派微型web服务器 摘要 这篇博客介绍了一个基于树莓派的轻量级服务器项目。树莓派是一款低成本、小型化的单板计算机,具有较低的功耗和良好的可扩展性。该项目利用树莓派搭建了一个功能简洁但性能稳定的服务器环境,适用于小型应用或个人使用。该轻量…

flask 实现简单的登录系统demo

你提供的代码是一个基本的Flask应用程序,实现了一个简单的登录系统。以下是代码的详细解释: 1. 导入必要的模块:os 用于生成密钥,Flask 用于创建Web应用程序。 2. 创建Flask应用程序的实例,并为会话管理设置一个密钥。…

web-暴力破解密码

Burte Force(暴力破解)概述 暴力破解”是一攻击具手段,在web攻击中,一般会使用这种手段对应用系统的认证信息进行获取。 其过程就是使用大量的认证信息在认证接口进行尝试登录,直到得到正确的结果。 为了提高效率&…

都说软件测试没前途了?为何每年还会增加40万测试员

最近和一些刚进入软件测试行业的朋友交流,发现了一个有趣的现象,那就是对这个行业很多问题的认识是一致的、片面的,也可以理解为误解。利用你的时间列出他们对这个行业的所有误解,然后结合你多年的工作经验和你交流。毕竟你是从这…

WPS本地镜像化在线文档操作以及样例

一个客户项目有引进在线文档操作需求,让我这边做一个demo调研下,给我的对接文档里有相关方法的说明,照着对接即可。但在真正对接过程中还是踩过不少坑,这儿对之前的对接工作做个记录。 按照习惯先来一个效果: Demo下载…

应届生如何快速找Java开发工程师,先学会这17个基础问题

一、Java 基础 JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。 JRE:Java Runtime Environment 的简称,java 运行环境,为 java 的…

机器学习李宏毅学习笔记39

文章目录 前言一、大模型的发展趋势二、KNN LM总结 前言 大模型大资料 大模型的顿悟时刻 一、大模型的发展趋势 随数据量增加,模型可以从量变达到质变,从某一刻开始突然学会东西。 当成为大模型时,分数会从0,0突然变成100,完成“…

MySql001——初识数据库

一、什么是数据库 简单理解:数据库就是存放数据的仓库。 而仓库的作用就是往里面存东西(入库),和从里面取东西(出库)。 二、数据库的作用 简单理解:数据库的作用就是存放数据。 互联网世界就是…

(el-radio)操作:Element-plus 中 Radio 单选框改成垂直排列的样式操作与使用

Ⅰ、Element-plus 提供的Radio单选框组件与想要目标情况的对比: 1、Element-plus 提供 Radio 组件情况: 其一、Element-ui 自提供的Radio代码情况为(示例的代码): // Element-plus 自提供的代码: // 此时是使用了 ts 语言环境&a…

selenium进阶

Selenium进阶部分一 本篇建立在selenium基础部分之上,介绍了如条件判断,常用断言,文件截图操作,cookies操作和ActionChains库等常用操作 附带介绍了XPATH的用法 Selenium常用小操作 上传文件 实现原理:直接定位到…

基于Java+SpringBoot+vue前后端分离技术交流和分享平台设计实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

7.28 作业 QT

手动完成服务器的实现&#xff0c;并具体程序要注释清楚: widget.h: #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpServer> //服务器类 #include <QTcpSocket> //客户端类 #include <QMessageBox> //对话框类 #include …

瑞吉外卖项目 基于spring Boot+mybatis-plus开发 超详细笔记,有源码链接

源码地址&#xff1a;https://gitee.com/programmer-xiao-kai/reggie_tack_out 前置知识&#xff1a; Java基础知识Java Web vueSpring BootSSMMaven 软件开发流程 角色分工 项目经理:对整个项目负责&#xff0c;任务分配、把控进度产品经理:进行需求调研&#xff0c;输出需…

ubuntu远程控制小车 运行rviz时报错

我买的是wheeltec的小车&#xff0c;测试rgbd相机时想在ubuntu上的rviz中显示小车的姿态和看到的rgb和depth图&#xff0c;但是ubuntu中rostopic list和rviz都找不到小车发布的话题信息&#xff0c;运行rqt_image_view时可以显示图片信息。 最终wheeltec的技术人员lucas帮我找了…

AI 绘画Stable Diffusion 研究(一)sd整合包v4.2 版本安装说明

部署包作者:秋葉aaaki 免责声明: 本安装包及启动器免费提供 无任何盈利目的 大家好&#xff0c;我是风雨无阻。众所周知&#xff0c;StableDiffusion 是非常强大的AI绘图工具&#xff0c;需要详细了解StableDiffusion的朋友&#xff0c;可查看我之前的这篇文章&#xff1a; 最…

【Java】Spring——创建Spring + 对Spring的存储 /读取对象操作

文章目录 前言一、创建Spring项目二、向Spring容器中存储 Bean 对象三、从Spring容器中读取 Bean 对象得到Spring上下文对象得到 Bean 对象 总结 前言 本人是一个普通程序猿!分享一点自己的见解,如果有错误的地方欢迎各位大佬莅临指导,如果你也对编程感兴趣的话&#xff0c;互…

AI Chat 设计模式:10. 组合模式

本文是该系列的第八篇&#xff0c;采用问答式的方式展开&#xff0c;问题由我提出&#xff0c;答案由 Chat AI 作出&#xff0c;灰色背景的文字则主要是我的一些思考和补充。 问题列表 Q.1 给我介绍一下组合模式A.1Q.2 好的&#xff0c;给我举一个组合模式的例子&#xff0c;使…

android存储4--初始化.emulated设备的挂载

android版本&#xff1a;android-11.0.0_r21http://aospxref.com/android-11.0.0_r21 android手机的挂载非常复杂。这篇文章针对emulated存储&#xff0c;介绍它的挂载过程。 一、为什么emulted存储要用很复杂的挂载方式 1&#xff0c; emulted存储是什么 android早期&#…

QTday4(鼠标事件和键盘事件/QT实现连接TCP协议)

笔记 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QDebug> #include <QTcpServer>//服务器类 #include <QTcpSocket>//客户端类 #include <QMessageBox> #include <QList>//链表容器QT_BEGIN_NAMESPACE namespace Ui …

【数据结构】实验十二:图 查找

实验十二 图查找 一、实验目的与要求 1&#xff09;掌握拓扑排序的应用&#xff1b; 2&#xff09;掌握查找的概念和算法&#xff1b; 3&#xff09;掌握查找的基本原理以及各种算法的实现&#xff1b; 4&#xff09;掌握查找的应用。 二、实验内容 1. 用邻接表建立一…