Logistic构建临床预测模型系列主要以一篇基于logistic回归构建预测模型的文章为例,从整理数据到构建预测模型,再到内部验证模型,包括了整理数据、随机数据拆分、基线描述、差异性分析、绘制ROC曲线并计算AUC值、HL检验及绘制校准曲线、构建列线图模型并绘制DCA曲线,基本涵盖了Logistic构建预测模型的全过程,敬请期待!
本文属于Logistic构建临床预测模型系列文章第四篇,分别用R语言和风暴统计对构建Logistic预测模型过程中必不可少的Logistic单因素+多因素回归进行复现。系列文章详情请点击下方链接:
Logistic构建预测模型(1):复现SEER数据库文献解读
Logistic构建预测模型(2):如何用R语言整理数据?(附全套代码)
Logistic构建预测模型(3):如何用R语言拆分数据集并做均衡性检验?(附全套代码)
Logistic构建预测模型(4):如何用R语言做Logistic先单后多回归分析!(附全套代码)
本文主要以这篇基于logistic回归构建预测模型的文章为例,分别用R语言和风暴统计对预测模型验证过程中经常用到的ROC曲线绘制和AUC曲线下面积计算进行复现。
今日文章分为三部分
1.R语言复现
2.小白美化ROC曲线的方法

1.R语言复现
根据文章的纳排标准,从SEER数据库提取数据,并通过筛选、整理得到数据集total,将数据按照7:3拆分为训练集train和验证集test,并展开分析。本文重点复现文章中训练集ROC曲线的绘制。
1.1安装和加载R包,导入train数据集,共14个自变量,均为定性数据。经过单因素及多因素logistic回归,包括年龄、性别、种族、肿瘤大小、组织学、T分期、N分期、手术、放疗、化疗、骨转移、肝转移均纳入构建预测模型。
if(!require("pROC")) install.packages("pROC")
setwd("D:/R/lung cancer-seer-logistic")#设置工作空间
cancer<- read.csv("train.csv")#导入数据集
str(train)#查看数据
1.2添加新变量,计算训练集预测概率
train$Pred_int<-predict(overall.log,newdata = train, type = "response")
代码解读:
train_model1:是从glm继承的模型对象,即通过多因素Logistic回归构建的模型;
newdata:选定数据框;
type: 表示预测种类。默认是归一化的线性预测; responses是归一化的响应变量。因此对于一个二分类模型,默认是log-odds (logit归一化的概率),然而type="response"给出的是预测概率。"erms"返回一个矩阵提供在线性预测下模型公式中每一项的拟合值。
1.3计算AUC去线下面积
train_roc<-roc(train$All.cause.early.death,
train$Pred_int,ci=T)#建立ROC关系
print(paste0("AUC (95%CI): ",sprintf("%0.3f",train_roc$ci)[2],
" (",sprintf("%0.3f",train_roc$ci)[1]," - ",
sprintf("%0.3f",train_roc$ci)[3],")"),quote=F)
代码解读:roc函数建立ROC关系,train$All.cause.early.death为所研究的结局,train$Pred_int为预测概率,ci=T表示输出置信区间。

1.4绘制ROC曲线
plot(train_roc,
print.auc=TRUE, #设置是否添加AUC值标签
auc.polygon=T, #设置是否添加AUC值面积多边形
grid=c(0.1, 0.2), #设置是否添加网格线
grid.col=c("green","red"), ##设置网格线颜色
col="red",#设置ROC曲线颜色
max.auc.polygon=TRUE, #设置是否添加最大AUC值面积多边形
legacy.axes=F, #x轴格式更改
auc.polygon.col="skyblue", #设置AUC值面积多边形的填充色
print.thres=T, #是否添加截点和95%CI,
print.thres.col="black",#设置阈值的颜色
main="ROC curve of train")#图的主标题
代码解读:本文所提供的ROC曲线绘制的代码参数较多,可以帮助诸位绘制比较精美的ROC曲线图,不妨一试。

如上,以非小细胞肺癌脑转移全因早死为结局的ROC曲线就绘制完成啦!但是R语言的操作属实还是比较难的,下面为大家展示一下另一种十分快捷简单,并且也是以R语言为基础的绘制方法!
2.小白美化ROC曲线的方法
用它,小白也能画出ROC曲线,并且直接美化,不是吹的,看过就知道它有多好用!!

2.1电脑端打开风暴统计平台——“风暴智能统计”模块,点击“临床预测模型(最新)”,进入“临床预测模型:内部验证”页面。

2.2导入数据集total

2.3拆分数据集,设置随机数字并确定拆分比例

2.4开展logistic回归分析

2.5结果直出
回归变量和多因素回归设置完成后,下方结果直接给出,如下图所示,快的让人震惊!!!

ROC曲线显示设置不用再像R语言一样摆出一行行的代码,直接小白式操作也可以画出非常精美的ROC曲线,并且AUC直也不需要单独计算,这也太神了吧!

结果也可以直接下载

快来试试吧,绝对惊艳你!