目录
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)

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




3251

被折叠的 条评论
为什么被折叠?



