打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
以下几种指标来对模型进行评价

通常情况下,通过以下几种指标来对模型进行评价

1)区分度:采用指标C-index和ROC曲线来评价区分度,一般文章都是二选一。

  • C-index即一致性指数(index of concordance),通过评估模型预测结果与实际观察结果的符合程度,以评价模型的预测准确性

  • ROC曲线,展示特异性和敏感性,ROC曲线下的面积被称为AUC,它介于0.5和1之间,作为数值可以直观的评价分类器的好坏,值越大越好。

2)校准度:通常采用校准曲线(calibration curve)来进行评价一致性/校准度,即预测值和真实值之间的差异

3)DCA:决策曲线(DCA)用来帮助确定高风险的患者进行干预、低风险的患者避免过度医疗。

这里先介绍Calibration curve...................

校准曲线简介

Calibration curve,直译过来就是校准曲线或校准图。其实,校准曲线就是实际发生率和预测发生率的散点图。实质上,校准图曲线是把Hosmer-Lemeshow拟合优度检验的结果可视化。目前校准曲线常用来评价logistic回归和cox回归模型。

校准曲线案例

不同数据集的校准曲线

不同时间的校准曲线

不同模型的校准曲线

校准曲线解读

解读:横坐标为预测的事件发生率(Predicted Probablity),纵坐标是观察到的实际事件发生率(Actual Rate),范围均为0到1,可以理解为事件发生率(百分比)。对角线的虚线是参考线,即预测值=实际值的情况。红线是曲线拟合线,两边带颜色部分是95%CI。

  • 如果预测值=观察值,则红线与参考线完全重合

  • 如果预测值>观察值,即高估了风险,则红线在参考线下面

  • 如果预测值<观察值,即低估了风险,则黑线在参考线上面

如何绘制校准曲线?

经过查阅多个教程,校准曲线就是以预测值为X轴,真实值为Y轴绘制,Hosmer-Lemeshow拟合优度检验结果的可视化的图。真实值即为status值,比如生存(0:生;1:死),0—1代表了真实的死亡风险。预测值是根据构建好的模型预测出每个患者的死亡风险,采用predict()函数返回风险评分值,并将该评分值加以转化成更为直观的风险值。在得到真实值和预测值的基础上进行校准曲线的绘制和显著性检验。以下是两种比较简单的矫正曲线方法,但成图都比较单调,不够美观。方法1采用的是rms包的calibrate函数(输入构建模型即可,简单)。方法2先计算出预测值和真实值,然后用plotCalibration函数绘图。

#-------------------------------------校准曲线(方法1)--------------------------------rm(list = ls())# install.packages("survival")# install.packages("rms")
library(survival)library(rms)#载入并查看数据集data("lung") #status中1代表活着,2代表死了. sex中male=1,female=2head(lung)str(lung)
#构建回归模型## 参数说明:## 1、绘制校正曲线前需要在模型函数中添加参数x=T, y=T,详细参考帮助## 2、u需要与之前模型中定义好的time.inc一致,即365或730;## 3、m要根据样本量来确定,由于标准曲线一般将所有样本分为3组(在图中显示3个点),而m代表每组的样本量数,因此m*3应该等于或近似等于样本量;## 4、b代表最大再抽样的样本量res.cox1 <- cph(Surv(time, status) ~ age+sex+ph.ecog+ph.karno+pat.karno, data = lung,surv=T,x=TRUE, y=TRUE,time.inc=365)
## 构建校正曲线## calibrate函数适用于ols, lrm, cph or psm返回对象cal <- calibrate(res.cox1, cmethod='KM', method="boot",u=365,m=38,B=228)plot(cal,lwd=2,lty=1, errbar.col=c(rgb(0,118,192,maxColorValue=255)), xlab="Nomogram-Predicted Probability of 1-Year OS", ylab="Actual 1-Year DFS (proportion)", col=c(rgb(192,98,83,maxColorValue=255)))
#------------------------------------校准曲线(方法2)--------------------------------------rm(list = ls())#install.packages("PredictABEL")library(PredictABEL)library(rms)library(survival)#载入并查看数据集data("lung") #status中1代表活着,2代表死了head(lung)lung$status <- ifelse(lung$status==1,0,1)
#构建模型并绘制校准曲线res.cox2 <- cph(Surv(time,status) ~., data = lung,surv=T,x=TRUE, y=TRUE)newdata <- lung[101:200,] #用来校准的数据,这里从源数据中调取了部分pred.lg<- predict(res.cox2,newdata) #每位患者的风险评分newdata$prob <- 1/(1+exp(-pred.lg)) #将pred.lg做数据转化,数值更直观prob <- newdata$prob plotCalibration(newdata,3, prob, groups=10) #3为结局指标所在列数

总结: 校准曲线是一种评价模型的方法,在实际项目中应该是构建好模型,然后评价模型,改善模型,确定最终模型(C-index/ROC/DCA结果表明模型合格),最后对模型进行可视化展示(如森林图、列线图,生存点图等)。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
logistic校准曲线(测试集)的6种实现方法
R绘制Nomogram图
R语言︱分类器的性能表现评价(混淆矩阵,准确率,召回率,F1,mAP、ROC曲线)
校准曲线的绘制的小技巧
R语言通过伽玛与对数正态分布假设下的广义线性模型对大额索赔进行评估预测
r语言逻辑回归(对数几率回归,Logistic)分析研究生录取数据实例
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服