7.评价预测模型——ROC曲线

本文主要介绍了使用R语言进行模型评估的方法,包括拟合优度检验、ROC曲线、Calibration校准曲线和DCA曲线。详细阐述了不同类型资料(二分类、生存资料、竞争风险模型)下,单一或多模型的ROC曲线绘制方法及相关函数使用,还说明了各评估指标的含义和计算方式。

低功耗蓝牙项目,需要一块懂省电的板

思澈 SF32LB52 芯片,BLE 协议栈深度优化,上手即开发

目录

1. 拟合优度检验

2. ROC曲线

二分类资料

1.单一模型ROC曲线

模型建立

(1)roc函数法 

ROC绘图

(2)AUC函数法

AUC曲线

PR曲线

(3)roc.curve函数法

PR曲线

 ROC曲线

(4)Score函数

2. 多模型ROC曲线

(1)roc()函数

(2)Score()函数

生存资料

1.单模型单时间点ROC曲线

(1)TimeROC函数

(2)survivalROC函数

2.单模型多时间点ROC曲线

(1)TimeROC函数

(2)survival函数

3.多模型同时点ROC曲线

(1)TimeROC函数

(2)survival函数

竞争风险模型

单模型单时点ROC曲线

单模型多时点ROC曲线

多模型同时点ROC曲线

3. Calibration校准曲线

4. DCA曲线


1. 拟合优度检验

拟合优度检验计算每个个体结局事件的预测值,并按照预测值的大小对数据进行分组,一般分为5-10组,进行Hosmer-Lemeshow拟合优度检验,考察预测值与实际值的吻合程度,p>0.05,说明模型拟合效果较好。

2. ROC曲线

ROC曲线主要用来评价预测模型的鉴别能力。根据一系列的阈值分为两类,以真阳性率(灵敏度)为纵坐标,以假阳性率为横坐标(1-特异度)。

ROC曲线越接近左上角,曲线下面积越大,说明预测价值越大。一般认为曲线下面积大于0.8,其诊断价值较大。

二分类资料

1.单一模型ROC曲线

工具:

  • roc()函数,pROC包
  • AUC()函数,modEvA包
  • roc.curve()函数,PRROC包
  • score()函数,riskRegression包

案例:纳入680名研究对象,研究肺动脉栓塞的风险。

模型建立

library(readxl)
data <- read_excel("data.xlsx")
data<-na.omit(data)
data<-as.data.frame(data)

form.bestglm<-as.formula(group~age+BMI+ToS+CA153+CDU+transfusion+stage)
form.all<-as.formula(group~.)

使用最优子集发筛选的自变量,构成模型form.bestglm,然后构建一个所有自变量的模型公式form.all

对数据集data进行打包:

library(rms)
dd=datadist(data)
options(datadist="dd")

模型进行拟合:

fit.glm<- lrm(formula=form.bestglm,data=data,x=TRUE,y=TRUE)
(1)roc函数法 

ROC拟合:

predvalue<-predict(fit.glm)
#install.packages("pROC")
library(pROC)
ROC <- roc(data$group,predvalue)

predict()函数进行预测,将预测结果储存在predvalue中

roc()函数,第一个为结局变量,第二个为预测结果。

查看ROC结果:

ci(auc(ROC))
coords(ROC, x="best", ret="all", transpose = FALSE)

auc()查看曲线下面积;ci()查看曲线下面积的置信区间95%CI;

此处的AUC及其置信区间即C指数及其可信区间。

查看更多的ROC结果:

coords()函数中输入模型ROC,选项x设置为“best”,选项ret设置为“all”,选项transpose设置为F。

输出的结果可以看到截断值(threshold)为-1.30197,特异度(specificity)为0.808,灵敏度(sensitivity)为0.655,准确度(accuracy)为0.783,真阳性(True Positive, TP)57例,真阴性(True Negative, TN)346例,假阴性(False Negative, FN)30例,假阳性(False Positive, FP) 82例,约登指数(r, Youden’s index)1.46,阳性预测值(positive predictive value, ppv)0.41,阴性预测值(npv) 0.92,

诊断的结果可整理成四格表的形式。表中有4个可能结果,其中2个结果表明被评价诊断方法的诊断结果是正确的,即病例被诊断为阳性(真阳性;True Positive, TP)和对照被诊断为阴性(真阴性;True Negative, TN);两个是错误的,即病例被诊断为阴性(假阴性;False Negative, FN)和对照被诊断为阳性(假阳性;False Positive, FP)。

1. 患病率

       患病率即研究对象中患有该疾病的人所占的比例。不同于发病率(incidence),患病率的计算既包括新病例也包括旧病例。

2. 准确度

       准确度(符合率),即与金标准相比,待评价的诊断方法获得正确结果的比例,即真阳性和真阴性的比例。

准确度受患病率的影响,且没有揭示假阳性和假阴性各自的概率。因此,准确度是比较粗略的评价指标。

3. 灵敏度和特异度

       灵敏度,即实际患病而按该诊断方法被正确地判定为患病的百分率(真阳性率)。灵敏度反映该诊断方法发现病人的能力。

        特异度,即实际无病按该诊断方法被正确地判定为无病的百分率(真阴性率)。特异度反映该诊断方法确定不患病的能力。

灵敏度与特异度具有不受患病率影响的优点,其取值范围均在(0, 1)之间,其值越接近于1,说明该项诊断试验的价值越好,对于有病、无病的识别能力越强。但由于灵敏度和特异度随界值的影响此消彼长,所以无法比较两种方法的诊断价值。

4. 误诊率和漏诊率

       误诊是指将不患病错误地判定为患病,即假阳性。

       误诊率(%)=假阳性例数/实际阴性例数×100%

       漏诊是指将患病错误地判定为不患病,即假阴性。

       漏诊率(%)=假阴性例数/实际阳性例数×100%

 5. 约登指数(r, Youden’s index)

       约登指数,又称为正确诊断指数,表示诊断方法的真实度。其值越接近1,诊断试验的真实性越好。当漏诊和误诊对疾病诊断的危害性具有同等意义的时候,可以用约登指数来比较两种诊断方法的优劣。

       约登指数=1-(假阳性率+假阴性率)=(灵敏度+特异度)-1

 6. 似然比

       阳性似然比(positive likelihood ratios, LR+)反映被评价的诊断方法正确判断阳性的可能性是错误判断阳性可能性的倍数,即真阳性率与假阳性率之比。阳性似然比越大,说明诊断结果为阳性时,患者真的患病的概率越大,诊断价值越大。

        阴性似然比(negative likehood ratios, LR-) 反映被评价的诊断方法错误判断阴性的可能性是正确判断阴性的可能性的倍数,即假阴性率与真阴性率之比。阴性似然比越小,说明能够否定患有该病的可能性越大,诊断价值越大。

 7. 预测值

      阳性预测值(positive predictive value, PV+):真阳性在待评价方法判定的阳性患者中所占的比例;反映待评价的诊断方法判定为阳性时,该受试对象确实患某病的概率。

         阴性预测值(negative predictive value, PV-):真阴性在待评价方法判定的阴性非患者中所占的比例;反映待评价的诊断方法判定为阴性时,该受试者不会患某病的概率。

预测值受患病率的影响很大。

   8. 优势比(odds ratio, OR)

       病例组中诊断阳性数与阴性数比值与对照组中诊断阳性数与阴性数比值的比值。

OR>1,表示试验组比对照组更容易获得诊断阳性结果;反之亦然。

ROC绘图
par(mar=c(5,5,2,1))
plot(1-ROC$specificities,
     ROC$sensitivities,
     type="l",col="black",
     lty=1,lwd=2,
     xlab="1-Specificities",ylab="Sensitivities",
     xlim = c(0,1),
     ylim = c(0,1),
     xaxs = "i",
     yaxs = "i",
     cex=1.5,
     cex.lab=1.5,
     cex.axis=1.5)
abline(0,1,lty=2,lwd=2)

低功耗蓝牙项目,需要一块懂省电的板

思澈 SF32LB52 芯片,BLE 协议栈深度优化,上手即开发

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值