1.数据处理
第一步当然得处理一下数据。默认的Iris数据集有三类鸢尾花,我目前的理解是只有二分类才画的出ROC曲线,所以才去一定的手段处理一下数据:

输入

# 数据准备
iris2 <- iris
iris2$label[iris2$Species == 'setosa'] <- 1
iris2$label[iris2$Species == 'versicolor'] <- 2
iris2 <- iris2[-which(iris2$Species == 'virginica'), ]  # 剔除类型为virginica的数据
iris2$Species <- NULL   # 去除Species列
head(iris2,10)  # 显示前10个数据
> head(iris2,10)Sepal.Length Sepal.Width Petal.Length Petal.Width label
1           5.1         3.5          1.4         0.2     1
2           4.9         3.0          1.4         0.2     1
3           4.7         3.2          1.3         0.2     1
4           4.6         3.1          1.5         0.2     1
5           5.0         3.6          1.4         0.2     1
6           5.4         3.9          1.7         0.4     1
7           4.6         3.4          1.4         0.3     1
8           5.0         3.4          1.5         0.2     1
9           4.4         2.9          1.4         0.2     1
10          4.9         3.1          1.5         0.1     1

2.参数设置
以label与Sepal.Length之间的ROC曲线为例:

auc1 <- roc(label~Sepal.Length, data=iris2, smooth=FALSE)
plot(auc1)

print.auc:在图中显示AUC的值,AUC的大小等于ROC曲线下方的面积大小;
plot(auc1, print.auc=TRUE)

print.thres:在图中显示ROC曲线的阈值(threshold),大概为ROC曲线中最尖的那个点;
plot(auc1, print.thres=TRUE)

print.thres.col:设置阈值数据的颜色。
plot(auc1, print.thres=TRUE, print.thres.col="blue")
col:设置ROC曲线的颜色。
plot(auc1,col="blue")
identity.col:设置对角线的颜色。
plot(auc1, identity.col="blue")
identity.lty:设置对角线的类型,取数字。
plot(auc1,identity.lty=2)
identity.lwd:设置对角线的线宽,默认宽度为1。
plot(auc1, identity.lwd=2)
auc1 <- roc(label~Sepal.Length, data=iris2, smooth=FALSE)
plot(auc1, print.auc=TRUE, print.thres=TRUE, main="多组ROC曲线比较",col="blue", print.thres.col="blue", identity.col="blue",identity.lty=2, identity.lwd=1)

.多变量ROC曲线比较
# ROC曲线的绘制
auc1 <- roc(label~Sepal.Length, data=iris2, smooth=FALSE)
plot(auc1, print.auc=TRUE, print.thres=TRUE, main="多组ROC曲线比较",col="blue", print.thres.col="blue", identity.col="blue",identity.lty=2, identity.lwd=1)
auc2 <- roc(label~Sepal.Width, data=iris2,smooth=FALSE)
auc3 <- roc(label~Petal.Length, data=iris2,smooth=FALSE)
auc4 <- roc(label~Petal.Width, data=iris2, smooth=FALSE)
lines(auc2, col="red")
lines(auc3,col="green")
lines(auc4,col="yellow")
————————————————

ROC检验——DeLong’s Test
输入
roc.test(auc1,auc2)
1
输出Bootstrap test for two correlated ROC curvesdata:  auc1 and auc2
D = 0.19387, boot.n = 2000, boot.stratified = 1, p-value =
0.8463
alternative hypothesis: true difference in AUC is not equal to 0
sample estimates:
AUC of roc1 AUC of roc2 0.9326      0.9248
1
2
3
4
5
6
7
8
9
5.四组间整体检验
输入
compareROCdep(iris2[,-5], iris2$label, method="auc")  ##四组间整体检验
1
输出
> compareROCdep(iris2[,-5], iris2$label, method="auc")  ##四组间整体检验
In the considered database there are 50 controls and 50 cases.Method considered: AUC comparison (DeLong, DeLong and Clarke-Pearson, 1988)Progress bar: Estimation of statistic value in each variable (k = 4)|=======================================================================================================================================| 100%
Error in solve.default(M) : Lapack例行程序dgesv: 系统正好是奇异的: U[3,3] = 0
————————————————
版权声明:本文为CSDN博主「三只佩奇不结义」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41196612/article/details/105640904

R语言实战 input+结果——ROC曲线的绘制 auc 时量下曲线面积相关推荐

  1. R语言实战应用精讲50篇(三十四)-曲线分离实战应用案例(附R语言代码)

    1 引言   在现实环境中,我们有许多时间序列数据,比如超市零售数据,可能同时包括成千上万种商品的销量历史数据.不同商品销量随时间会有不同的变化.如果需要对销量进行预测,首先就应该根据趋势,对商品进行 ...

  2. R 语言实战-Part 4 笔记

    R 语言实战(第二版) ## part 4 高级方法 -------------第13章 广义线性模型------------------ #前面分析了线性模型中的回归和方差分析,前提都是假设因变量服 ...

  3. R语言临床诊断试验的ROC分析方法示例

    R语言临床诊断试验的ROC分析方法示例 ROC(receiver operating characteristic curve)接收者操作特征曲线,是由二战中的电子工程师和雷达工程师发明用来侦测战场上 ...

  4. R语言实战笔记--第八章 OLS回归分析

    R语言实战笔记–第八章 OLS回归分析 标签(空格分隔): R语言 回归分析 首先,是之前的文章,数理统计里面的简单回归分析,这里简单回顾一下: 简单回归分析的原理:最小二乘法,即使回归函数与实际值之 ...

  5. R语言ggplot2可视化在图像边界内绘制geom_text文本标签实战

    R语言ggplot2可视化在图像边界内绘制geom_text文本标签实战 目录 R语言ggplot2可视化在图像边界内绘制geom_text文本标签实战 #geom_text文本标签1

  6. R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(配置数据点抖动显示jitter)实战

    R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(配置数据点抖动显示jitter)实战 目录 R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(配置 ...

  7. R语言使用ggplot2包使用geom_density()函数绘制密度图(连续色彩、离散色彩、梯度色彩)实战(density plot)

    R语言使用ggplot2包使用geom_density()函数绘制密度图(连续色彩.离散色彩.梯度色彩)实战(density plot) 目录 R语言使用ggplot2包使用geom_density( ...

  8. R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(分组箱体框颜色自定义配置)实战

    R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(分组箱体框颜色自定义配置)实战 目录 R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(分组箱体框 ...

  9. R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(添加均值点)实战

    R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(添加均值点)实战 目录 R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(添加均值点)实战

最新文章

  1. 离散型随机变量的分布律
  2. 打造一个宇宙 星系模拟产生对宇宙进化惊人见解
  3. 连接池技术 Connection Pooling
  4. 软件工程--团队作业4
  5. BZOJ 1009: [HNOI2008]GT考试(kmp+dp+矩阵优化)
  6. logistic回归 简介_金融专业进!逻辑回归模型简述
  7. Java学习之容器上(Collection接口常用方法,Iterator接口,使用foreach循环遍历Collection集合元素,Set集合通用知识(Hashset类,hashcode()与Lin
  8. MFC单文档框架编程(三): CTabView的使用
  9. 修改eclipse中java和xml页面的字体的样式
  10. 听说你还不会写观察者模式?
  11. 2013蓝桥杯C++B:翻硬币(找规律和getline())
  12. android 打开下载管理器,Android OkHttp 下载管理器
  13. java编程求原码,补码_java语言基础(原码反码补码)
  14. linux建立数据库及构建表
  15. DirectX11--实现一个3D魔方(1)
  16. scrapy如何获取network请求相关信息
  17. e3服务器性能怎么样,3.5GHz发飙 至强E3-1280处理器深度评测
  18. BSA分析拟南芥F2代分离群体混池测序
  19. Plant Simulation、NX MCD、PDPS,SIMIT,PLCSIM仿真与虚拟调试合集(持续更新中)
  20. 【无标题】MATLAB Runtime 安装The file is not a valid MATLAB Runtime installer for this version of MATLAB

热门文章

  1. 360 私有云平台 MySQL 自动化实现剖析
  2. 自动提交flag-python
  3. matlab编写求解二阶常微分方程,求一个复杂的二阶常微分方程的数值解,不会写代码= =...
  4. 计算机网络面试常见知识点(含HTTPS和TLS)
  5. GPS经纬度换算成XY坐标
  6. ❤️Java中经纬度换算❤️
  7. JavaSE探赜索隐三<接口>
  8. vue组件可视化_Vue HTML5音频可视化组件
  9. 二分搜索几种写法分析
  10. 韩版机泛泰A850改mms.apk去除收到短信的国家代码