使用stata临床决策曲线进行外部模型验证

DCA(Decision Curve Analysis)临床决策曲线是一种用于评价诊断模型诊断准确性的方法。在既往文章中,我们已经介绍了使用stata制作logistic回归和cox回归的临床决策曲线,今天我们来聊聊使用stata临床决策曲线进行外部模型验证,假设你有2个数据集,一个建模后作出临床决策曲线,想通过另一个数据集来进行验证,或者你在文献上看到别人的模型公式,想通过自己的数据来验证别人模型的效能,都可以使用这样的方法来进行。
在这里插入图片描述
图片来源文章:Urinary Podocalyxin as a Biomarker to Diagnose Membranous Nephropath主要讲的是利用肾脏标志物uPCXμgg诊断膜性肾病的事。这幅图的横坐标为阈概率,纵坐标为净获益。当uPCXμgg达到某个值时,患者模型肾病的概率记为Pi;当Pi达某个阈值(记为Pt),就界定为阳性。
在文章Urinary Podocalyxin as a Biomarker to Diagnose Membranous Nephropath中,作者把数据分成了两部分,一个图片为建模,一个图片为验证。我们今天使用作者文章中的数据来进行演示。
我自己总结有以下几个步骤(在安装包后):

  1. 打开建模集数据,建立模型
  2. 提取模型公式,绘制临床决策曲线
  3. 关闭建模集数据,打开验证集数据
  4. 在验证集数据中导入建模集的公式,提取概率并进行转化
  5. 根据转化后结果进行验证集临床决策曲线的绘制

OK,下面我们来一一进行,首先打开建模集数据,建立模型
在这里插入图片描述
Stata会把有些大写字母自动转换成小写,影响不大,注意一下就可以了,我们看看数据,数据很多,这些只是其中一部分的数据,但是作者只用到了MN(膜性肾病)age(年龄)+eGFR(肾小球滤过率)+DM(糖尿病)+uPCXμgg(肾脏病标志物)这几个指标,作者制作模型前把年龄和肾小球滤过率都除以10,这里我们也要处理一下

g age1=age/10
g egfr1=egfr/10

生成两个变量后我们就可以开始了。文章中作者制作了3个模型uPCX(单用肾脏标志物),clinicalparameters(单用临床指标),all(标志物+临床指标)。今天我们偷偷懒,就只制作最后一个模型,其他两个模型的方法也是一样的。

logit mn age1 egfr1 dm uPCXμgg

模型出来啦,我们要记住每个模型的系数还有模型的截距,等下在验证集要用到
在这里插入图片描述
继续,生成预测概率

predict quanbu

绘制图形

dca mn quanbu

在这里插入图片描述
OK,现在我们清除原数据,导入验证集数据

Clear

在这里插入图片描述
验证集数据和建模集数据的指标要相同,要不然验证不了,验证集数据里年龄和肾小球滤过率也要都除以10

g age1=age/10
g egfr1=egfr/10

生成指标后,我们把原模型的系数和截距代入,生成指标new1

g new1 = (age1)*0.560+(egfr1)*0.269-(dm)*1.925+(uPCXμgg)*0.0049-6.133

对指标进行概率转换

g mod1=invlogit(new1)

最后生成图形

dca mn mod1

在这里插入图片描述
OK,到此就完成了,其他的模型也是可以同理做出,可以看得出来,临床决策曲线在验证集上的效能也是非常不错的。
在这里插入图片描述

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天桥下的卖艺者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值