R数据分析:临床预测模型实操,校准曲线和DCA曲线做法示例
之前给大家写过好几篇很详细的临床预测模型的原理解析,本文接着之前的文章,继续写做法,首先依然是找到一篇参照论文,今天我们的示例文章是一篇来自美国心脏学会杂志的文章:
Zhang X, Yuan K, Wang H, Gong P, Jiang T, Xie Y, Sheng L, Liu D, Liu X, Xu G. Nomogram to Predict Mortality of Endovascular Thrombectomy for Ischemic Stroke Despite Successful Recanalization. J Am Heart Assoc. 2020 Feb 4;9(3):e014899. doi: 10.1161/JAHA.119.014899. Epub 2020 Jan 24. PMID: 31973604; PMCID: PMC7033899.
原文给大家贴在上面,我们要做的就是对文章统计部分进行复现。
原文回顾
整篇文章就是开发了一个用于预测癌症患者的3个月死亡率风险诺模图,考虑了什么变量,用的是什么人群队列,本文不关心,感兴趣的同学自行去阅读原文哈,本文着重写宏观做法,作者具体使用的模型是Step-wise logistic regression,文章中有报告各个变量的OR和整体模型的concordance index,重点的结果一个是诺莫图:
还有就是对整体模型,作者还展示了模型的校准曲线和决策曲线(意义详解见R数据分析:临床预测模型中校准曲线和DCA曲线的意义与做法)
文章中的校准曲线长这样:
和决策曲线长这样:
因为回归的or之前写过,今天就写如何几个图的做法。
实例操练
我现在有数据如下:
我想以Y为因变量,做一个预测模型,同时展示诺莫图和校准曲线以及决策曲线,ROC之前发文章有详细的写过,本文直接略过哈。
首先,我需要先训练我的模型,此时是个logistics模型,得用lrm函数进行拟合:
refit <- lrm(y > 3 ~ studage + lectage + service + dept, dat, x = TRUE, y = TRUE)
模型拟合好形成refit对象,直接接上calibrate函数,再plot下就可以:
plot(calibrate(refit, B = 400))
运行上面的代码后直接获得下图,基本不用改动,和发表的文献结构一模一样:
上面就是校准曲线的做法,我们接着看诺莫图的和诺莫图的决策曲线的做法,关于诺莫图的做法,我记得之前写过一个非常详细的教程文献解析:生存数据和分类结局列线图的做法,史上最全,大家可以回去瞅瞅,这儿在我们现在的例子中,只需要将刚刚拟合的refit对象运行下面的代码即可出图:
nom <- nomogram(refit, lp=F,fun=plogis, funlabel="Please follow Wechat Channel- Codewar")
plot(nom)
接下来继续做该诺莫图的决策曲线,决策曲线需要用到dca函数,其基本用法如下:
如果我们做Univariate Decision Curve Analysis,直接写好公式放在第一个参数就行,不过具体到我们的例子我们是在做Univariate Decision Curve Analysis,这个时候我们需要将多变量模型的预测值放在公式的右边:
We wanted to examine the value of a statistical model that incorporates family history, age, and the marker. First we will build the logistic regression model with all three variables, and second we would have saved out the predicted probability of having cancer based on the model.
对于我们的模型来讲,我需要用predict函数得到模型的预测值,然后使用dca函数并结合plot进行DCA曲线的绘制,具体代码如下:
dca(dat$y>3~Nomogram, dat,
thresholds = seq(0.25, 0.75, by = 0.01)
) %>%
plot(smooth = TRUE,bty='n')
运行后并稍加调整即可得到下图,当然下图还可以根据需求继续修改,但是基本上已经差不多,似乎比原文要更好看点啦,嘿嘿。
小结
今天结合之前的文章给大家进一步介绍了校准曲线和决策曲线的实际做法,感谢大家耐心看完,自己的文章都写的很细,重要代码都在原文中,请转发本文到朋友圈后私信回复“数据链接”获取所有数据和本人收集的学习资料。如果对您有用请先记得收藏,再点赞分享。
也欢迎大家的意见和建议,大家想了解什么统计方法都可以在文章下留言,说不定我看见了就会给你写教程哦,有疑问欢迎私信,有合作意向请直接滴滴我。
R数据分析:临床预测模型实操,校准曲线和DCA曲线做法示例的更多相关文章
- R数据分析:临床预测模型中校准曲线和DCA曲线的意义与做法
之前给大家写过一个临床预测模型:R数据分析:跟随top期刊手把手教你做一个临床预测模型,里面其实都是比较基础的模型判别能力discrimination的一些指标,那么今天就再进一步,给大家分享一些和临 ...
- R数据分析:跟随top期刊手把手教你做一个临床预测模型
临床预测模型也是大家比较感兴趣的,今天就带着大家看一篇临床预测模型的文章,并且用一个例子给大家过一遍做法. 这篇文章来自护理领域顶级期刊的文章,文章名在下面 Ballesta-Castillejos ...
- R数据分析:样本量计算的底层逻辑与实操,pwr包
样本量问题真的是好多人的老大难,是很多同学科研入门第一个拦路虎,今天给本科同学改大创标书又遇到这个问题,我想想不止是本科生对这个问题不会,很多同学从上研究生到最后脱离科研估计也没能把这个问题弄得很明白 ...
- R数据分析:孟德尔随机化实操
好多同学询问孟德尔随机化的问题,我再来尝试着梳理一遍,希望对大家有所帮助,首先看下图1分钟,盯着看将下图印在脑海中: 上图是工具变量(不知道工具变量请翻之前的文章)的模式图,明确一个点:我们做孟德尔的 ...
- R数据分析:孟德尔随机化中介的原理和实操
中介本身就是回归,基本上我看到的很多的调查性研究中在中介分析的方法部分都不会去提混杂,都是默认一个三角形画好,中介关系就算过去了,这里面默认的逻辑就是前两步回归中的混杂是一样的,计算中介效应的时候就自 ...
- R数据分析:用R建立预测模型
预测模型在各个领域都越来越火,今天的分享和之前的临床预测模型背景上有些不同,但方法思路上都是一样的,多了解各个领域的方法应用,视野才不会被局限. 今天试图再用一个实例给到大家一个统一的预测模型的做法框 ...
- R数据分析:生存分析的列线图的理解与绘制详细教程
列线图作为一个非常简单明了的临床辅助决策工具,在临床中用的(发文章的)还是比较多的,尤其是肿瘤预后: Nomograms are widely used for cancer prognosis, p ...
- R数据分析:潜类别轨迹模型LCTM的做法,实例解析
最近看了好多潜类别轨迹latent class trajectory models的文章,发现这个方法和我之前常用的横断面数据的潜类别和潜剖面分析完全不是一个东西,做纵向轨迹的正宗流派还是这个方法,当 ...
- 【Social listening实操】作为一个合格的“增长黑客”,你还得重视外部数据的分析!
本文转自知乎 作者:苏格兰折耳喵 ----------------------------------------------------- 在本文中,作者引出了"外部数据"这一概 ...
- Python相关分析—一个金融场景的案例实操
哲学告诉我们:世界是一个普遍联系的有机整体,现象之间客观上存在着某种有机联系,一种现象的发展变化,必然受与之关联的其他现象发展变化的制约与影响,在统计学中,这种依存关系可以分为相关关系和回归函数关系两 ...
随机推荐
- .NET 8.0 酒店管理系统设计与实现
前言 给大家推荐一个基于.NET 8.0 的中小型酒店设计的管理系统. 随着酒店的日常工作增加,很难用人工去进行处理一些繁琐的数据,也可能会因为人工的失误而造成酒店的损失,因此需要一款可以协助酒店进行 ...
- 墨天轮访谈 | 百度云邱学达:GaiaDB如何解决云上场景的业务需求?
分享嘉宾:邱学达 百度云原生数据库资深技术专家 整理:墨天轮社区 导读 业务上云的大背景对弹性与可靠性的要求越来越高,传统架构的单机数据库或是分片数据库已经很难支撑快速增长的业务,导致单机瓶颈.扩容缩 ...
- 使用Swagger的好处
是一个规范和完整的框架 用于生成.描述.调用和可视化RESTful风格的Web服务 接口的文档在线自动生成 功能测试
- TCP 与 UDP 的区别有哪些
什么是 TCP TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可靠的.基于字节流的传输层通信协议 什么是 UDP UDP(User Datagra ...
- 16 Transformer 的编码器(Encodes)——我在做更优秀的词向量
博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 配套 github 链接:https:// ...
- 使用svn保存markdown文档
使用svn管理md文档时,使用谷歌直接访问出现中文乱码,解析格式错误的问题,可以通过安装谷歌浏览器的插件解决. 一.解决格式解析错误的问题 安装插件 Markdown Preview Plus ,安装 ...
- 基于乐鑫 ESP32-C3 的 Matter Light 实践
背景介绍 最近公司在研究 Matter 协议在智能家居领域的市场机会,考虑到易用性和文档支撑等方面,相比较 Telink,产品部门对乐鑫的 Matter-SDK 更感兴趣,因而开展了一些测试工作,毕竟 ...
- 在 K8s 中快速部署使用 GitLab 并构建 DevOps 项目
作者:张海立,KubeSphere 社区 Ambassador.Talented Speaker,社区用户委员会上海站副站长 原文链接:https://kubesphere.com.cn/blogs/ ...
- 云原生爱好者周刊:你对 K8s 集群升级有信心吗?
开源项目推荐 GoNoGo 在 Kubernetes 集群中,有多种因素会影响到附加组件的升级成功率,比如某些组件只支持特定的 API 或者特定的 Kubernetes 版本,某些组件废弃了特定的 a ...
- 低配置PC环境下的魔兽世界游戏体验:ToDesk云电脑性能测试分析
近期魔兽世界再度开服,吸引了众多游戏老玩家回归.然而随着游戏内容的不断更新,其对电脑配置的要求也在逐渐升提高.对于许多电脑配置较低的老玩家,如何在不升级硬件的情况下流畅运行魔兽世界成为了一个难题. 随 ...