在上一篇文章中,我们谈到了用R语言绘制生存数据决策曲线和趋势评分的匹配操作。今天,我们主要解释和演示基于逻辑回归的诊断模型。
1.诊断模型应用场景
临床诊断模型主要用于结果变量为二元变量的情况。
它广泛应用于肿瘤和非肿瘤领域。
主要回答以下问题
1.发生了吗?是/否
2.肿瘤复发了吗?是/否
3.冠状动脉支架植入后是否发生再狭窄。
4.糖尿病患者是否发生长期糖尿病足截肢。
5.腹膜透析患者是否发生透析相关腹膜感染。
6.植入后腹腔引流管是否拔除或穿刺部位感染。
一系列临床实际问题,可以考虑构建预测模型。
2.GLM函数的应用
在R语言中,glm)函数可用于逻辑回归分析。
Glm)函数是stats包中广义线性回归中使用的函数,其一般形式为:
glm公式,家族=高斯,)
Glm)函数有很多参数,主要是公式和族。
族可以设置分布函数族。在本例中,如果设置为二项式,glm将运行逻辑回归。
当family设置为二项式时,如果L连接函数link设置为logit,则glm运行逻辑回归。
如果设置为probit,glm将运行probit回归。
具体格式为:family=二项式link=logit)
公式用于设定回归模型,其一般形式为公式=y~x,其中y为响应变量,x为解释变量。
在模型建立之前,这里不再重复变量过滤。可以使用SPSS或Easy软件筛选预测变量,即独立预测因子。
建议使用易软件,操作起来省时省力。
计划近期推出:逻辑回归和COX回归的E软件,软件操作。
setwd’ e : \ \ r work ‘)dev-read . CSV’ data . CSV ‘)库rms)库外部)#计算预测值dev $ predmodela-predict新数据=dev,modela,’ response ‘)dev $ pred modelB-predict新数据=dev,modelB,’ response ‘)dev $ pred modelC-predict新数据=dev,modelC,’ response ‘)
#绘制ROC曲线,首先安装Proc包install.packages ‘Proc ‘)库pROC)
#分别画三条ROC曲线,给出阈值和ROC曲线下的面积。gmodelA – rocMN~predmodelA,data=dev,smooth=F)图gmodelA,print.auc=TRUE,print.thres=TRUE,main=’ROC CURVE ‘,col=’blue ‘,print.thres.col=’blue ‘,identity.col=’blue ‘,identity.lty=1,identity.lwd=1)
gmodelB – rocMN~predmodelB,data=dev,smooth=F)图gmodelB,print.auc=TRUE,print.thres=TRUE,main=’ROC CURVE ‘,col=’blue ‘,print.thres.col=’blue ‘,identity.col=’blue ‘,identity.lty=1,identity.lwd=1)
gmodelC – rocMN~predmodelC,data=dev,smooth=F)图gmodelC,print.auc=TRUE,print.thres=TRUE,main=’ROC CURVE ‘,col=’blue ‘,Print.thres.col=’ blue ‘,identity.col=’ blue ‘,identity.lty=1,identity.lwd=1) 3。Roc曲线绘制
#计算预测值dev $ pred modela-predictnew data=dev,modela,’ response ‘)dev $ pred modelb-predictnew data=dev,modelb,’ response ‘)dev $ pred model c-predictnew data=dev,model c,’ response ‘)
#绘制ROC曲线,首先安装Proc包install.packages ‘Proc ‘)库pROC)
#分别画三条ROC曲线,给出阈值和ROC曲线下的面积。模型- rocMN~predmodelA,数据=dev,平滑=F)图模型,打印. auc=TRU
E, print.thres=TRUE,main = “ROC CURVE”, col= “blue”,print.thres.col=”blue”,identity.col=”blue”, identity.lty=1,identity.lwd=1)
gmodelB <- rocMN~predmodelB, data = dev,smooth=F)plotgmodelB, print.auc=TRUE, print.thres=TRUE,main = “ROC CURVE”, col= “blue”,print.thres.col=”blue”,identity.col=”blue”, identity.lty=1,identity.lwd=1)
gmodelC <- rocMN~predmodelC, data = dev,smooth=F)plotgmodelC, print.auc=TRUE, print.thres=TRUE,main = “ROC CURVE”, col= “blue”,print.thres.col=”blue”,identity.col=”blue”, identity.lty=1,identity.lwd=1)
依次为A B C 模型ROC曲线(可以继续美化)
同时显示AUC, 最佳截断值。
4. 将多条ROC曲线绘制在一起
#将三条ROC曲线放在一个图形中.
librarypROC)devroc1 <- plot.rocdev$MN, dev$predmodelA, main=”dev ROC”, percent=TRUE, col=”1″)devroc2 <- lines.rocdev$MN, dev$predmodelB, percent=TRUE, col=”2″)devroc3 <- lines.rocdev$MN, dev$predmodelC, percent=TRUE, col=”3″)legend”bottomright”, legend=c”devmodelA”, “devmodelB”,”devmodelC”), col=c”1″, “2”,”3″), lwd=2)
5. 诊断模型列线图绘制
以 modelC 为例,进行列线图绘制示范
此处做logistic回归,列线图,与前面计算ROC那里不同,应用lrm) 函数进行操作,以modelC2代指
lrm()函数同样可用于logistic回归,能够自动整合数据维度,如用glm()计算,会出现“下标出界”现象
#打包数据ddist <- datadistdev)optionsdatadist=’ddist’)
modelC2 <- lrmMN ~age + eGFR + DM + NLR,data=dev)nomomodelC <- nomogrammodelC2,lp=F, fun=functionx)1/1+exp-x)), fun.at=seq0.1,1,by=0.1), funlabel=”Diagnostic possibility”)plotnomomodelC)
至此,模型构建完毕,后续可进行模型预测准确性与区分能力校验。
后续会更新
1. 生存资料,COX回归模型构建基本操作
以及如何将多条 时间依赖ROC 绘制在一个图像里
2. 易侕软件基本操作-logistic回归 与 COX回归
欢迎关注,学习交流为主~
获得本文演示数据及代码,关注同名微信公众号,临床预测模型训练营,后台回复“R03”即可
飞艇如何买前5后51ddace94350421a9dfed4af2b57d362?from=pc”>
4. 将多条ROC曲线绘制在一起
#将三条ROC曲线放在一个图形中.
librarypROC)devroc1 <- plot.rocdev$MN, dev$predmodelA, main=”dev ROC”, percent=TRUE, col=”1″)devroc2 <- lines.rocdev$MN, dev$predmodelB, percent=TRUE, col=”2″)devroc3 <- lines.rocdev$MN, dev$predmodelC, percent=TRUE, col=”3″)legend”bottomright”, legend=c”devmodelA”, “devmodelB”,”devmodelC”), col=c”1″, “2”,”3″), lwd=2)
5. 诊断模型列线图绘制
以 modelC 为例,进行列线图绘制示范
此处做logistic回归,列线图,与前面计算ROC那里不同,应用lrm) 函数进行操作,以modelC2代指
lrm()函数同样可用于logistic回归,能够自动整合数据维度,如用glm()计算,会出现“下标出界”现象
#打包数据ddist <- datadistdev)optionsdatadist=’ddist’)
modelC2 <- lrmMN ~age + eGFR + DM + NLR,data=dev)nomomodelC <- nomogrammodelC2,lp=F, fun=functionx)1/1+exp-x)), fun.at=seq0.1,1,by=0.1), funlabel=”Diagnostic possibility”)plotnomomodelC)
至此,模型构建完毕,后续可进行模型预测准确性与区分能力校验。
后续会更新
1. 生存资料,COX回归模型构建基本操作
以及如何将多条 时间依赖ROC 绘制在一个图像里
2. 易侕软件基本操作-logistic回归 与 COX回归
欢迎关注,学习交流为主~
获得本文演示数据及代码,关注同名微信公众号,临床预测模型训练营,后台回复“R03”即可