绘制平滑曲线_手把手教你绘制平滑ROC曲线

ROC曲线是临床中常用的统计分析之一,R中可以绘制ROC曲线的包也有很多, pROC 包就是其中的佼佼者。 pROC包可以计算AUC和95%置信区间,可以可视化、平滑和比较ROC曲线。 今天来学习下怎么使用 pROC 包来绘制平滑ROC曲线
目  录
  • 1. 安装和加载R包

  • 2. 读取内置数据集

  • 3. 拟合平滑ROC对象

  • 4. 平滑ROC曲线的方法

  • 5. 先绘制1条平滑曲线

  • 6. 再添加1条ROC曲线

  • 7. 添加图例


1. 安装和加载R包

install.packages("pROC") # 安装pROC包library(pROC) # 加载pROC包

2. 读取内置数据集

使用pROC包自带的 aSAH数据集来演示。该数据集包括了113例动脉瘤蛛网膜下腔出血患者的临床和实验室资料。
data(aSAH)   # 加载内置数据集
View(aSAH)   # 查看数据集
e6d8dd489c19a68e5a09f207b7e875d5.pngaSAH数据集包括113名患者,7个变量

3. 拟合平滑ROC对象

在pROC包中,一般使用roc()函数来建立ROC对象。如果要拟合平滑ROC曲线,可以在roc()函数中使用 smooth参数。
roc1             smooth =TRUE) 
roc2             smooth =TRUE)
roc1;roc2# 下面代码与上面等效
roc3 smooth(roc3)
ffa2b0f36cb5da581603e8a847c04974.png
结果显示,roc1对象平滑后的AUC为0.74,而未平滑的原始AUC为0.731。

4. 平滑ROC曲线的方法

平滑ROC曲线的方法有很多,具体可查看帮助文档。
plot(roc3)
rs "binormal")  
plot(rs, add=TRUE, col="green")
rs2 "density")  
plot(rs2, add=TRUE, col="blue")
rs3 "fitdistr", density="lognormal")  
plot(rs3, add=TRUE, col="magenta")
rs4 "logcondens")  
plot(rs4, add=TRUE, col="brown")
rs5 "logcondens.smooth") 
plot(rs5, add=TRUE, col="orange")
a8254bc8c070486884d476e47290ccd9.png

5. 先绘制1条平滑曲线

plot(roc1,  # 前面构建的平滑ROC对象
     print.auc=TRUE, # 图像上输出AUC值
     print.auc.x=0.5,print.auc.y=0.5, # AUC值坐标为(x,y)
     auc.polygon=TRUE, # 将ROC曲线下面积转化为多边形
     auc.polygon.col="skyblue",  # 设置多边形的填充颜色
     grid= FALSE, # 不显示网格背景线
     legacy.axes=TRUE)  # 使横轴从0到1,表示为1-特异度
f46977216c4d00ee94a13f614f39645e.png

6. 再添加1条ROC曲线

plot.roc(roc2,
         add=TRUE,  # 增加曲线
         col = "red", # 设置曲线颜色
         print.auc=TRUE, # 图像上输出AUC
         print.auc.col = "red", # 设置AUC文本的颜色
         print.auc.x=0.5,print.auc.y=0.4)  # AUC的坐标为(x,y)
bf8fbb3b8b4489e316cbd9f9d2139365.png

7. 添加图例

legend(0.35,0.40,  # 图例位置x,y
       bty = "n",  # 图例样式
       title="",   # 添加图例标题
       legend=c("roc1","roc2"),  # 添加分组
       col=c("#FF2E63","#252A34"), # 颜色跟前面一致
       lwd=2)  # 线条粗细
62722ca6127d87f748837dfe0f72cd0d.png

公众号最近改版,以防失联,加个星标吧!

6ae49fedf815f138a5e86d2a45199bcd.gif

课程推荐0da863db3adbe781f672f469710a297a.png

829c72f2ed7f24204693c5d8091cc776.png

ddd51bd4946b495da0eb10f9a6896147.png

957d776f78f18a9c0ed6c94804991ab9.png

4440e6d3a9a92336cbc235d94ad23d3f.png

ce810826d392ca8a6b87ad5c2b936ce4.png

01777a425697708bd531930b80373249.png

584b72e92146cb86810b760772de4875.png

多点好看,少点脱发

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以回答您的问题。您可以按照以下步骤在sklearn中绘制ROC曲线: 1. 准备数据:首先,您需要准备测试数据集和训练数据集。您还需要使用训练数据集来训练逻辑回归模型。 2. 训练模型:使用训练数据集训练逻辑回归模型。您可以使用以下代码: ``` from sklearn.linear_model import LogisticRegression # 创建逻辑回归对象 lr = LogisticRegression() # 使用训练数据集来训练模型 lr.fit(X_train, y_train) ``` 3. 预测概率:使用测试数据集来预测类别概率。您可以使用以下代码: ``` # 预测测试数据集的类别概率 y_pred_proba = lr.predict_proba(X_test)[:,1] ``` 4. 计算ROC曲线数据:计算真阳性率(TPR)和假阳性率(FPR)。您可以使用以下代码: ``` from sklearn.metrics import roc_curve, auc # 计算ROC曲线数据 fpr,tpr,thresholds = roc_curve(y_test, y_pred_proba) roc_auc = auc(fpr,tpr) ``` 5. 绘制ROC曲线:使用Matplotlib库绘制ROC曲线。您可以使用以下代码: ``` import matplotlib.pyplot as plt # 绘制ROC曲线 plt.title('Receiver Operating Characteristic') plt.plot(fpr, tpr, 'b', label = 'AUC = %0.2f' % roc_auc) plt.legend(loc = 'lower right') plt.plot([0, 1], [0, 1],'r--') plt.xlim([0, 1]) plt.ylim([0, 1]) plt.ylabel('True Positive Rate') plt.xlabel('False Positive Rate') plt.show() ``` 这是在sklearn中绘制ROC曲线的简单步骤。同时,您还可以使用KS曲线来评估模型性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值