如何快速绘制logistic回归预测模型的ROC曲线?
临床预测模型,也是临床统计分析的一个大类,除了前期构建模型,还要对模型的预测能力、区分度、校准度、临床获益等方面展开评价,确保模型是有效的!
其中评价模型的好坏主要方面还是要看区分度和校准度,而区分度方面目前最常见的是ROC曲线(Receiver Operating Characteristic,中文名字叫“受试者工作特征曲线”),由灵敏度为纵轴,(1-特异度)为横轴绘制而成,用于评价X(检验变量)对于Y(状态变量)的预测准确率情况。越靠左上方,说明模型的预测准确性越好,可以让读者直观地看到某指标各取值对结局指标的诊断或预测能力。

此外,ROC曲线还会使用曲线下面积(AUC)的大小对模型进行评价,AUC的取值范围为0.5到1之间,曲线下面积越大,越接近于1,模型的诊断或预测效果越好:
AUC在0.9以上时,准确性较高
在0.7~0.9时,有一定准确性
AUC在 0.5~0.7时,准确性较低
AUC=0.5时,说明诊断方法完全不起作用,无诊断价值。
AUC<0.5不符合真实情况,在实际中极少出现
理论知识比较好理解,但是实际分析中,想要绘制出精美的ROC曲线,还要花一番功夫,像是常见的R语言软件就需要大量参数进行调整,并且训练集和验证集图像还需要分开绘制两遍......
因此,这里为大家推荐一个统计分析小工具——风暴统计,可以超快速绘制完成临床预测模型的ROC曲线,一次性给出训练集与验证集的图像!
风暴统计是由浙江中医药大学的郑卫军教授基于R语言开发的,不仅结果准确性有保障,并且全部实现菜单化操作,统计小白也可以轻松上手,绘制精美的ROC曲线!
下面我们就结合一份实操数据来为大家详细介绍一下具体的操作步骤吧!
实操具体网址:https://www.zstats.cn/software/logpre3/
或者百度、必应Bing搜索“风暴统计”
本平台上线的所有工具都是免费的

1.进入风暴统计平台
首先,浏览器搜索风暴统计,依次点击"风暴智能统计"——"临床预测模型"——"logistic临床预测模型"!进入分析界面后,根据提示,完成数据的导入与整理。
这里我们不再赘述数据的导入与整理过程,详细教程大家可以点击下方链接:
详细指南!风暴统计如何高效导入数据,统计分析快人一步?
详细版!如何利用风暴统计进行数据的整理转换?

2.数据集拆分
预测模型都需要内部验证,内部验证的方法有随即拆分、交叉验证、Boostrap等。但风暴统计平台目前仅能做随即拆分法内部验证。
随机拆分法内部验证,顾名思义就是将原始数据集按照7:3(常见)或者6:4等比例进行拆分,一部分用于建模,另外一部分用于验证模型。

风暴统计支持两种拆分方式:随机拆分法、导入已拆分好的数据。
如果选择“随机拆分”,需要设置随机种子和拆分比例。随机种子对于数字位数没有要求,作用是可以保证拆分数据的分析结果可以复现,平台默认是1234,拆分比例更好理解,只需要拖动滑条,蓝色部分就是训练集的数据占总数据的比例。

如果选择“导入已拆分好的数据”,需要设置事先在导入的数据集中增加一列用于区分训练集和验证集的变量,比如新增列叫"group",通过编码赋值1代表训练集,2代表验证集。那么第一步:选入区分训练集与验证集的变量,第二步:勾选代表训练集的编码值!
注:“导入已拆分好的数据”不仅可以做内部验证,更重要还可以用来做外部验证哦!同样需要一列变量来区分训练集和外部验证集!

3.构建预测模型
完成数据记得拆分后,我们就可以开始构建预测模型啦!请注意,预测模型的构建仅在训练集开展哦!
预测模型的本质,简单来说,也就是多因素回归模型!多因素回归听上去是不是平易近人许多?风暴统计可以超快速完成这一步!
首先,选择模型变量——因变量、自变量。因变量必须是以0和1赋值的哦!自变量就可以放入我们数据中所有可能的预测因子!

接着,定义模型自变量筛选的方式,满足筛选条件的自变量会进入多因素回归模型!
注:多因素模型中的所有变量就是我们最终预测模型中全部的预测因子了,并不只是多因素中有意义的变量哦!如果希望预测模型中的变量P值均小于0.05,可以选择逐步回归分析中"根据P<0.05筛选"的选项!

自变量筛选方式也有3种:
基于分组差异性结果:
基于单因素回归结果
自定义
前两个比较相似,区别就在是根据差异性P值还是单因素P值进行筛选!
如果选择了"基于分组差异性"或"基于单因素回归",只需要完成2步设置。
第一步,P阈值的选择,如果自变量个数过少,可以适当放宽标准,0.1、0.2也都是可以的。当选择不限制时,单因素的全部自变量都将纳入多因素回归分析。
第二步,是否开展逐步回归,选择“否”,就是我们常见的先单后多分析,另外逐步回归方法,平台也提供了多种选择:双向逐步回归,向前逐步回归,向后逐步回归以及考虑到有时P值大于0.05的变量在逐步回归时也会留在模型中,新增了根据P<0.05的原则开展逐步回归!大家可以根据研究需要自行选择。
![]() |
|
如果选择了自定义筛选自变量,比如实际研究中,预测因子的筛选也需要结合专业知识以及相关文献进行判断,纯数据驱动也不太好。假如变量A在临床中是十分重要的变量,但是受限于样本原因,单因素与差异性均没有统计学意义,这时候,我们可以自定义挑选预测因子,选择我们预期的预测因子,自行选择是否需要逐步回归!也是一条途径!

选择完毕后,我们就得到了多因素回归的结果,现在多因素模型也就是我们最终的预测模型,列线图中会包含多因素回归中的全部变量!

完成预测模型的构建后,就可以同步给出模型得到验证结果啦!
4.模型区分度评价
点击"ROC曲线与AUC面积"模块,结果也同时输出,包括有训练集ROC曲线、验证集ROC曲线、ROC曲线叠加。

ROC曲线叠加:

如果需要修改图例名称,可以在左侧的"AUC设置"这里进行修改,但是目前平台仅支持英文标签,如需添加中文,还需要下载pdf后,再进行二次编辑。

除此之外,平台还支持对ROC曲线的颜色、坐标轴、标签进行修改,将R语言繁杂的代码参数,全部简化为了菜单式操作!

5.下载结果
最后在曲线下载设置中,选择下载图片,保存类型(支持pdf、jpeg、png、tiff),曲线页面,中文字体。
注:如果图形下载下来不完全,可以在曲线页面设置自定义。自由调整图片的长度和宽度,避免下载图形不完整的情况。
选择完毕后,就可以下载ROC曲线啦!

下载下来的图片也十分清晰!

以上就是风暴统计平台绘制ROC曲线的全部操作流程啦!如果您在使用过程中出现报错,可以参考下方推文,排查一下问题所在哦!
答疑 | 风暴统计更换服务器后,为什么总出现同样的报错?

相关文章:
如何快速绘制logistic回归预测模型的ROC曲线?
临床预测模型,也是临床统计分析的一个大类,除了前期构建模型,还要对模型的预测能力、区分度、校准度、临床获益等方面展开评价,确保模型是有效的! 其中评价模型的好坏主要方面还是要看区分度和校准度,而区分…...
实现具有多个实现类的接口并为每个实现类定义一个名字的方法
在Java中,实现具有多个实现类的接口并为每个实现类定义一个名字的方法,可以通过使用工厂模式或服务定位器模式来完成。以下是使用工厂模式的一个示例: 定义接口和实现类 首先,定义一个接口和多个实现类: // 接口 publ…...
Linux解压缩命令
文章目录 前言1. tar - 打包和压缩文件2. gzip - 压缩文件3. gunzip - 解压缩gzip文件4. bzip2 - 压缩文件5. unzip - 解压缩zip文件6. zip - 压缩文件为zip格式7. 7z - 7-Zip压缩工具8. unrar - 解压缩RAR文件 前言 解压缩文件在Linux中是常见的任务,以下是一些常…...
如何在 Ubuntu 14.04 上使用 Iptables 实现基本防火墙模板
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 简介 实施防火墙是保护服务器的重要步骤。其中很大一部分是决定强制执行对网络流量的限制的个别规则和策略。像 iptables 这样的防火墙…...
jasypt对yml文件进行加密解密
目录 0.背景 1.依赖 2.yml文件 3.加密操作 0.背景 在日常开发中,我们一般会把账号密码以及一些用到的各种第三方服务的Access_Key都放入yml文件中,这时就有必要对yml文件进行加密处理了, jasypt是一款简单的对yml加密的工具 1.依赖 &l…...
vue3-openlayers 使用tianditu,wmts和xyz等source加载天地图切片服务
本篇介绍一下使用vue3-openlayers加载天地图切片,三种方法: 使用tianditu(ol-source-tianditu内部实现其实用的wmts)使用wmts(ol-source-wmts)使用xyz(ol-source-xyz) 1 需求 vue…...
npm、yarn、pnpm 最新国内镜像源设置和常见问题解决
1. npm 设置国内镜像源 1.1 镜像源概述 镜像源是软件包管理工具用来下载和安装软件包的服务器地址。由于网络原因,直接使用官方源可能会导致速度慢或连接失败的问题。国内镜像源可以提供更快的访问速度和更稳定的连接。 1.2 镜像源的选择 国内有许多可用的npm镜…...
Qt Object:智能即时聊天室项目
目录 1.项目介绍 2.设计思路 3.Pro文件配置 4.项目演示 5.项目开源 项目介绍 智能即时聊天室系统(AIChatProject)是一个高效、灵活的即时通讯解决方案。它融合了百度的开源大型语言模型——文心一言,通过API接口实现深度集成。系统专为聊天和…...
php,python aes加密反解
1. python版本 import base64 from Crypto.Cipher import AES from Crypto.Util.Padding import pad, unpadclass AESUtilCBC:def __init__(self, key, iv):self.key key.encode(utf-8)self.iv iv.encode(utf-8)self.pad_length AES.block_sizedef encrypt(self, data):try…...
基于Java学生选课管理系统设计和实现(源码+LW+调试文档+讲解等)
💗博主介绍:✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码数据库🌟 感兴趣的可以先收藏起来,…...
阅读笔记——《Large Language Model guided Protocol Fuzzing》
【参考文献】Meng R, Mirchev M, Bhme M, et al. Large language model guided protocol fuzzing[C]//Proceedings of the 31st Annual Network and Distributed System Security Symposium (NDSS). 2024.(CCF A类会议)【注】本文仅为作者个人学习笔记&a…...
C#委托:事件驱动编程的基石
目录 了解委托 委托使用的基本步骤 声明委托(定义一个函数的原型:返回值 参数类型和个数) 根据委托定义的函数原型编写需要的方法 创建委托对象,关联“具体方法” 通过委托调用方法,而不是直接使用方法 委托对象所关联的方…...
Git的下载安装及可视化工具小乌龟
一、 Git 的下载 第1步:下载Git,下载地址:Git for Windows 这个就需要去 Git 官网下载对应系统的软件了,下载地址为 git-scm.com或者gitforwindows.org,或者阿里镜像(感谢评论区的星悸迷航同学&#…...
【面试实战】# 并发编程之线程池配置实战
1.先了解线程池的几个参数含义 corePoolSize (核心线程池大小): 作用: 指定了线程池维护的核心线程数量,即使这些线程处于空闲状态,它们也不会被回收。用途: 核心线程用于处理长期的任务,保持最低的线程数量,以减少线程的创建和…...
Pytest 读取excel文件参数化应用
本文是基于Pytest框架,读取excel中的文件,传入页面表单中,并做相应的断言实现。 1、编辑媒体需求 首先明确一下需求,我们需要对媒体的表单数据进行编辑,步骤如下: 具体表单如下图所示 1、登录 2、点击我…...
qt 一个可以拖拽的矩形
1.概要 2.代码 2.1 mycotrl.h #ifndef MYCOTRL_H #define MYCOTRL_H#include <QWidget> #include <QMouseEvent>class MyCotrl: public QWidget {Q_OBJECT public://MyCotrl();MyCotrl(QWidget *parent nullptr); protected:void paintEvent(QPaintEvent *even…...
C# 启动exe 程序
(1) publicbool Start () System.Diagnostics.Process process new System.Diagnostics.Process(); process.StartInfo.FileName "iexplore.exe"; //IE浏览器,可以更换 process.StartInfo.Arguments "http://www.baidu.com"; process.…...
Netty中的Reactor模型实现
Netty版本:4.1.17 Reactor模型是Doug Lea在《Scalable IO in Java》提出的,主要是针对NIO的。 其中的主从Reactor模式在Netty中的配置如下: EventLoopGroup bossGroup new NioEventLoopGroup(1); EventLoopGroup workerGroup new NioEv…...
dll丢失应该怎么解决,总结5种解决DLL丢失问题的方法
在数字时代,我们与计算机的每一天都密不可分。然而,就像所有技术产品一样,我们的计算设备也时不时地会出现一些问题,让人头疼不已。就在上周,我遭遇了一个令人崩溃的技术挑战——DLL文件丢失。这个看似微不足道的小问题…...
dial tcp 10.96.0.1:443: connect: no route to host
1、创建Pod一直不成功,执行kubectl describe pod runtime-java-c8b465b98-47m82 查看报错 Warning FailedCreatePodSandBox 2m17s kubelet Failed to create pod sandbox: rpc error: code Unknown desc failed to setup network for…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...
Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...
ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...
Golang——6、指针和结构体
指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...


