R语言两个ROC的比较
创作时间:
作者:
@小白创作中心
R语言两个ROC的比较
引用
CSDN
1.
https://blog.csdn.net/weixin_43935907/article/details/123599869
ROC曲线(Receiver Operating Characteristic Curve)是医学统计学中常用的评估诊断试验准确性的工具。本文将通过一个具体案例,介绍如何使用R语言的pROC包来比较两个ROC曲线的诊断能力,并通过DeLong's test检验它们的统计学差异。
一、概述
ROC是以真阳性率(灵敏度)为纵坐标,以假阳性率(特异度)为纵坐标所绘制的曲线,可以通过不同截断点下的ROC曲线下的面积(AUC),可用于判断该检验方法的诊断价值,正好解决了敏感度和特异度的选择问题。如果AUC小于0.5则表示试验无诊断价值,另外AUC面积越大,表明实验的准确性越高。但是如果两个试验参数的AUC面积都大于0.5,那我们该如何比较这两个ROC指标的诊断能力是否有差别呢?
二、数据集展示
这里就不以科研数据来做展示了,防止泄露个人研究信息,统一采用R语言自带的数据集,接下来就使用pROC自带的数据集aSAH进行演示:
> library(pROC)
Type 'citation("pROC")' for a citation.
载入程辑包:‘pROC’
The following object is masked _by_ ‘.GlobalEnv’:
aSAH
The following objects are masked from ‘package:stats’:
cov, smooth, var
Warning message:
程辑包‘pROC’是用R版本4.0.5 来建造的
> data(aSAH)
> head(aSAH)
gos6 outcome gender age wfns s100b ndka
29 5 Good Female 42 1 0.13 3.01
30 5 Good Female 37 1 0.14 8.54
31 5 Good Female 42 1 0.10 8.09
32 5 Good Female 27 1 0.04 10.42
33 1 Poor Female 42 3 0.13 17.40
34 1 Poor Male 48 2 0.10 12.75
三、两个ROC的比较
1. 比较
> roc_model1 <- roc(outcome~age,data=aSAH) #roc曲线模型1
Setting levels: control = 0, case = 1
Setting direction: controls < cases
> roc_model2 <- roc(outcome~s100b,data=aSAH) #roc曲线模型2
Setting levels: control = 0, case = 1
Setting levels: control = 0, case = 1
Setting direction: controls < cases
> roc.test(roc_model1,roc_model2)
DeLong's test for two correlated ROC curves
data: roc_model1 and roc_model2
Z = -1.7604, p-value = 0.07835
alternative hypothesis: true difference in AUC is not equal to 0
sample estimates:
AUC of roc1 AUC of roc2
0.6150068 0.7313686
2. 画图
> plot(roc_model1) # 画出roc_model1的roc曲线
> lines(roc_model2,col="red") # 将roc_model2的roc曲线追加到model1的图中
> test <- roc.test(roc_model1,roc_model2) # 获取比较结果并赋值给test
> text(0.5,0.5,labels = paste("P-value =",round(test$p.value,3))) # 将比较结果p值展示在图中
> legend("bottomright",legend=c("age","s100b"),col=c(1,2),lwd = 2) # 画出legend框
>
四、结果分析
在进行结果分析之前,先容我科普一下P值。
1. p值是否显著
统计学根据显著性检验方法所得到的P 值,其含义是样本间的差异由抽样误差所致的概率小于0.05 、0.01、0.001。
- 一般以P < 0.05 为有统计学差异
- P<0.01 为有显著统计学差异
- P<0.001为有极其显著的统计学差异。
2. 结果分析
从比较结果来看,虽然s100b的AUC为0.7313686大于年龄对应的AUC(0.6150068),但是其没有统计学差异(p = 0.078),因此不能认为这两个指标的诊断能力有差别。
热门推荐
揭秘Win8隐藏文件夹:原因、方法与专业知识分享
一文读懂TypeC 耳机原理
你知道,微量元素对人体都有哪些重要作用吗?
要学习软件开发,或者插件开发,需要学习哪些编程语言
超越美学与实用性:5种卡座设计灵感,开启居家空间无限可能
DIY 升级再造项目:变废为宝
南阳房产局:政策解读与市场动态
献血后基础代谢是否增高?解析献血对身体可能带来的影响
几种常见的车险理赔误区
浅谈精密交叉滚子轴承淬火裂纹的预防措施
拖欠工资超三年还能追回吗?维权途径与时效分析
感冒的胃肠道反应
6年接诊1.6万患儿,孩子这些症状是肾脏在“求救”
论科学技术价值的双刃性
陕西靖边县:丹霞山景区的“旅游驿站”
鸢尾花花期多长时间(关于鸢尾花的开放时间)
滚筒洗衣机不能放倒怎么办?故障维修和解决办法全攻略
拔不拔?这四种电器省电大揭秘!
自动紧急制动系统AEB控制策略模型与课程设计文档说明
女儿墙的作用及由来
眼睛红肿瘙痒?小心结膜炎!远离过敏原,做好4个预防!
当亲人被刑拘:黄金救援期内律师能做什么?这篇指南价值千金!
蓝猫掉毛严重怎么办?科学护理指南来啦!
内存辨识指南:DDR3 与 DDR4 外观差异大揭秘
工业交换机如何进行性能测试
客户服务六大沟通技巧:解锁高效沟通新境界
第14章-蓝牙遥控小车 手把手做蓝牙APP遥控小车 蓝牙串口通讯讲解
微波炉轻松烤制,红薯美味家常小食攻略
颐和园水面占比:四分之三水域打造水上园林
当薪酬报告遇上奶茶店老板:HR如何用数据玩转人才保卫战