每年全球都要花费数十亿美元来预防疾病,减少死亡,资助预防保健及治疗的各种研发项目,以及其他的健康方案。但资金毕竟是有限的,所以一些组织,比如全球卫生资金的主要捐助者比尔&梅林达·盖茨基金会(Billand Melinda Gates Foundation),需要考虑优先把钱花在那儿。华盛顿大学健康指标及评估研究所(Institute for Health Metrics and Evaluation,IHME)正在帮助解决这个问题,而且是用数据科学的方法。

IHME的主要项目之一,是全球疾病监测(Global Burden of Disease, GDB),这是一个“系统的科学举措,以量化因疾病、外伤及其他危险因素所致的可比较等级的健康损失”。这套系统能跟踪188个国家的300多种疾病和 50个风险因素,根据1990年至今的数据来建模。换而言之,GBD描绘的是囊括人致病或死亡所有可能的方式的全球图景。

例如,运行GBD的发达国家部分,会生成一个树状图,如下所示:

 

图中红色部分代表传染性疾病,像LRIs (下呼吸道感染,如肺炎等)、腹泻、艾滋病、肺结核和疟疾。绿色代表意外损伤,主要由道路交通事故、以及其他形式的暴力行为如战争和灾难所造成。最后,大块的蓝色部分表示非传染性疾病:缺血性心脏病、中风、癌症及许多其他疾病。

随后,GBD可以和“疾病控制优先顺序计划(Disease Control Priorities)”整合 - 该计划是评估世界各地的医疗费用、医疗的有效性和普及性的诸多项目的集合。这两个系统共同运作,为政策制定者服务,为需要优先配置资源的筹款项目提供依据。从本质上讲,它帮助类似盖茨基金的这类公益组织决定投资在哪里可以得到最佳效果,即,拯救最多的生命。

IHME需要处理大量数据。GBD的单次运行所产生的数据超过25 TB,一些更新的项目甚至超过1 PB。为了处理这样的数据量, IHME的计算机科学团队使用20,000核Sun Grid Engine集群,以及一个更新的基于Spark的1000核的集群。

“我们使用Python 来进行数据分析 ,因为它免费,且资源公开”,IHME科学计算部门副主任凯尔·福尔曼(KyleForeman),在2015年西雅图PyData会议上说, “我们是一个非营利机构,不想在购买软件上花费太多。而且我们正与世界各地的人们一同工作,Python的优势对该合作意义重大。 ”

Python具有可扩展性(对处理那些庞大的数据集至关重要),可进行快速原型设计,且易于使用。虽然IHME专门处理医疗卫生指标,但它的许多员工都是流行病学家和医生,而不是统计学家和计算机科学家。一些便利化程序,如Dashboard和iPython notebooks,对帮助这些电脑技术稍欠的合作者使用非常必要。

集合建模:让多数人满意

在提高一个国家健康水平的方法中,最重要的是确定死亡原因。毕竟,你想减少人们的死亡,而做到这一点的最好办法是要弄清楚什么让他们死亡。在估计死亡原因方面,IHME已经开发了一种称为CODEm(Causeof Death Ensemble,死亡原因集合模型)的统计模型。

“关于什么是最好的建模策略一直存在巨大的争论,”福尔曼说,“特别是因为我们有这样一个庞大的合作伙伴网络,我们使用一个集合策略来组合所有这些不同的方法,有选择地评估和挑选最好的,然后将它们组合成一个人人满意的集合。”

例如:为创建65岁俄罗斯人缺血性心脏病的模型,你可能会先采用线性回归,然后把不同的风险因素、周边国家和邻居的年龄组等相互作用的变量整合,再把残余信息采纳过来,然后通过高斯方法来回归(使用PyMC),以适应数据,并做出更好的预测。这些技术一起形成一个由几组相互作用的变量模型,然后和几千个别的模型交叉验证,生成集合模型,也就是在这个案例里所说的缺血性心脏病的整体模型。

 

视频链接

作者阐述了他们选择使用python原因:除了大量可以免费使用的软件包外,简单易用,原始模型(prototyping)的快速定制,延展性(Entensibility)及伸缩性强(Scalability),与其他语言交互能力也很强(Interoperability)。

另一个项目是关于疾病的建模,称为DisMod。 衡量某种疾病有许多不同的方法,比如你可以算一下有多少人得这个病,今年以来有多少人感染,一般的病期多长。 DisMod采用了流行病学数据,加上一些特定疾病的协变量,使用PyMC运行贝叶斯元回归(Bayesian meta-regression),以产生内部一致的数据集。

它是这样工作的:一个普通的疾病模型将一个人分类(共4类):易感,发病,因病而死,因并发症而死。然后,它使用了一系列微分方程来估计该患者从一类转换成另一类的各种概率(基于现有数据,协变量等等)。

展望未来

这些神奇的死亡和疾病模型的建立,使得 IHME 能够根据各种概率,预测全球健康的发展趋势,由此来展望未来。

通过追踪不同的条件和危险因素之间的相关性,跟踪所有单一疾病的全球疾病负担,并,IHME 可以预测生成该全球疾病系统(Global Burden of Disease)所跟踪的对每一疾病的可能发展情景。例如:在模拟血压和心脏病上升的时候,也看看是否钠(食盐)消费量也增加。同样,它也可以追踪一个国家的收入,同时看看烟草消费、死亡率和人口数的相关性。通过成千上万次地模拟运行这些相关性,将生成海量的数据,然后用基于 Python 的 统计模型来模拟。

这些大规模的模拟生成大量的数据资料( PB 级以上),所以他们需要以一种高性能、模块化的方式运行。要做到这一点,IHME 采用模块化的YAML来描述非闭合的流程图。每个数据集(GDP、死亡率等)被分配给一个节点,(通过使用 sympy 方程)这些节点之间的连线表示变量之间的相互影响(通过sympy表示)。

“这背后的想法,” Foreman 说,“是比尔·盖茨想知道他的钱花在了哪里,现在所做的一切,是为了拯救生活在2040年大多数人的生命。”

欢迎加入Python学习资料群:725479218

 

盖茨基金会:如何使用Python拯救生命的更多相关文章

  1. [转帖]盖茨辉煌后将归隐 DOS之父仍为生计打拼(图)

    盖茨辉煌后将归隐 DOS之父仍为生计打拼(图) http://www.sina.com.cn 2007年12月10日 09:43  新浪科技 https://tech.sina.com.cn/it/2 ...

  2. 散文说python半篇——景观三元论与盖茨比的对话

    今天, 天气晴朗,风和日丽: 我事实上在说谎-- 爱说谎事实上是我的天性 上个礼拜四我就用景观三元论说了非常多谎话.然后一头大象自己上吊了. 了不起的大象啊,盖茨比也要从坟墓里爬出来了吧, 陈年旧事, ...

  3. 基于Linux根据僵尸网络病毒平台《比尔盖茨》

    感觉分析的非常好,所以决定翻译出来,希望和大家多多交流O(∩_∩)O~ 转载请注明出处:http://blog.csdn.net/u010484477     O(∩_∩)O谢谢 keyword:病毒 ...

  4. 比尔·盖茨写的最古老程序曝光:BAT程序员膜拜 #精选程序人生

    比尔·盖茨31岁,就成为世界首富.很多人好奇,作为世界第一大PC系统的创始人,抛弃世界首富的头衔,单单从程序员角度来讨论,比尔盖茨的代码水平如何? 其实,比尔·盖茨对写代码有一种狂热的喜好.上高中的时 ...

  5. Linux应急响应(四):盖茨木马

    0x00 前言 ​ Linux盖茨木马是一类有着丰富历史,隐藏手法巧妙,网络攻击行为显著的DDoS木马,主要恶意特点是具备了后门程序,DDoS攻击的能力,并且会替换常用的系统文件进行伪装.木马得名于其 ...

  6. 效仿盖茨:PPstream创始人的心路历程

    http://www.jianglb.com/2007/08/15/about-ppstream.html “P2P网络视频软件的目标是成为网民肚子里的蛔虫.”PPstream总裁徐伟峰自信地说道.他 ...

  7. 季逸超:90后IT少年的“盖茨梦”

    2月15日,"90后"独立开发者季逸超在其微博称,个人获得徐小平和红杉资本投资,成立了Peak Labs--以贝尔和施乐为目标的实验室. 谁是季逸超?他现年20岁,曾单独一人做出猛 ...

  8. content is king – Bill Gates (1/3/1996) 内容为王 - 比尔盖茨

    以下中文版本由谷歌翻译 内容为王 - 比尔盖茨(1/3/1996) 内容是我期望在互联网上赚取大部分真钱的地方,就像在广播中一样. 半个世纪前开始的电视革命催生了许多行业,包括制造电视机,但长期的赢家 ...

  9. 如何让阿三 Windows 10、11 的恢复分区(Recovery Partition)恢复到 “盖茨” 模式

    如何将 Windows Server 2022 的恢复分区(Recovery Partition)移动到 C 盘之前,恢复 C 盘容量调整功能. 请访问原文链接:https://sysin.org/b ...

随机推荐

  1. python爬虫入门---第二篇:获取2019年中国大学排名

    我们需要爬取的网站:最好大学网 我们需要爬取的内容即为该网页中的表格部分: 该部分的html关键代码为: 其中整个表的标签为<tbody>标签,每行的标签为<tr>标签,每行中 ...

  2. 微信小程序下拉框之二维数组或对象

    在项目中,我们大多数时候传的值并不是需要这个下标,而是其他的值.像我项目中,需要获取到的是它对应的Id,那么我们如何通过它的这个下标值返回你想要的值呢? 通过picker返回的索引值,去获取匹配你想获 ...

  3. 在 Ubuntu 18.04 下安装 fcitx 及搜狗拼音输入法

    感觉自己傻逼透了,之前在 16.04 时折腾着要装 ibus 和 rime 输入法,现在 18.04 默认安装 ibus 了,又因为 rime 的智能联想太弱,打字不爽,又想装回搜狗一劳永逸... 环 ...

  4. 【读书笔记】iOS-storyboard-两个场景间的切换(二)

    接着上一节 一,在storybord画布上面,新增加一个场景,即拖动一个View Controller到画布上面,同时建立一个button,名字为secondButton.如图所示. 二,点击第一个按 ...

  5. 【读书笔记】iOS-优化内存

    imageNamed:方法创建UIImage对象,这些对象不再使用的时候 会放到应用的默认自动回收池中,而不是当前的事件循环的自动回收池中,这样的对象占用的内存只有在应用结束的时候 才会回收.如果用这 ...

  6. Salesforce的报表和仪表板

    报表是现代企业中最常用到的功能之一.Salesforce中提供了强大的报表和仪表板功能. 报表和仪表板简介 报表是一组数据展示,用户可以自定义规则,只有符合相应规则的数据才会显示出来. Salesfo ...

  7. 【图解】Web前端实现类似Excel的电子表格

    本文将通过图解的方式,使用纯前端表格控件 SpreadJS 来一步一步实现在线的电子表格产品(例如可构建Office 365 Excel产品.Google的在线SpreadSheet). 工具简介: ...

  8. tensorflow 文件队列

    使用文件队列,防止爆内存 # # 通过队列打开图片文件 file_queue = tf.train.string_input_producer(paths) img_reader = tf.Whole ...

  9. 前端测试框架jest 简介

    转自: https://www.cnblogs.com/Wolfmanlq/p/8012847.html 作者:Ken Wang 出处:http://www.cnblogs.com/Wolfmanlq ...

  10. 通过DbVisualizer 工具运行DB2存储过程实现INSERT语句主键自增造数

    1.需求简介 最近开发人员需要进行一批数据进行生产上SQL语句耗时过长问题的验证与优化.所以在性能测试库中批量建造数据,由于交易本身业务逻辑过于复杂以及需要各种授权,最后决定采用插表的方式完成. 2. ...