文献学习:机器学习方法帮助缩短就诊时间

December 09, 2023
测试
测试
测试
测试
3 分钟阅读

本文使用zotero和obsidian自动生成

今天给大家分享一篇2022年发表于JAMA network open(IF13.3) 上面的文章,文章使用机器学习方法预测患者是否诊断为某种疾病,帮助提高急诊运行效率,缩短患者等待时间!

今天这篇也是一篇不错的临床数据研究、机器学习方面的文章。

Assessment of Machine Learning-Based Medical Directives to Expedite Care in Pediatric Emergency Medicine

📜Metadata

  • Publication: JAMA network open
  • IF: 13.353
  • Author: Devin Singh, Sujay Nagaraj, Pouria Mashouri, Erik Drysdale, Jason Fischer, Anna Goldenberg, Michael Brudno
  • Date: 2022-03-01
  • DOI: 10.1001/jamanetworkopen.2022.2599[1]
  • ZoteroLink: Local library

♾️Abstract

🤔文章思路

研究背景

由于急诊就诊患者特别多,患者等待时间非常长,往往会延误病情,因此患者希望通过机器学习方法缩短患者等待时间,帮助提高急诊的运行效率!

作者认为现行的急诊就诊流程不够好,因此通过机器学习帮助,提出了 machine learning–based medical directives (MLMDs) 帮助缩短急诊等待时间。

研究方法

数据来源: 在Hospital for Sick Children Toronto, Canda医院急诊就诊的患者,时间跨度为2018年7月1日到2019年6月30日,一共77219例患者,年龄为0-18周岁。

这一部分其实原文写的非常详细,我只是简单介绍下,原文中数据的预处理方法以及用到了哪些python 库都提到了,感兴趣的可以自己去看~

模型选择和建立: 作者选择了岭回归、随机森林、神经网络3种方法。数据分为训练集(55%)、验证集(15%)、测试集(30%),根据时间顺序进行划分,不是简单的分层划分或者随机划分哦!

预测变量包括生命体征(TPRBPS)、体重、年龄、症状、家和医院的距离等。这里重点说下结果变量,原文是这样说的:Our models predict whether a patient will have a diagnosis associated with the tests described above. For example, the forearm radiograph model is trained to predict whether a patient will have 1 of the following final diagnoses: buckle fracture, fracture of radius, fracture of ulna, and wrist fracture. 也就是说,他们的模型会预测患者是否诊断为某种疾病(和几种常见检查相关的疾病)。

作者一共找了6个临床急诊常用的检查:心电图、尿试纸检验、腹部超声、睾丸超声、前臂X线、胆红素水平,对于每一种检查,作者都用3种机器学习方法预测患者会不会诊断为和此种检查有关的疾病,作者还举了一个例子:对于前臂X线来说,作者用3种方法预测患者是否会诊断为以下疾病:隆起型骨折、桡骨骨折、尺骨骨折、腕骨骨折。

模型评价: 二分类资料常见的模型评价指标,无非就是那几个,医学最常见的,肯定少不了ROC曲线、曲线下面积这些,还有真阳性、假阳性、阳性预测值、阴性预测值。

研究结果

模型性能

首先就是3种方法分别预测6种检查的结果表格,这就是本文的表1了:

上面这张表格详细列出了每一种检查对应的每一种方法的模型指标,包括阳性预测值、真阳性率、假阳性率、AUROC,对于每一种指标的计算,也和我们常见的计算不太一样,作者说明了他们的定义方法,比如:TP indicates positive prediction when a test is completed OR an associated differential diagnosis is present; true negative, negative prediction when no test is completed AND no associated differential diagnosis is present.

除了表格,怎么能少了图呢?尤其是这类预测模型、机器学习类的文章,又是生物医药领域的,ROC曲线必不可少,虽然结果都是说的一个东西,但是必须得有...

这几个图,相信大家都会画,但是这个无限接近1的ROC真是让人羡慕...

新方法节省了巨多时间!

这篇文章搞这么多活并不是为了告诉大家模型有多准确,而是告诉大家基于他们的模型建立的方法给患者节省了巨量的时间!

作者通过一顿操作发现,新流程比现有流程竟然能节省165分钟的时间! 看到这里,我都惊了,这也太牛逼了吧!但是仔细一看,发现处处都是作者的小心思,对于两边的时间是怎么计算的,作者也是有一套方法的。遗憾的是这么震撼的结果竟然没放一个图或者表出来!

模型解释

使用了一种叫做Shapley Additive Explanations values 这种方法进行模型解释,这是一种比较流行的模型解释方法,传统的feature importance只告诉哪个特征重要,但并不清楚该特征是怎样影响预测结果的。SHAP value最大的优势是SHAP能反映出每一个样本的影响力,而且还表现出影响的正负性。通过python的shap库实现,做出来的效果也是比较炫酷的:

上面这张图,横坐标代表shap值,纵坐标表示特征,颜色代表特征值。R里面也有一些包可以做shap,比如:shapper/iml/shapleyR等,感兴趣的小伙伴可以自己尝试一下!

根据年龄性别进行分层

作者在最后比较了一下不同年龄性别之间假阳性率的不同。

以上就是本篇文章的主要内容了!

😀优缺点

作者认为这是一个单中心的研究,时间跨度也不长,最好是多中心、长时间的研究;另外研究方法有待优化!

通篇看来这篇文章是略复杂的,并不像前面介绍的那篇纯数据挖掘的简单,作者用的方法虽然很简单,但是对于各个指标的计算都有自己的想法,这可能也是能够得出这么好的结果的原因之一!

当然这一点也是非常值得我们学习的,格局要打开,不要只盯着那几个指标,指标是死的,思路是活的,下次你的指标很难看时,不妨也自己换个计算方式,说不定就豁然开朗了!

不过就像前面说的,本文的重点不是在于说明模型有多准确,而是要证明基于这个模型的新方法确实能够节省巨量时间!从这一点来看,这篇文章非常"完美"。

大家手里如果有很多临床数据不知道该怎么用,不妨也试着像这样搞一搞看看,选择一个合适的问题,构建几个模型,说不定就有新发现~

参考资料

[1]

DOI: https://doi.org/10.1001/jamanetworkopen.2022.2599

继续阅读

更多来自我们博客的帖子

如何安装 BuddyPress
由 测试 December 17, 2023
经过差不多一年的开发,BuddyPress 这个基于 WordPress Mu 的 SNS 插件正式版终于发布了。BuddyPress...
阅读更多
Filter如何工作
由 测试 December 17, 2023
在 web.xml...
阅读更多
如何理解CGAffineTransform
由 测试 December 17, 2023
CGAffineTransform A structure for holding an affine transformation matrix. ...
阅读更多