从新冠肺炎可视化说起,数据展示如何简约但不简单

2020-02-27 13:14:16 浏览数 (1)

机器之心发布

作者:梅鸿辉

阿里云DataV数据工程师

面对疫情,我们所学所知能做什么?中国计算机学会 CAD&CG 专委会、阿里云天池、机器之心、阿里云 DataV、Datawhale 联合发起了疫情数据可视化公益行动,通过数据与可视化,你也可以为疫情做出自己的贡献。

过去的十数年间,公共卫生事件如 SARS、甲型流感、禽流感等严重威胁人民的生命安全,无不对社会造成深远影响。而 19 年底从武汉开始爆发的新型冠状病毒疫情,在三个月时间内扩散范围已包括在亚洲、欧洲、北美洲和大洋洲的二十多个国家,逾六万患者,数字仍在持续攀升中。

此刻,全国正上下一心抗击疫情,不论政府、企业还是普通群众,都在不断思考如何更好地应对此次疫情。而我相信,在如今信息的时代中,为快速应对公共卫生突发事件建立的体系和机制必然需要大数据和人工智能手段的强力支撑;其间,能够将人机智能有机结合起来的可视化方法无疑可以发挥出举足轻重的作用。

值此疫情之中,我绞尽脑汁将几年学生生涯中学到的可视化知识写出来,基于此次新冠疫情中的涌现的一些优秀可视化例子,讲讲我对面向公共卫生紧急事件的可视化方法的理解。这篇文章是公益行动的第一篇文章,希望能给行动家们提供一些参考。

基础数据展示

目前可以获得的疫情数据主要来自于各地政府通报的疫情实时动态,其中丁香园每日公布的数据最为全面完善。如需访问丁香园的数据,可以参见 Github 上的实时爬虫项目,并提供在线 API 以供使用。

项目地址:https://github.com/BlankerL/DXY-COVID-19-Crawler

此外,约翰霍普斯金大学综合世界卫生组织、美国疾病预防控制中心、欧洲疾病预防和控制中心、中国卫生应急办公室网站和丁香园的数据制作了全球疫情可视化展示,其数据也可供下载。

项目地址:https://github.com/CSSEGISandData/2019-nCoV

总体来说,基于疫情的流行病学特征,疫情数据呈现非常明显的地理和时序特征,属于典型的时空数据。此外,数据中还包含辟谣与防护和疾病知识等文本数据

可视化方法

时序地理是目前最常见的疫情数据展示重点,如下图丁香园的疫情地图,图中分别使用了典型的空间和时间数据展示方法,通过地图展示地理分布,折线图表达时序上的变化。

有兴趣的同学可以访问实时更新的完整版看看都有些什么数据。

丁香园-疫情地图

地理数据展示

图中的地图具体来讲属于 Choropleth map,可以译为分级统计地图。此类地图本身有着一定的局限性,可以考虑进行优化:

  • 其一,需要选择固定的分区形式,如图中按省级行政区划划分。而有人发现,按照市级行政区划进行绘制能更好的展现分布特征(典型的如浙江的重灾区在温州)。这是从数据处理/统计层面进行优化
  • 其二,图中色块用颜色编码数据值(如感染人数),而形状和面积则来自于行政区划的固有属性。这会产生一定的误导,因为于数据无关的面积却会极大影响对整体颜色分布的观感。从这一点出发,可以考虑采用如热力图、Cartogram(译作示意地图)或可交互视图等替代方案。这是从可视化/交互方法层面进行优化

此外,为了与时序数据结合,可以考虑动画、small multiples 等方法展示整个地理分布随时间的变化。

值得一提的是,近期各地已经开始通报以小区为单位的疫情状态,使得地理相关数据更加丰富,但对于可视化来说也提出了更高的要求。

一方面,地理划分更加精细后,数据量和复杂程度都上升许多,需要更加合适的方法进行展示,有所取舍,避免视觉混乱;另一方面,小区层面的信息来源复杂、多有错漏,对数据质量的把控和数据清洗都提出了更高的要求。

疫情数据地理上的复杂性来自于我国辽阔的疆域。中国地市级则多达 300 以上,最基层的乡级行政区超过 40000,这还没到小区级别。

从可视设计的角度来说,同时展示所有省级区划的具体信息勉强可行,而要展示所有地市或更细级别的详细数字则难以实现。一方面,屏幕空间有限,同时展示如此多的对象必然会导致视觉上的混乱,丢失大部分细节;另一方面,人对信息的接受能力有限,即使屏幕画得下观众也是看不过来的。

下图是疫情数据展示的一个样例,其中采用了可视分析中非常常见的一种应对数据复杂度的方法:Detail-on-demand,即按需展示细节。

屏幕左侧展示全国的概览,右上则是其中一个省内各个地级市的展示,而右下则更聚焦到其中一个市的市区;其中,只有右下最细层次的展示才含有最多的细节(带有时序变化的展示)。

这样的方法非常适合含有层次结构的数据,先给用户提供高层级上的概览,然后通过交互让用户可以有选择性的展开局部查看更加精细划分的层次,最终不同层级的细节组合成点面结合、层层递进、主次分明的视觉效果。

不过这个例子尚不完善,并没有设置交互,只显示了固定的省市。有兴趣的同学可以自行尝试设计交互式的数据探索,在 DataV 提供的疫情大屏免费试用中就有模板提供:

https://survey.aliyun.com/apps/zhiliao/jlB5oNcw

时序数据展示

图中时序数据采用最基本的折线图展现一到两种属性随时间的变化,属于对总体聚合的概览。对此,可以考虑对地理维度下钻,最简单的如丁香园中会分别展示湖北与除湖北之外的数据。

在展现时序数据这类复杂结构的数据时,必须抓住重点,details-on-demand,方能做到清晰不凌乱。北大袁晓如老师小组制作的疫情变化晴雨表就是一个优秀的例子,如下图。

图中用颜色编码了变化趋势,这种显式编码(explicit encoding)相比简单并排罗列(juxtaposition)更直截了当,方便用户进行前后对比。地理信息在图中被简化为简单列举地区名称,这样做可以有效节省空间,而看图的用户通常也只会关心自己熟悉的地区,仅仅知晓名字已然足够。

北大博客中还有湖北各个市的展示。

PKU Visualization Blog-疫情晴雨表

除了地理和时空数据外,文本数据通常仅通过简单的罗列进行展示。事实上,文本数据也可以有很大的挖掘空间,参见后文「非结构数据分析」。

进阶分析

关联分析

除了疫情基本数据的展示外,还可结合其它信息进行关联分析,找出影响疫情发展的因素和规律,更进一步的,还可以从规律中寻找出异常,对疫情控制提出建议或预警。

例如,人口,特别是流动人口数量与疫情传播有着直接而紧密的联系。对此,可以添加人口数据作为辅助,将疫情地图中使用的颜色编码扩展为「平均每千人确诊人数」;同理还可以有「每单位面积确诊人数」,以此还可以缓解上文所说分级统计地图中行政区划面积不等的问题。

这些相关数据可以从国家统计局(http://data.stats.gov.cn/)或其它途径获取。

例如下图是来自北大 PKU VisualComputingAndLearning Group 对确诊人数与武汉潜入人口的关联分析。

文中还有许多其它方面的分析也值得一看,可参考:

拐点何时出现?这是北大面向新冠疫情的数据可视化分析与模拟预测

除了简单的统计信息外,还可以将更多非结构化数据纳入考量。例如,有人基于全国铁路网绘制疫情分布地图,以此清晰地展现作为九省通衢的武汉爆发传染性疾病是多么的可怕、南京防治得力等原本潜藏的信息。

对比分析

「以史为镜,可以知兴替」,而进行可视化的比较和分析,可以很好地寻找共性和个性、探索发展趋势、发掘一般规律。

最容易想到的对比就是和其它传染病进行比较。例如,此次新型冠状病毒疫情在许多方面与 2003 年的 SARS 类同:均由冠状病毒引起;在中国爆发;乙类甲管;传播途径类似等等。但两者之间也有极大的不同,例如潜伏期更长、传染性更强,但重症率、致命性则不及 SARS。SARS 的相关数据可以在世界卫生组织官网找到。

下图是常见的可视对比方法,参见论文《Visual comparison for information visualization》。

此外,在进行对比分析的时候,还可以同时进行关联分析。例如,今年的疫情发展如此迅速有一部分原因在于近年来中国的交通发展非常迅猛,高铁和航空业的发展使得人们出行效率大大提高,也给了病毒新的传播途径。

此外,人口年龄结构的改变(部分数据显示此次肺炎老年人易感)、城乡结构的变化、今年春节时间偏早等都与疫情的发展有关联。

预测分析

目前关于新型冠状病毒的流行病学认识受疫情变化影响,无完全确切的认知,而数据可以给我们提供一些答案。通过数据构建模型,进行预测和验证,也是分析中非常重要的一环。

预测式分析(predictive analysis)涉及统计模型、机器学习、数据挖掘等多种应用,提供数据清洗、探索式分析和诊断。

医学界对传染病有着广泛的研究,通过 SIER 等模型可以对疫情的传播给出一定的合理描述。而通过可视化,则可以更好的凸显数据中难以被发掘的问题。例如,湖北省的确诊数据多受医疗资源不足、检测试剂缺乏等因素影响,难以真实反应疫情的自然发展状态。

通过可视分析的方法,可以探索数据质量问题、清洗数据、弥补数据缺陷。亦或者,对预测结果进行展示,通过交互引入人为因素如道路封锁、春运返潮、复工等的影响。

下图是一个预测式分析的例子,展示了模型在不同决策下产生的多个结果,来源见 EuroVis 论文《The State-of-the-Art in Predictive Visual Analytics》

非结构数据分析

人类社会早已步入信息化时代,每个人获取和生产信息的能力与二十年前不可同日而语。

从微信、微博等社交网络数据中提取话题传播态势、情感转变、关键事件发生时间可以帮助我们从更多角度全面审视此次疫情的发展状况。而对这样的非结构化数据处理,在数据挖掘和可视化展示层面都有着巨大的挑战。

下图是一个社交网络主题变化分析的例子,来源见港科大发表在 TVCG 上的论文《Visual Analysis of Topic Competition on Social Media》

小结

本文基于此次新冠疫情中可获取的数据和一些可视化例子对面向公共卫生紧急事件的可视化中可能会涉及的视觉设计和交互分析方法进行了简略的罗列,包括数据展示、关联分析、对比分析、预测分析和非结构数据分析。

而合理的设计方法可以简单地概括为两点:数据为核,可视架桥。数据内核坚实谨慎,可视外壳简洁柔和,这样内刚外柔的可视化是我心目中理想的、可以在防疫中发挥的作用的可视化。

0 人点赞