每年全球都要花费数十亿美元来预防疾病,减少死亡,资助预防保健及治疗的各种研发项目,以及其他的健康方案。但资金毕竟是有限的,所以一些组织,比如全球卫生资金的主要捐助者比尔&梅林达·盖茨基金会(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 练习:使用 # 号输出长方形

    使用 # 号输出一个长方形,用户可以指定宽和高 height = int(input("please input height: "))width = int(input(&quo ...

  2. vue.js 键盘enter事件的使用

    在监听键盘事件时,我们经常需要检查常见的键值.Vue 允许为 v-on 在监听键盘事件时添加按键修饰符: <!-- 只有在 `keyCode` 是 13 时调用 `vm.submit()` -- ...

  3. python 类函数,实例函数,静态函数

    一.实现方法 class Function(object): # 在类定义中定义变量 cls_variable = "class varibale" def __init__(se ...

  4. loadrunner 运行脚本-Run-time Settings之Pacing设置

    运行脚本-Run-time Settings之Pacing设置 by:授客 QQ:1033553122   As soon as the previous iteration ends 前一个迭代一结 ...

  5. 《InsideC#》笔记(十) 异常处理

    CLR的作用之一是处理异常.通过自动的内存和资源管理可以避免一部分异常,然后借助强类型系统还可以捕获运行时异常. 一 异常基础 异常处理系统保护四个关键字:try,catch,throw,finall ...

  6. 后台返回xml格式转json

    之前后台做了一个xml格式的数据返回给前端,这个可愁坏了我,不过现在还是解决了,虽然方法有点笨,但没有找到其他的方法,先将就着用吧. 后台返回的是这样的: 那么我们就要这样处理:commonMetho ...

  7. (网页)jQuery UI 实例 - 日期选择器(Datepicker)

    默认功能 日期选择器(Datepicker)绑定到一个标准的表单 input 字段上.把焦点移到 input 上(点击或者使用 tab 键),在一个小的覆盖层上打开一个交互日历.选择一个日期,点击页面 ...

  8. Django之验证

    1. 滑动验证码补充说一下 极验科技:https://docs.geetest.com/install/deploy/server/python#下载SDK按照人家的实例操作即可 1.pip inst ...

  9. SQL Server 2005详细安装过程及配置

    说明:个人感觉SQL Server 2005是目前所有的SQL Server版本当中最好用的一个版本了,原因就是这个版本比起其它版本来说要安装简单,操作简便,只可惜这个版本只能在Windows7或者低 ...

  10. 如何用vmware workstation来做虚拟化实验

    前言 以前做用vmare只是简单的实验,但是随着现在虚拟化的兴起,我们的开始要开始虚拟化的实验了. 我们看到有些windows 2012的书上面说用hyper-v来实验,但是hyper-v只能做一些列 ...