疫情系列|明天会更好,吗?


这些天,周遭的话题依然绕不开疫情。举国空前的防护力度下,病毒终于放缓了肆意的脚步。人们也从曾经的猝不及防,化作今日的从容淡定。城市迎来了复工潮,寂静的街道也逐步熙攘起来。

疫情系列|明天会更好,吗?


很多人不禁要问,“明天会更好吗?”


除了医疗技术的进步,大数据成了解答问题的另一关键。打开电视、电脑、手机即可遇见各种专业术语,比如“传染病模型”、“传染系数”、“拐点”等等。即便在外行看来,这些海量的数据所得出的科学论断,将给我们一个确信的明天。在这处处大数据的时代,拥有数据便是拥抱未来。


关于数的信仰

人类对于“数”的信仰由来已久,这种崇拜寄托着窥视未来的无限憧憬。古希腊的毕达哥拉斯和他的信徒对“数”发起了宗教信仰,他们甚至为每一个“数”赋予精神含义,例如1代表创造者,2代表黑暗,5代表婚姻,6代表生命,7代表雅典娜等等。在他们看来,“数”本身就是万物的法则。

疫情系列|明天会更好,吗?


数百年后的科学发展史不经意间印证了毕派的论断:自然界是按数学原理构成的,数学关系决定、统一并显示了自然的秩序。哥白尼在提出日心说的当时,并没有什么铁证,而他最强有力的依据仅仅是日心说的数学表达更为简洁与优雅。

疫情系列|明天会更好,吗?


值得一提的是,在今天看来太阳并非宇宙中心。如借助宇宙沙盒(非常棒的游戏),用更宏大的恒星系来作为参考系,会发现我们整体的太阳系都处于高速运动中,其实看起来可能更复杂了。

疫情系列|明天会更好,吗?


近代最体现数学真理观的例子,可能来自于罗素和怀特海所撰写的《数学原理》(Pincipia Mathematica)。全书试图用逻辑推导数学,充斥着各种各样复杂的符号,洋洋洒洒地写到300多页才定义出了自然数“1”,近400页才证明了“1+1=2”(就是字面上的含义,与哥猜无关)。尽管论证所采用的诸如可划归性之类的公理被质疑,尽管惨遭哥德尔不完备定理的冲击,但作为金字塔塔尖的学科,人们愈发相信数是理解和掌握世界的核心。

疫情系列|明天会更好,吗?


自伽利略将数学与神学融为一体,到后来莱布尼茨、笛卡尔、包括后来的狄德罗,再到后来爱因斯坦用尽余生的大一统理论,人类在因果论这条路上修修补补。量子世界的出现确实打乱了这个节奏,它告诉我们世界的本质是复杂与混乱。不过在大量的宏观层面,这种“异常”可以被隔离。


模型与预测


基于对数的崇拜,理解世界最直观的方式可能便是数学建模。正如维基百科上的定义:“A mathematical model is a description of a system using mathematical concepts and language.”在某种意义上,这种理念和操作正是基于先验的、形而上的对于世界的把握。


数百年来,数学建模思维方法积累得五花八门层出不穷。比如统计学里的多元回归、典型相关分析、数据分类、主成分分析、残差分析、因子分析、聚类,以及其他方面的图论、排队论、差分方程,还有近几年异军突起的深度学习。丰富多彩的套路,构成了揭示和掌握未来的“武器库”,应对不同的局面。


简单来说,自己日常工作所遇建模就两种目的:要么强调结果,要么注重过程。前者包括我们常用的各类图像识别算法,无论是场景识别、物体检测、语意分割、还是情感打分等等。其中所涉及的模型全部都是通过学习了大量的标定数据后,对于全新数据的预测。而通过各种模型的优化算法,使得我们对于预测的准确度有了很高的确信。下面这张图来自著名的3Blue1Brown的视频介绍,可视化介绍了经典的手写数字的机器学习识别思路。

疫情系列|明天会更好,吗?


而注重过程的后者更多地见诸经济学。或许不少人在第一次看到供需平衡的模型时,也和我一样疑惑,如此定义粗糙的一张图,没头没尾能有什么用呢?事实上,它确实没有什么实际层面的预测功能,但在揭示内部机理,判断发展趋势,评价政策导向时却可以给出相对合理的答案。

疫情系列|明天会更好,吗?

经济学方面的论文通常涉及大量的统计模型,不少文章洋洋洒洒写出了上百个自变量,看似复杂精细的研究,其实依然有大量的简化工作,很多内、外因被简化或者忽略。这种类型的模型,主要的面对着庞大复杂的系统,它遵循着奥卡姆剃刀原则(和 Less is More 的说法真是如出一辙),试图梳理和建立复杂对象的内部逻辑。而至于是否可以准确的分析和预测一些结果,不可强求。


假如数据变多了会怎样?得益于各种技术突破,我们收集和处理数据的能力急剧增长。更大、更海量的数据在源源不断的迸发出来,这是否给了我们更好的去完善后者的机会?说来惭愧,作为一个在数理基础方面的学渣,谈这么宏大的问题着实惶恐。作为一名曾经的画图狗,自己开了个城市大数据公司,成天与数据打交道,本该更相信“用数据理解城市”的方法论。可现实是,当利用海量数据去预测将来时,往往迎来粗糙的答案,草草收尾。

疫情系列|明天会更好,吗?


这里并非宣扬神秘主义与不可知论,实际上利用数据来预测将来,我们还是可以做出很多出色的工作。商家可以通过用户平日里采购啤酒的周期,精准预测他再次采购的时间;视频网站会根据大量的用户喜欢看的电影,给新用户预测他/她可能会喜欢的电影;现代基因技术可以根据口腔采集的DNA,预测个人未来各种疾病的发病概率。这些在过去看起来有点魔幻的科技,都建立在大量的数据的与强大的算法上。他们标志着时代的进步、人类的发展。


上述的例子都是对于未来的预测,都离不开数据。如果要预测某人下一次买啤酒的日子,需要知道他过去很长一段时间买啤酒的频次与数量;如果需要给人推荐电影,则需要找出大量和他/她喜欢同样的电影的人,然后分析别人看了什么来给出推荐;如果需要知道某人的DNA中的隐患,则需要更为浩大的全人类基因测序图谱。


不知各位发现没有,一方面,当我们要预测一个过去反复出现的事情时,可能只需要少量的数据,当预测变的稍微复杂时,比如电影与疾病,则需要极其庞大的数据量;另一方面,当预测的范围比较窄时,比如“明天是否来买啤酒”,或者“某部电影他/她是否喜欢”时,再多数据也做不到绝对精准,只有当时间跨度拉长的时候,才有准确度可言。赌博中著名的“输了翻倍”陷阱也是这个道理,预测范围太窄一定不准。


而我之所以对于利用数据去进行预测没有那么多确信,也许是因为多数的情况自己都在面对更复杂而庞大的城市系统。面对这种自变量几乎无穷多的世界,海量数据,依旧无法提供足够的支撑。高晓松在之前的一个谈话类节目中也提出过类似的观点,我们处于数据的开端,我们所处的时代,数据依然不够多。


传染病模型


回到开头,明天会更好吗?下面的文字先于上文成形,本希望借着自学的机会,用传染病模型来预测拐点。但在完成后,反而产生颇多困惑。思索良久,便把文字后置于此。


对于疫情今后发展的判断,传染病模型预测是近期广为流传的法宝,网上也有很多科普。作为一名彻底的外行,最初也是看了毕导关于传染病模型的视频,才萌生了撰写这篇介绍SEIR模型的文字的想法。


据介绍,传染病模型有四种——“SI模型”、“SIS模型”、“SIR模型”、和“SEIR模型”。不同的模型有各自适用的传染病类型,和本次covid19疫情最为接近的模型是SEIR。为更好的展示这个模型与参数之间的关系,我参考了ASU(亚利桑那州立大学,下文简称ASU)的一位Phd撰写的SEIR交互网页,基于它改造为一个可以交互查看的传染病模型的页面出来,也就是各位在本文顶部可全屏点开查看的可视化页面。


此图中用黄、蓝、红、绿四种不同颜色的曲线,表示了S、E、I、R四种人群的数量随时间的变化和发展趋势。通过输入这四种人群的初始统计数量,以及一些传染病系数,模型将会推演其后时间内的四种曲线的演化形式。纵坐标的单位是人数,横坐标的单位则是天数。

疫情系列|明天会更好,吗?

前期大部分精力花在了改写上述可视化页面之上,我做了两处改动:


原版SEIR模型中潜伏者不具传染性,而此次疫情最大的麻烦之一就是潜伏期患者也具有很强的传染性,不容忽视;


原先页面上有些暂时不需考虑的细节被隐去,比如自然死亡率,疫苗治愈率等;

随着上述修改,模型原先的微分方程组也进行了一定的调整。对于数学功底很渣的自己来说,乍看起来很复杂,实则方程组写的并不复杂,比较容易用代码去迭代计算。


修改前:

疫情系列|明天会更好,吗?

修改后(感谢北大许立言老师团队指点):

疫情系列|明天会更好,吗?

对上述变量稍作解释:

N|总人口

S|健康的人

E|感染但处于潜伏期的人

I|感染并且发病的人

R|移除的人,即治愈或者死亡的人(也有说法把隔离至方舱医院的情况也算作移除)

β1|由于I感染S,至其转化为E的概率

β2|由于E感染S,至其转化为的E概率

σ|E转化为I的概率

γ|I转化为R的概率


说了这些枯燥的内容,没理解也没关系,可以点击文章末尾的链接直接体验这个页面。页面大致如下(ipad横屏效果更佳),我们可以通过拖拉设置一些参数,借此来观察这个工具对于“明天的预测”。

疫情系列|明天会更好,吗?

01 确定S、E、I、R的数值

可在如下图所示的区域输入初始状态下S

EIR的人数。页面中的曲线也会随着输入的变化而实时更改。模型是一个非常直接、精确的数学推演。不过在实际的操作中,合理输入这些起始数据并不容易。或者说,恰恰因为这些公式这么的严丝合缝,似乎说明在选择参数的时候似乎就更需要慎重了。

疫情系列|明天会更好,吗?


以武汉为例,它的应该取多少呢?有两个问题:when and where。


先说“When”,九省通衢在疫情公布之前恰逢春运前夕,巨大的人口流动给带来难以估量的变数,电视上的前任领导说原先有1400万,后来出走500万。所以在封城后姑且算作900万?或许吧,封城前的来而往之就太复杂了。

疫情系列|明天会更好,吗?


“Where”的问题更大,它牵扯到“日均接触他人数”γ,其与S的乘积才是关键,可两者又互相牵连。模型假设区域中人群均匀分布,每日人均接触一定数量的他人。譬如封城后只见家人与门卫二人,所以γ=2对吗?仔细想想这与模型的假设并不一致,因为原先的假设里的“他人”是随机的。如果两个人每天固定只见到彼此,那么这个值只有当S取2的时候,才会是1。封城之后的武汉,已然成为一个个孤岛,许许多多的小S,组成了城市的大S


对于S的取值还可进一步估计。比如通过LBS数据预估地区人口的分布与流动,根据社交网络数据判断地区大致的人口活动和接触的情况,或根据人口普查数据去推演大致的家庭结构分布(单身狗、两口之家、三口之家、四口之家的比例)。最后再乘上一个春节期间人口流动情况的增益系数。事实上,近来网上各式各样很火的“全国人口迁徙地图”,都可以借由其所展示的数据情况去大致探究这里面的蛛丝马迹。

疫情系列|明天会更好,吗?


撇开S的取值,剩下的EIR的数值也需要各种“估计”。比如,E的数值并不等于公开的疑似数量。因为E

指的是潜伏者,可能毫无症状,如果只是取疑似者数量,会漏掉大量尚处于潜伏期外观看起来没有问题的人。I的取值可能更麻烦,因为一开始所确诊的人数是受限于试剂盒,所以之前的确诊人数应该低于实际的数量,而随着2月12日纳入CT诊断后,单日又激增了1万5千人,这些人实际上是之前一段时间的积累结果。


可能只有R的取值相对来说是比较容易确认的。虽然听起来不妥,但死亡与治愈的总数应等于。当然这里面也有一些小小的bug,比如我自己就有朋友确诊了,实际上在医院的后期他们已经治愈,但需要隔离相当长的一段时间才可以被正式确认为R,然后正是因为当前执行了相对严格的“治愈标准”,所以R的确认在时间上是滞后的。这么多预估的内容,就算费米转世,或许也难以搞定。


02 确定β1、β2、σ、γ的数值

这些系数可通过滑动条的拖拉进行选取。

疫情系列|明天会更好,吗?


相较于那些表示具体人数的英文大写字母,这些小写的希腊字母的确定就更为困难。可行的方法就是在Google Scholar上搜相关的论文,找高引的文章查阅他们的参数取值作为参考。不同的文章针对不同的病毒和问题进行了相应的分析与研究,给出了各种可以参考的βσ

γ的值,这里不作过多展开。实际上个人觉得在这里讨论这些也没有多大意义,毕竟情况差异很大。

疫情系列|明天会更好,吗?


另外需要补充的是,本文提及公式和参数有一定简化。采用了ASU的页面介绍方案,比如β1表示的是由S到E的转化率,直接拿S*I/N来计算,而在其他介绍中,人与人的接触率还需单独考虑。关于这一问题,实质上还是和上文提到的

S的范围确定属于粘连关系。


既然是一个可以交互的页面,那么肆意地拉动这些参数,可以更直观的体验这些非线性的数据变化。

疫情系列|明天会更好,吗?

β1决定了一切传染病的根源。当β1=0时,所有健康人群都不会感染,整个的

S曲线呈水平;而随着β1由0开始逐步增大,整个疫情的发展变得非常迅猛,但越来越大的同时,曲线之间的变化也逐步稳定,即使β1=1也不会导致结构性的变化。


疫情系列|明天会更好,吗?

β2作为表征潜伏期也具有传染性。实际上当

β2=0时,即表示潜伏期不具传染性,也就是原版SEIR的模型示意,基本上可以当作非典(SARS)来看。对比其他的曲线变化,其主要影响的效果在于整个传染病发展的“前移”。健康的人更早的被感染,移除的人也更早的被移除。但受感染者数量的峰值其实变化不大。


疫情系列|明天会更好,吗?

σ这个值即有横向的影响,更棘手的在于它对于潜伏者与感染者的曲线的峰值影响更大。相较于其他的系数,

σ直接与潜伏天数呈反比,也就是说某个疾病潜伏期越长,它的值越低。当σ=0.01时,潜伏者的数量甚至会超过感染者的数量,也难怪疫情的早期有不少声音认为“海量的潜伏者”尚未被发现的担忧,不过总体来看,σ的增大会明显减少潜伏者的数量。其实这个值是可以被调整的,比如检测试剂的改良和提高,将极大的增大σ


疫情系列|明天会更好,吗?

γ是终极大杀器,这个值只需要稍作改变,便能大幅度影响所有曲线。随着γ的增大,我们甚至可以观察到红色与蓝色的线很低,而绿色线则大大高出的情况。这说明移除率急剧增长,单个个体从健康者->潜伏者->感染者->移除者的时间甚至不到1天的功夫。合乎这种情况的传染病,或者非常弱可以自愈,或者极强,秒杀一切。各方研制特效药、抗体,也正是解决这一疾病的王道所在。


03 寻找“拐点”

在铺天盖地的新闻普及下,何为“拐点”,我们并不陌生。这有些类似于故名看k线图,很多人都在期待着这一天的到来。在这个模型的图示中,SEIR四条曲线中,SR是首尾收敛于极大极小值的逻辑斯蒂函数曲线,而

EI则有一个上凸的曲线,其增长率为0的点,即为解析几何的“拐点”。平日新闻所提及的“拐点”,则泛指日新增确诊病例数归零,总病患逐步减少的那一天。两者概念虽稍有不同,但差异不大。

疫情系列|明天会更好,吗?


此外,页面还提供一个可以查看全国疫情按钮。如有兴趣还可以打开“疫情”按钮,对照着真实的曲线拖拉,试试看现实世界的数字是否有对得上的部分。

疫情系列|明天会更好,吗?


来自模型的解答


如果有心,为了去寻找拐点、峰值而去尝试“匹配”,会发现几乎不可能完全拟合。因为模型中假定的这些参数,可能会随时间、随其他潜在因素而实时地、动态地演变。就如同一辆汽车,他从上海开往苏州的时速会有变化。如需根据已经开过的距离预测什么时候会到达目的地,是相对容易的,但预测下面两分钟是往前开了1.5还是2公里是相对困难的(其中有一些比例和误差的tricks)。


曾经有一次请教过一位研究地震的科学家同学,相较于传染病,地震反复发生的次数更多,而且数据收集也更全面,为什么不能用模型来尝试预测地震呢?得到的答复其实和上面的举例类似,因为堆砌大量的数据或许可以预测未来5年某地发生多大规模的地震的概率。可如果要更大程度地缩小置信区间,精准预测地点和时间,那几乎是不可能的,一来数据的规模可能依旧不足,二来每一层输入的数据都有误差。


同样的,在这个传染病模型中,这些SEIR的曲线并非像K线图一样精准,高低之间的变化对应到参数上可能就是毫厘的差异。在整个模型的操作过程中,实际上对我们的工作有很大作用的是 更多的是事后诸葛亮,有几方面的原因,一方面,从上文就可以看出,这模型所涉及的参数,几乎无法调整准确;另一方面这类预测并不像天气预报那样发生的频繁,所以在“事件发生频率”上的累积数据太少。辅助公共卫生的提前干预,评估控制性政策的优劣。当然具体怎么评估可能也不简单,比如衡量一下在防控疫情的前端采用诸如封城等干预措施,和后端大力投资特效药哪个对于疫情更有效果?当然若要算清楚这比经济账,可能也并不轻松。


随着防控措施的加强以及逐步复工的人口流动,控制的参数会不断变化,也因此预测的结果会变得不怎么可靠。有兴趣的朋友不妨可以看看一个月前的新闻,有很多专家学者的预测看起来不是那么准确,也可以理解。


我们的明天


是粗糙的世界,配不上精致的模型,还是理想的模型本不存于世界?我并不知道答案,实际上写到这里也开始有点理解,为什么后来数学家们撇清纯数与现实的差异。因为踏踏实实的做智力激荡比思考这种莫名其妙的问题有趣的多。


逻辑、法则、规律,驱使着人类对于未知世界的理解,这甚至是一种本能。倘若无法理解外部环境,就意味着难以避免潜在的危险,趋利避害是本性。一切的存在都应具有目的,而这种目的应该可以被发觉、理解、以及被利用。这种目的论的调调,在今天见诸很多所谓的付费知识节目中,比如“小麦的胜利”、“进化论的错误”之类。


前几日看类似的一个,其中提到太阳系恰巧“被安排”在银河系内非常稀疏的区域(猎户旋臂内侧),人类才得以观测宇宙。倘若在其他区域,那可能天空会亮到什么也看不见。冥冥中我们的使命或许就是观察世界、理解世界。或许正如它所言,理解世界是人类的使命。

疫情系列|明天会更好,吗?


或许百年之后,人们回顾历史,如今的我们又一次来到了一个同样对于“数”的崇拜时代。他们会列举当时人们对于数据的迷恋,甚至到了给个体冠以数据科学家 、数据人、数据侠等种种很莫名的头衔,如同今天的我们遥望着古希腊的先贤。


“明天会更好吗?” 或许这本来就是个Dumb Question(蠢问题), 因为明天取决于今天。但愿那条恼人的红线,早日抹平。


分享到:


相關文章: