TowardsDataScience 博客中文翻译 2020(二百三十四)

原文:TowardsDataScience Blog

协议:CC BY-NC-SA 4.0

CoronAI:新冠肺炎相关文章的深度信息抽取

原文:https://towardsdatascience.com/coronai-deep-information-extraction-for-covid-19-related-articles-f7c016149586?source=collection_archive---------24-----------------------

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

https://alachuacounty.us/的好意,新冠肺炎

一种挖掘 CORD-19 冠状病毒文章数据集的无监督方法

介绍

我们的世界目睹了许多病毒和疫情,但就全球影响而言,它们中没有太多能与新冠肺炎相比。尽管如此,我乐观地认为,加州的“在家更安全”和“社会距离”等措施有助于彻底根除这种病毒。我们因这一疾病失去了许多伟大的人,而它似乎不愿意让我们更容易阻止这一疾病。

为了响应白宫关于使用人工智能帮助新冠肺炎研究的行动呼吁,新冠肺炎公共数据集已经由 AllenAI,微软研究院,Chan-Zuckerberg Initiative,NIH 和白宫发布。该数据集包括约 44,000 篇研究文章,涵盖了与冠状病毒(如 SARS、MERS 等)相关的各种主题。)

由于数据集没有标签,因此其上定义的主要任务都是一般性的问题,如“我们有哪些关于疫苗接种的信息?”。也有根据主题组织论文的伟大作品,如

在这篇文章中,我们将介绍一个小工具,它可以利用自然语言处理对这些文章中的主题进行无监督聚类,这样我们就可以更好地了解这些文章中发生了什么。

文本片段:该数据集的原子

每个文档都由不同的部分组成,而部分标题就在我们发布的数据集中。在每篇文章中的单词之前,保留语义的最小实体是文本片段和句子。在本帖中,展示了如何在一个桶中使用这些来帮助对这些文章中的焦点进行无监督聚类。随后,给定不同的部分和部分间或纸张间的亲和力(甚至可能使用图形卷积网络、图形注意力网络等)。)或下面提到的主题组织工作,可以应用更好的聚类技术来获得更好的结果。

我们使用自然语言处理工具包的句子标记器将每篇文章分解成这些原子片段,然后为它们生成最先进的表示,以便在我们管道的后期阶段使用。

文本表示:一种基于 BERT 的方法

使用我们的 word_embedding_warehouse 您可以轻松地获取和处理基于 BERT 的预训练表示权重,以便在 PyTorch 或 Tensorflow 中使用(文档可在这里获得)。其中的代码易于阅读,应该简单易懂。

要使用它,请使用以下方式从 github 获得该软件包:

git clone [https://github.com/shayanfazeli/word_embedding_warehouse.git](https://github.com/shayanfazeli/word_embedding_warehouse.git)

然后重定向到它的存储库并安装它:

python3 setup.py install

现在您可以运行它并获取数据。确保选择一个有大量未使用空间的文件夹,并运行以下命令:

build_word_embedding_warehouse --warehouse_folder=.../path_to_your_folder --clear_cache=0

将在其中创建表示。需要注意的一点是,注意配置中的“dropout”值,您可能需要手动将它们设置为零。

预处理、数据准备和生成表示

我们的 CoronAI 包及其应用程序可用于生成表示。目前,我只使用了大版本的 NCBI-伯特(现在在这里改名为蓝铃)来生成表示。这些权重在 PubMed archive 和 MIMIC-III 公共电子健康记录库中进行了微调,因此,假设该模型能够很好地处理医疗领域的问题是合理的。

这些权重是按照上一节中的描述生成的。现在,使用以下命令获取 CoronAI 包:

git clone [https://github.com/shayanfazeli/coronai.git](https://github.com/shayanfazeli/coronai.git)

然后继续并重定向到其文件夹,并安装软件包:

python3 setup.py install

这个库的不同部分的文档可以在这个链接中找到。

此时,您可以使用应用程序来生成制图表达并执行无监督聚类。

生成基于 BERT 的表示

您可以使用以下命令生成基于 BERT 的表示(有关更多信息,请访问用于 coronai 的github)。

*coronai_segment2vector* --gpu=2 \
--input_csv=.../text_segment_dataset.csv \
--output_pkl=.../output.pkl \
--path_to_bert_weights=.../NCBI_BERT_pubmed_mimic_uncased_L-24_H-1024_A-16 \
--batch_size=25

请注意,对于“NCBI _ BERT _ PubMed _ mimic _ un cased _ l”表示,您可以从 CoronAI 的共享驱动器下载它们(本文底部的链接)。

无监督片段组发现

为此,可以使用另一个 CoronAI 应用程序。这一部分的动机是,在这个数据集上设计的当前任务是通用任务,例如“我们对它的疫苗接种了解多少?”。但是,使用这种方法,我们可以更好地了解这个数据集中实际包含了什么。我们可以从少量集群开始,然后增加集群数量,并寻找进入稳定状态的起点。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

聚类数量对基于距离的损失的影响

组:解释

作为解释组的例子,对于 296 个集群的情况,为每个集群创建单词 cloud。然后,我请我的一个行医的朋友来看看它们。下面是一个样本聚类的表示和一个可能的解释:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

集群 35:该示例显示该组的语义主要围绕疫苗接种的概念

本页中的提供了更多示例。

科罗纳伊的共享驱动器

请点击查看

附:代码和这篇文章将随着时间的推移而被编辑,因为它们都是以一种仓促的方式写成的。任何贡献也是受欢迎的。谢谢你。

参考

[1] Gardner,Matt 等,“Allennlp:一个深度语义的自然语言处理平台。” arXiv 预印本 arXiv:1803.07640 (2018)。

[2] Lee,Jinhyuk,等,“BioBERT:一个用于生物医学文本挖掘的预训练生物医学语言表示模型。”生物信息学36.4(2020):1234–1240。

[3]彭,王一凡,,严,.“生物医学自然语言处理中的迁移学习:在十个基准数据集上对 BERT 和 ELMo 的评估.” arXiv 预印本 arXiv:1906.05474 (2019)。

[4]新冠肺炎开放研究数据集与挑战:https://www . ka ggle . com/Allen-institute-for-ai/CORD-19-Research-Challenge/kernels(2020)。

恐惧、焦虑还是信任?印度对日冕危机有什么看法?

原文:https://towardsdatascience.com/coronasentiment-india-61a03d0b0fff?source=collection_archive---------33-----------------------

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

阿明·莫什菲在 Unsplash 上的照片

对 2020 年 4 月 5 日至 4 月 15 日超过 150,000 条推文的情绪和情感分析

对我们所有人来说,这绝对是一个不确定的时期。我们不确定如何理解我们面临的宏观或微观经济因素。在个人层面上,人们正在处理许多问题,如裁员、减薪、停工和感染风险(特别是对那些在此期间从事医疗和其他基本服务的人,谢谢!).

与此同时,我们不禁要思考宏观因素,如政府平曲线的措施、股市的复苏(见图 1)以及最糟糕的是,在不久的将来是否会出现任何后续衰退。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 1:描绘 2020 年 3 月股票价格和交易量下降的烛台;来源:Srinivas Vadrevu 使用雅虎财经数据进行分析

最近,有很多关于事件将如何在印度展开的预测和场景。在大多数预测和情景中,一个重要的共同点是锁定期间和锁定后的消费者情绪。虽然这些报告大多依赖于对个人特定消费选择的调查,但我想通过利用现有的最好的社交媒体平台之一——Twitter来形成对印度情绪脉动的观点

“发生什么事了?”

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由🇨🇭·克劳迪奥·施瓦茨| @purzlbaumUnsplash 上拍摄

当我登录 Twitter 时,我看到了一个文本框,提示我“发生了什么事情”。体会到这种讽刺,我心想…

“这正是我想知道的……Twitter 上发生了什么”?

数百万印度人每天都在推特上向世界表达自己。不仅仅是个人,组织、媒体公司、政府部门和名人都在使用 Twitter 向世界表达他们的观点。只有 280 个字符,我们试图明智地使用它们来表达我们想要的。因此,来自用户的推文将清晰、准确、具体地描述他们的感受和想法。这就是我写这篇文章的动机……建立一个与 COVID 和印度相关的推特的大数据集,以了解当前的时代精神。

有什么办法?

就在我用 NLP 写了第一篇探索网飞 的 内容策略的文章之后,我决定应用另一种 NLP 技术——情绪分析来绘制当前的情绪以及最近几天它在印度是如何演变的。正如你已经猜到的那样,整个练习的繁琐部分是收集数据——它涉及到在 Twitter 开发者平台上创建一个应用程序,以请求必要的 API 令牌和提取推文的权限。使用这些 API,从 2020 年 4 月 5 日到 2020 年 4 月 15 日的过去 11 天里,我每天提取 20,000 条推文。我的搜索主要围绕两个关键词“Covid”和“India”。

在过去 11 天下载了 22 万条推文后,我删除了所有独立的转发,以避免重复计算,只使用原创推文。我剩下 35311 条原创推文,包含大约 50 万字。每条原始推文都有相应的转发总数。截至 2020 年 4 月 15 日,这 35311 条原始推文有 152756 次转发。我将分析分为两类:a)基于人们发布的内容(仅基于原始推文), b)印度普遍的整体情绪(考虑原始推文的相应转发量)。我想知道的第一件事是我们所有人在脸书上发布推文或状态后检查的同一件事…

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

乔治·帕甘三世在 Unsplash 上的照片

我的一条推文获得了多少转发(在数据集中)?

在删除独立的转发后,我绘制了下面的分布图,显示了原始推文及其在数据集中相应的转发数。

在过去的 11 天里,平均每条原创推文被转发 4 次。

4 月 7 日和 8 日的转发率最高——平均每个原创帖子被转发 7 次。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2:从 4 月 5 日到 4 月 15 日,每天的 Tweets 和 Retweet 比率分布;资料来源:Srinivas Vadrevu 的分析

在样本中,4 月 13 日的原始推文数量最高,但过去 10 天的转发率最低。4 月 13 日,与其他日子相比,人们似乎忙着发更多的帖子,转推更少。其中相当多的推文是关于猜测 14 日上午 10:00 的封锁公告。以下是 2020 年 4 月 13 日推特上的几个例子。

“据推测,该中心可能会延长计划于 4 月 14 日结束的#一级防范措施”

“@…PM 对抗#COVID2019 的下一步会是什么?”

A .追踪印度情绪的指数?

现在让我们看看人们输入的文本内容,以创建一个衡量整体情绪的指数。本着按照“ Volfefe index ”的思路创造东西的精神,我使用了包含 2477 个单词的 AFINN 词典,每个单词的情感分数在-5 到+5 的范围内。例如,“糟糕”和“糟糕”等词的得分为-3,而“有效”和“有动机”等词的得分为+2。

使用推文的文本提取单词作为标记,并从数据中清除 https 链接,我计算了情感得分的总和,以得出“OP-perspective-score”。 OP 是 Reddit 上常用的一个术语,用来指代原海报。它测量发布这些推文的人的情绪。

为了考虑 Twitter 上的整体情绪,我用(1+转发数)*对原始推文中的每个观察进行了加权。我用相应的转发计数和原始帖子本身对 OP-perspective-score 进行加权,以计算“流行情绪得分”。后者指示总体情绪,因为它测量该情绪被所有其他用户转发的程度。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3: OP 情绪指数和流行情绪指数;资料来源:Srinivas Vadrevu 的分析

从图 3 中的情感得分得到的有趣发现:

  • 平均来说,发微博的人每天都有积极的观点/情绪。 从 4 月 5 日到 4 月 15 日,平均 OP 情绪指数每天为正。
  • 当我用转发数来衡量时,除了 4 月 8 日和 4 月 10 日,普遍情绪变成了负面。
  • 虽然发布推文的人每天都有积极的观点/情绪,但数据表明 twitter 受众转发消极情绪推文的次数远远多于转发积极情绪推文的次数。

如果我们将 Twitter 视为一个交流情绪的市场,在过去 10 天里,市场似乎对负面情绪的回报多于正面情绪

  • 在过去的三天里,13 日至 15 日,OP 情绪指数和流行情绪指数都向 0(中性情绪)靠拢。积极和消极的情绪相互抵消,导致“推特市场”的情绪几乎是中性的。

B .印度围绕科维德的情绪暗流

如果你想知道将复杂的人类情感转换成单一的价值观是否过于简单化,那么我同意你的观点。所以我想用一个词库,把这些情绪解构为情感,看看情感每天是如何变化的。我下载了 NRC(加拿大国家研究委员会)的词典,里面有 13,901 个单词情感和单词情感关联。数据集中的情绪有恐惧、愤怒、信任、悲伤、厌恶、期待、喜悦和惊喜。一个词可以有多种情感联想。

我从 35311 条原始推文中提取了单词,并将单词-情绪关联和情绪(积极或消极)关联映射到这些推文中的每个单词。类似于指数方法,我绘制了所有原始推文的情绪,以获得 OP-情绪暗流,并通过其相应的转发计数进行加权,以获得印度流行的情绪暗流。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

腾雅特Unsplash 上拍照

OP 情绪暗流

那么,在过去的 11 天里,发布这些推文的人在想些什么呢?将一种情绪在一天中所有推文中重复的次数加起来,我得出了这一天的情绪得分。下图描绘了过去 11 天所有帖子的各种情绪得分。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 4:对发布的推文中的情绪计数- -[OP]情绪得分;资料来源:Srinivas Vadrevu 的分析

根据在推特上发布的常见情绪,出现了以下模式:信任>恐惧>期待>愤怒>悲伤>快乐>惊讶>厌恶(按降序排列)

  • 信任是从 4 月 5 日到 4 月 15 日发布推文的人最常见的情绪。但是,恐惧紧随其后。
  • 期待是排在愤怒和悲伤之后的第三种常见情绪。
  • 正如所料,快乐、惊讶和厌恶等情绪是发布推文的人最少出现的情绪
  • 在过去的 11 天里,上面的层叠顺序每天变化不大。

印度盛行的情感暗流

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 5:发布的推文中情感的加权计数- -(普遍的)情感分数;资料来源:Srinivas Vadrevu 的分析

在用 retweet count 衡量了情绪的数量之后,我计算了所有情绪的加权情绪分数。

  • 从 4 月 5 日到 4 月 7 日,恐惧和信任正在紧密地移动。从 4 月 7 日开始,包含信任词的推文被转发的次数比包含恐惧词的推文多了近 3 倍。从 4 月 5 日到 11 日,信任是最普遍的情绪。
  • 在 4 月 7 日至 4 月 11 日期间,愤怒成为了排在恐惧之后的第二大流行情绪。
  • 从 4 月 11 日到 4 月 15 日,恐惧和信任紧紧相随
  • 从 4 月 11 日到 4 月 15 日,期待是波动的,但是保持在前三种情绪中

我在附录中附上了基于 NRC 词典的 OP 和流行推文的情感和情绪得分。有兴趣的可以最后去看看。

与其他情绪——愤怒、悲伤、厌恶、快乐和惊讶——相比,与信任、恐惧和期待(按此顺序)相关的词在帖子和相应的转发中更常见

什么主题可能会导致这些情绪?

我绘制了以常用词为节点的二元模型网络图,通过将二元模型分类为几个主题来识别顶部主题。这类似于我在的上一篇文章中使用的方法。

发布的推文中有哪些热门主题?【OP】

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 5:tweet 文本中二元模型的网络可视化(n > 100)-[OP]主题;资料来源:Srinivas Vadrevu 的分析

  • 政府办公室(黄色泡泡) - 总理纳伦德拉·莫迪,印度项目管理办公室,印度健康维护组织,印度公共卫生委员会,印度政府,人力资源开发部,卫生部,最高法院,印度信息和广播部,印度公共卫生委员会,印度公共卫生委员会。
  • 政府措施(透明气泡)-行动*“政府指定 10 万张医院病床”,* Aarogya setu app、Namo app、PM cares
  • COVID 数字(蓝色气泡)-检测呈阳性的病例数、死亡人数、确诊病例、报告病例、疫情、死亡人数上升、总数
  • 张贴的其他突出主题是:Tablighi Jamaat 问题,印度侨民

有哪些被转发较多的热门主题? 【T21 盛行】

在这个网络图中,我用转发数来衡量二元模型的数量,以确定排名靠前的二元模型。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 6:发布的推文文本中二元模型的网络可视化**(加权计数> 1000)-[OP]主题;资料来源:Srinivas Vadrevu 的分析

  • 政府干预(黄色泡泡)- 卫生部,当局,官员,IAS,总理纳伦德拉·莫迪。
  • 医疗机构和护理(透明泡泡)医学科学护理人员电晕战士又一家医院
  • COVID numbers (蓝色气泡)——检测阳性病例数、死亡人数、确诊病例、报告病例、疫情、死亡人数上升、总人数、检测相关人员、Covid 19 检测、疟疾药物
  • 正面底色(灰色气泡)——可观精彩,良好姿态,以色列大使馆灯火通明,齐心协力,示支持
  • 发布的其他突出主题有:T ablighi Jamaat 活动、北美查蒂斯格尔邦、Ola Cabs、IIM 研究……

结论

(1)当人们发布积极情绪的推文时,twitter 用户似乎更喜欢消极情绪,而不是积极情绪,将整体极性逆转为消极情绪。

(2)将情感分析与 bigrams 网络叠加,看起来最近 11 天发布和转发的推文主要反映了对政府和医疗机构的信任感。但是,对 COVID 和未来的恐惧和期待也很常见。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 7:电晕病毒危机期间麦肯锡-印度消费者情绪;来源:https://www . McKinsey . com/business-functions/marketing-and-sales/our-insights/survey-Indian-consumer-sensition-in-the-coronavirus-crisis

作为发布推文或观点的个人,即使在这种可怕的情况下,我们每个人似乎都有积极的前景。麦肯锡关于冠状病毒危机期间消费者情绪的报告也表明,当被问及对经济状况的信心水平时,大多数(56%)受访成员对经济复苏持乐观态度。

如果我们发布积极的推文,并在被单独询问时报告对经济前景的乐观看法,那么为什么我们转发负面情绪的推文比积极的推文多得多?我只能猜测,带有负面情绪的推文更容易引起我们的注意,并在我们内心引起回应(转发)。

从我的观察来看,虽然我们面临着对冠状病毒和未来的恐惧和预期,但对印度政府解决冠状病毒危机的信任取代了所有这些恐惧和预期情绪。在这一点上,我希望同样程度的信任超越了对危机后经济复苏的乐观和信心。

来源和附录

  • (1)普通单词和短语引发的情感:使用机械土耳其人创建情感词典,赛义夫·穆罕默德和彼得·特尼,在*NAACL-HLT 2010 年关于文本情感分析和生成的计算方法研讨会上,*2010 年 6 月,加利福尼亚州洛杉矶
  • 发现下面的文章对文本挖掘和情感分析很有用。

https://www.datacamp.com/commu

[## 如何高效地对 Twitter 中的流行语进行网络分析?

数据收集、预处理、分析、可视化和交互的一站式解决方案。

towardsdatascience.com](/how-to-perform-a-network-analysis-for-buzzwords-in-twitter-efficiently-ebf8e139037d) [## NBA 领先球员推特账户的情感分析——第一部分数据收集

NBA 领先球员的推特和他们的表现有相关性吗?

towardsdatascience.com](/do-tweets-from-nba-leading-players-have-correlations-with-their-performance-7358c79aa216) [## 在 r 中为文本挖掘设置 Twitter。

关注 Twitter 作为数据挖掘的热点。

towardsdatascience.com](/setting-up-twitter-for-text-mining-in-r-bcfc5ba910f4) 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 8:2020 年 4 月 5 日至 4 月 15 日之间发布的推文中的情绪和情感计数- -[OP]情绪得分;资料来源:Srinivas Vadrevu 的分析

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 9:2020 年 4 月 5 日至 4 月 15 日之间发布的推文中情感和情绪的加权计数- -[OP]情感得分;资料来源:Srinivas Vadrevu 的分析

免责声明 : 本文中表达的所有观点均为 Srinivas Vadrevu(以下简称“作者”)的观点,不代表作者曾经、现在或将来隶属的任何实体的观点。以上所有观点都不是统计推断,而是作者根据自己的观察得出的观点。本文作者对本文内容中的任何错误或遗漏不承担任何责任或义务。你不应该依靠这篇文章来作出任何商业、法律、投资或任何其他决定。虽然作者试图保持文章中的信息准确,但作者不对本文中包含的图形、图表和数据的完整性、准确性、可靠性、适用性或可用性做出任何形式的明示或暗示的陈述或保证。作者没有任何义务更新本文的内容,并否认与本文相关的任何责任。

冠状病毒:来自韩国的大数据教训

原文:https://towardsdatascience.com/coronavirus-a-big-data-lesson-from-south-korea-5bb703b8b0ae?source=collection_archive---------24-----------------------

南韩如何用数据和人工智能对抗冠状病毒(新冠肺炎)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由皮克斯拜的 Gerd Altmann 提供

大多数国家仍然受到严格的检疫限制,而其他国家正在开放经济,回归正常生活。冠状病毒的影响因国家而异。一些国家正面临严峻的挑战,努力控制疫情。尽管如此,像韩国、新加坡和台湾这样的国家几乎能够立即对形势做出反应,并更快地恢复过来。

早在 2020 年 2 月,韩国报告了世界上最高的冠状病毒日传播率之一。除了 Mainland China,受感染的人数是最高的,天气预报预测了一切,但都是最坏的情况。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

自己可视化,数据来源:约翰·霍普斯金大学

但正如图表所示,曲线开始变平的速度比最初预期的要快得多,这种情况得以维持。韩国怎么可能如此迅速有效地对此案做出反应?

吸取的教训

韩国已经面临类似的情况,但规模要小得多。2015 年,一名从中东地区返回首尔的韩国游客携带了一种被称为 MERS-CoV 的传染病,也是由冠状病毒引起的。由于病毒在该国的新颖性,直到疾病被正确诊断需要几天时间。在病毒被确认的时候,它已经被进一步传播,并且似乎几乎不可能追踪谁被感染。这种感染导致韩国出现 186 例 MERS-CoV 病例,并导致 16993 名韩国人被隔离 14 天,经济损失达 85 亿美元。除了沙特阿拉伯,韩国是全球感染人数最多的国家:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

自己可视化,数据来源:世界卫生组织

尽管这种病毒出现得相当出人意料,但它的进一步发展被相对较快地阻止了。人们的快速测试和各种先进技术、数据分析和人口信息的使用已被证明是切实可行的措施。

31 号病人与韩国冠状病毒的传播

韩国首例病毒病例于 1 月 20 日确诊。一名来自中国武汉的受感染女士被隔离,官员们设法控制住了局势。“31 号病人”改变了一切。在测试呈阳性之前,患者 31 发生了一次小事故,在医院检查了两次,并在教堂参加了一次服务。她与数百人有过接触,并成功地将病毒传染给了其中许多人。自那以后,南韩在几天的时间里确认了数千例病毒病例,并且数字急剧增长,这次爆发是 Mainland China 以外最大的一次。

借助大数据、人工智能和智能技术,在 20 天内拉平曲线

韩国在防止病毒进一步传播方面做得很好,原因有几个。从 MERC 的经验中,他们能够应用有效的措施,例如:

  • 智能联系人跟踪
  • 积极的测试和诊断
  • 远距离医学
  • ICT 和智能技术

智能联系人跟踪

合同追踪是一个很好的例子,说明了如何让大数据大规模发挥作用,并带来可操作的见解。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片来自 Pixabay (CC0)

当我们回到关于我们 31 号病人的故事时,官员们能够跟踪她的活动,她接触过的人,并警告每个可能处于危险中的人。

联系人追踪应用程序基于不同种类的数据:

  • 地理空间的
  • 时间序列
  • 图像和视频
  • 处理
  • 其他人

关于位置的信息可能通过几个来源被跟踪:来自智能设备的 GPS 数据、信用卡交易或其他。一旦合并,一个确诊患者的运动的全面图片被公开共享。该应用程序提供了个人访问的历史、时间线和地点的信息。餐馆和酒店的访问,他们使用的交通工具,他们乘坐的线路或公共汽车号码,甚至电影院的确切座位都被跟踪。在监测和分析病毒传播时,闭路电视摄像机也被广泛使用。韩国每天有超过 110 万个可运行的闭路电视摄像头。根据 2010 年的统计数据,每个市民平均每天被公共闭路电视系统捕捉 83.1 次,并且这一趋势逐年增长。

智能联系人追踪可缩短有关部门的反应时间,以识别潜在威胁、隔离病毒的传播源并通知所有可能处于危险中的人员。这个公共应用程序还会告诉每位用户,确诊患者去过哪些地区,哪些地方被隔离,以及谁可能受到影响。该系统还能追踪病毒的活动,帮助医院和诊所更好地准备应对下一波病毒。

基于人工智能的测试套件开发和诊断

MERC 的经历给韩国上了另一课——“激进的测试”。在超级发射机事件大规模传播之前,只有 30 例确诊病例,而中国为 75,000 例。尽管数量少,韩国开始与生物科技公司合作开发冠状病毒的测试。他们几乎立即开发出了测试套件,并分发给全国每一家医院。韩国并不像其他国家那样面临测试数量不足的问题。多亏了谨慎的人工智能规划和利用,他们才得以以超快的速度来拉平曲线。

“如果没有人工智能,在如此短的时间内开发一个测试是不可能的,”成均馆大学交互科学系教授钟泰明(Tai-myong Chung)说。

测试套件的设计是使用人工智能开发的。人工智能帮助缩短了设计和构建测试包所需的时间。病毒的基因组成通常需要 2-3 个月。这家名为 Seegene 的公司凭借自动化和人工智能,在不到三周的时间里就完成了测试开发。基于人工智能的大数据解决方案使科学家能够快速了解冠状病毒的遗传组成。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

疾病预防控制中心Unsplash 上拍摄

此外,人工智能允许个人健康专家准确快速地筛选和诊断患者。人工智能的主要应用是对大规模的胸部 x 光数据进行处理,以便在几秒钟内识别冠状病毒的症状,并在危急状态下给予患者治疗。人工智能用于将患者分为四类:轻度、中度、重度和非常重度

远距离医学

除了基于人工智能的解决方案,还有远程医疗,支持社交距离,并使患者能够与医疗保健人员保持联系。远程医疗以潜在或确诊的患者为目标,以监控冠状病毒的症状和进一步发展。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

国家癌症研究所Unsplash 上拍摄的照片

整个检查是通过使用智能手机的视频通话建立的。所有症状都包含在数据库中,并建议患者采取下一步措施。该解决方案使专业人员能够实时检查确诊患者的症状,并将需要医疗援助的患者转移到最近的医院。

信息共享应用

整个韩国系统对抗冠状病毒的其他关键部分是移动应用程序。有很多是在几天内开发出来的。主要目的是从不同角度让公众了解冠状病毒。他们中的一些人正在提供关于症状的一般信息。其他人会让你知道有口罩的地方或者最近的检测地点。也有人工智能应用程序使用聊天机器人给需要医疗护理的人打电话。

韩国是人工智能和大数据如何应用于社会公益的一个很好的例子——缩短反应时间,提高准确性,并在全国部署解决方案。许多事情需要解决。隐私、数据安全和信息共享不能放在一边。得益于该国透明一致的政府、文化、集体努力、技术成熟和渴望创新,韩国在面对这些挑战时成功克服了潜在风险。

在 LinkedIn 上关注我:

[## Filip Dzuroska -数据科学家- Erste Group IT | LinkedIn

在世界上最大的职业社区 LinkedIn 上查看 Filip Dzuroska 的个人资料。菲利普有一份工作列在他们的…

www.linkedin.com](https://www.linkedin.com/in/filipdzuroska/)

文章来源:

[## 韩国利用大数据和人工智能赢得了与冠状病毒的斗争

南韩依靠其技术优势对抗新型冠状病毒(新冠肺炎)。这个国家有一个…

www.thedailystar.net](https://www.thedailystar.net/online/news/south-korea-winning-the-fight-against-coronavirus-using-big-data-and-ai-1880737) [## 各国如何利用科技对抗冠状病毒

新冠肺炎的快速传播迫使各国使出浑身解数来遏制疾病。一些…

economictimes.indiatimes.com](https://economictimes.indiatimes.com/tech/software/how-countries-are-using-technology-to-fight-coronavirus/articleshow/74867177.cms?from=mdr) [## 中东呼吸综合征:我们从 2015 年大韩民国疫情中吸取的教训

中东呼吸综合征冠状病毒(MERS-CoV)首次从一名严重肺炎患者身上分离出来

www.ncbi.nlm.nih.gov](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5840604/) [## 科西斯

编辑描述

kosis.kr](http://kosis.kr/statHtml/statHtml.do?orgId=127&tblId=DT_2014_82) [## 보도자료 | 국가인권위원회

编辑描述

www.humanrights.go.kr](https://www.humanrights.go.kr/site/program/board/basicboard/view?&boardtypeid=24&menuid=001004002001&boardid=600084) [## 冠状病毒:韩国成功控制疾病是因为它接受了监测

南韩因其对冠状病毒疾病新冠肺炎的爆发和传播的管理而受到广泛赞扬…

theconversation.com](https://theconversation.com/coronavirus-south-koreas-success-in-controlling-disease-is-due-to-its-acceptance-of-surveillance-134068) [## 禽流感与新冠肺炎冠状病毒的控制

本文档也可从以下网站获得:本出版物旨在提供来自……的文章的非详尽概述

www.coe.int](https://www.coe.int/en/web/artificial-intelligence/ai-and-control-of-covid-19-coronavirus) [## 新冠肺炎:韩国如何利用创新技术和人工智能来拉平曲线

据国际电联消息,大韩民国迄今为止在不关闭其经济的情况下成功地遏制了新冠肺炎…

news.itu.int](https://news.itu.int/covid-19-how-korea-is-using-innovative-technology-and-ai-to-flatten-the-curve/) [## Lunit 在线发布人工智能,支持医疗保健专业人员管理新冠肺炎

Lunit 是一家医疗人工智能软件公司,通过胸部 x 光图像开发人工智能肺部疾病分析,今天…

lunit.prezly.com](https://lunit.prezly.com/lunit-releases-its-ai-online-to-support-healthcare-professionals-manage-covid-19)

冠状病毒:真阳性的置信区间

原文:https://towardsdatascience.com/coronavirus-a-confidence-interval-for-true-positives-444962ea2348?source=collection_archive---------36-----------------------

现实世界中的数据科学

如何利用基础统计学创造新的数学来研究重要问题

编者注: 走向数据科学 是一份以研究数据科学和机器学习为主的中型刊物。我们不是健康专家或流行病学家,本文的观点不应被解释为专业建议。想了解更多关于疫情冠状病毒的信息,可以点击 这里

冠状病毒数据极其杂乱。不同地区报告数据的方式并不一致。由于这个原因,以及其他原因,包括一周中的某一天的影响,很难推断出趋势。

此外,由于假阳性和假阴性的性质,阳性检测的数量并不能告诉我们有多少人检测到了病毒。

在这篇文章中,我将在给定四条信息的情况下,为阳性测试的真实数量建立一个置信区间。首先,我们需要真阳性率和假阳性率。这些是测试本身的属性。然后,我们需要给出测试总数以及阳性总数。这些给了我们关于被研究人群的信息。

敏感性和特异性

每当你上统计学入门课程时,关于贝耶定理的部分总是有下面的例子。如果你有一项测试,在你患病的 99%的时间里呈阳性,在你没有患病的 99%的时间里呈阴性,并且这种疾病只影响 1%的人口,那么阳性测试只意味着你有 50%的机会患病。

这是经典的“抓住你了!”moments intro stats 教师喜欢使用,起初可能会觉得不直观。然而,这真的很容易理解。因为健康的人是患病的人的 99 倍,即使假阳性率很低,它也会因为所有健康的人而膨胀 99 倍。因此,假阳性非常普遍。

我上面给出的 99%的数字被称为测试的灵敏度和特异性。测试的敏感性是测试识别测试者的能力:它是以“你有疾病”为条件的阳性测试的概率。检测的特异性是检测疾病何时不存在的能力。同样,它是以‘你没有这种病’为条件的否定概率。在上面的例子中,我描述的测试具有 99%的灵敏度和特异性。

对真实阳性率的估计

现在,我们的推导只涉及几件事。首先,我们使用全概率定律。然后,我们会用到随机变量方差的性质。让我们从全概率的标准定律开始。回想一下,阳性率(或检测结果为阳性的百分比)可以细分如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

嗯,我们想解决 P(电晕),测试的人谁实际上有病毒的百分比。这样我们就得到了表达式

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

注意:阳性率是阳性测试与总测试的比率。我们知道这个数字。第二,真阳性率和假阳性率是凭借知道敏感度和特异度才知道的!因此,我们可以估计我们想要的数量。

现在,如果我们认为左边和右边的量是观察到的随机变量,那么右边的量是冠状病毒受试者比例的无偏估计量。这意味着,如果我们通过采样计算右边,平均来说,我们会得到正确的答案。我们得到的答案不是偏向一个方向或另一个方向。

为什么这三条信息要足够计算 P(日冕)?让我们用一点代数来进行逻辑思考。

如果假阳性率是 5%,真阳性率是 95%,那么阳性率,即两者的凸组合,必须在 5%和 95%之间。如果阳性率接近 95%,那么我们知道大多数被测试的人实际上都患有这种疾病。如果该比率接近 5%,那么我们知道大多数接受测试的人没有患病。确切地知道两者之间的阳性率有多远,可以告诉我们真阳性和假阳性的确切混合。

第二点你可能已经用敏锐的眼睛注意到了:这只有在真阳性和假阳性率不同时才有效!否则,这两个比率之间就没有“中间值”。如果敏感性和(1-特异性)是相同的,我们根本无法进行这种分析。稍后我们将展示更糟糕的情况:随着敏感度和(1-特异性)越来越接近,我们的置信区间的质量将会下降。(幸运的是,大多数测试的灵敏度和特异性接近于 1,因此灵敏度和 1-特异性彼此相差很远)。

敏感性和特异性重要吗?

这可能会令人惊讶。只要敏感度和特异度是不同的数字,我们就会得到与实际患病人数完全相同的估计值。也就是说,当从测试人群中估计患病人群的比例时,测试的准确性并不重要。让我们通过下面的例子来了解我的意思(这也将验证我们的方法给出了 P(Corona)的正确值)!)

在这两种情况下,为了便于讨论,我们假设我们测试了 1000 人,其中 300 人生病。让我们首先假设 95%的真阳性率和 5%的假阳性率。然后,我们预计在总共 320 次阳性测试中会有 285 次真阳性和 35 次假阳性。如果你用这个 32%来代替上面公式中的阳性率,我们得到

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

现在以 60%的真阳性率和 40%的假阳性率重复上述实验。从表面上看,这是一个非常糟糕的冠状病毒测试。我们预计在这个设置下,总共 460 次阳性测试中,会有 180 次真阳性和 280 次假阳性。如果您使用上面的相同公式,我们将再次看到我们计算 P(电晕)=0.3。在这种情况下,灵敏度和特异性并不重要!

那么,为什么进行准确的测试是可取的呢?我在上面得出的唯一结论是,对于整个人口,我们将计算相同比例的病人。不过,准确性对个人来说很重要。

如果你测试呈阳性,那么你实际患病的概率很大程度上取决于测试的准确性和疾病的流行程度。这就是我上面讲的经典的贝叶定理问题。敏感性和特异性低的测试对个体来说是不好的。

敏感性和特异性非常重要的第二个原因是,它们极大地影响了我们估计量的方差。记住:本文的目标是开发一种方法来生成实际生病人数的置信区间。为了做到这一点,我们首先需要一个无偏估计量,我们有。然而,第二,也是非常关键的:我们需要能够计算估计量的方差。

请记住,估计量的方差告诉我们,样本与样本之间,我们对待估计参数的猜测变化有多大。一个低方差、无偏的估计量将对所讨论的数量产生一致、准确的结果。(注意:这就是为什么在本科统计课上,我们要学习最小方差无偏估计量的概念。)

在下一节中,我们将开发特定估计量的方差,并展示它如何关键地依赖于灵敏度和 1-特异性之间的距离。

我们估计量的方差

这是我们需要记住更多介绍统计资料的地方。看看我们估计阳性率的公式,我们必须问自己:哪些东西是随机的(取决于观察到的数据),哪些是已知值(常数)。事实上,唯一依赖于观察数据的是参数“阳性率”。其他的是我们正在进行的测试的已知事实。因此,稍微改写一下,我们对 P(日冕)的估计是阳性率的缩放和移动版本。让粗体 X 表示我们的阳性率估计值,使用方差的基本性质,我们得到:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

此外,阳性率是通过二项式过程估计的,所以我们知道它的方差!这是构建比例置信区间时使用的标准技术。在我们的估计量的方差中代入 P(Corona ),由下式给出:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这就是我们上述观察的理由:真阳性率和假阳性率越接近,这种差异就越大。事实上,如果真阳性率和假阳性率非常接近,那么我们的估计不会比说 P(日冕)在 0 和 1 之间更好!

然而,对于合理的敏感性和特异性测试,我们可以得出有意义的区间。

结论

让我们来看看截至撰写本文之日(2020 年 7 月 20 日晚上)来自佛罗里达州的数据。我将使用 95%和 99%的特异性和敏感性值重复这一部分。使用这个来源,我们看到佛罗里达州有 360,394 个阳性测试,阳性率为 11.8%。让我们计算出 95%的置信区间,以确定接受检测的佛罗里达人中实际患病的比例。首先,我们对比例的估计。

在我们有 95%的敏感性和特异性的情况下,我们估计 7.57%的被测试者实际上患有该疾病。在准确率为 99%的情况下,我们得到 11.03%的被测试者患有这种疾病。差别很大。

现在是差异。因为我们的样本量实际上很大,所以在 95%准确率的情况下,我们的方差是 4.21e-8。在准确度为 99%的情况下,方差为 3.55e-8。

假设这些测试是一个真正的佛罗里达随机样本(不!),那么使用高斯近似法,我们对患有该疾病的受试者比例的估计是 2.1e-4,或者大约是百分之二。这使得我们在 95%灵敏度和特异性的情况下,置信区间[7.53%,7.61%]。

在 99%的情况下,同样的计算告诉我们,被测试者的比例约为[10.99%,11.07%]。无论哪种情况,我们都得到一个很紧的区间!

当我们从百分比转到疾病总数时,间隔就扩大了一点。7.53%至 7.61%的范围代表了大约 24,000 例的差异。这是一个更大的数字和更大的影响。

为了使事情不那么具体,更直观,我画了一个给定阳性率的 P(日冕)估计图。对于这个实验,我假设测试了 100 人(总体而言,样本量更小,更合理),冠状病毒测试具有 95%的特异性和敏感性,我们构建了 95%的置信区间。结果如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

对于给定的阳性检测率,估计患有冠状病毒的受试者的比例(包括假阳性!)显示的是 95%的置信区间。图片作者。

结论

我在这里的主要观点不一定只是“如何为医学测试设定置信区间”。相反,我想展示推导新数学的过程,以回答一个问题。一个好的数据科学家不应该只是记住数百个 Python 库的语法。一个优秀的数据科学家对基本原理有很好的理解,并且应该能够改变他们已经知道如何使用的技术,以适应您可能无法在堆栈交换上找到任何东西的情况。

特别是关于冠状病毒,主要观点是报告阳性检测率和新病例数量有多么重要。否则,你只讲述了故事的一半。

冠状病毒:数据科学家的观点

原文:https://towardsdatascience.com/coronavirus-a-data-scientists-perspective-e3ac1cbe8916?source=collection_archive---------50-----------------------

冠状病毒数据的分析和可视化

编者注: 走向数据科学 是一份以研究数据科学和机器学习为主的中型刊物。我们不是健康专家或流行病学家,本文的观点不应被解释为专业建议。想了解更多关于疫情冠状病毒的信息,可以点击 这里

介绍

源于中国武汉的新型冠状病毒疫情已导致数千名中国公民感染,并已蔓延至全球 20 多个国家。虽然世界卫生组织宣布这种病毒为全球紧急情况可能有点令人担忧,但我作为数据科学家对围绕这种流行病的数据以及利用这些数据可能实现的目标感到好奇。这是几个月前我在自己的网站上写的一篇文章,是关于我对冠状病毒数据的分析。

冠状病毒数据

找到一个冠状病毒数据源并没有那么难。几个新闻来源每天更新他们的网站,提供新的感染病例数、发现地点和死亡人数。然而,这些数据源通常不是可下载的文件或以任何方式结构化。

但是,善良的老卡格尔又提供了。🙌🏻

数据集包括 2020 年 1 月 22 日至 2020 年 2 月 11 日期间来自 32 个国家的确诊病例记录。在我写这篇文章的时候,数据集只落后一天——所以它是最新的!

在我做任何事情之前,对于任何数据科学项目,首先我必须观察和预处理数据。

检查数据

因为这个数据集是 CSV 格式的,所以我可以使用 Pandas 将数据读入我的 Python 脚本。Pandas 是一个我已经广泛使用了一年的库,好家伙,它把我从我曾经使用的史诗列表中拯救了出来!所以一旦它被导入,我就可以把 CSV 读入熊猫数据帧,看看里面有什么。

那么,我们知道些什么?嗯,如果我们关注确诊病例列,我们可以使用df[*column_name*].sum()函数来统计病例总数。该死,确诊病例真多!如果我们考虑到数据还显示有 22,307 起收回,这意味着收回率为 5.97%。

如果我们根据国家列对行进行分组,并对确诊病例的数量进行求和,我们就可以对输出进行排序。这表明,与任何其他国家相比,中国确实有大量确诊病例。这可能是一个显而易见的观察,因为我们从新闻来源知道它起源于中国。但是,值得查数据!

我们可以应用完全相同的代码来观察每个国家或省有多少人死亡和多少人康复。如果我们按省/州列分组,【湖北】【武汉】省记录的确诊病例数最高。同样,一个直观的观察,但值得检查。

数据预处理

仅仅通过快速浏览数据,似乎不需要极端的预处理。但是我注意到了三件事,这三件事引起了我的强迫症,在我开始着手做任何事情之前,可能需要解决这三件事,它们是:

国家栏中,报告了*‘中国’‘Mainland China’,而它们应该是‘中国’‘Mainland China’*。

检查日期列的数据类型是否为日期时间,因为这样更容易处理。

已确认,死亡,已恢复列数据类型需要是整数,而不是浮点数。

首先,让我们把所有出现的*【Mainland China】改成【中国】。我们可以通过检查国家*列中所有唯一国家列表的长度来检查这是否成功。

现在来检查日期列的数据类型。我们可以使用 Pandas 的.info()函数来查看数据帧中所有列的数据类型。数据类型表明日期列是一个对象数据类型。为了方便起见,我将把它的数据类型改为日期时间。然后,我可以分别使用df['Date'].dt.timedf['Date'].dt.date来访问日期本身的日期或时间元素。让我们这样做吧——我将用 Date 元素替换 Date 列,方法是将该列重命名为它本身。

.info()结果也确认了已确认、死亡已恢复数据类型为浮点。理想情况下,你会希望这些是整数,因为你不能有一个小数人数。因此,类似于日期列,我们将更改这些数据类型。

太好了—数据现在可以使用了。在这个阶段,有些人还会使用del df[*column_name*]删除他们不需要的列。我不会删除这里的任何列,因为我可以只选择那些适用于我将要做的事情的列。实际上,我建议不要删除列,只是因为您可能最终会需要它们,并且不得不检查您的代码来找到您要删除的位置,这听起来像是一个不必要的任务——所以总是选择列,不要删除它们。💡

数据可视化

考虑到数据包括位置,显然首先要做的是使用地图可视化。我只使用 Python 通过 Matplotlib 或 Seaborn 创建过热图或条形图。由于缺乏文档,我过去一直推迟用 Python 创建地图,所以我最初使用这种类型的可视化会像 Tableau 一样。但这一次,我决定重新拾起它,看看我是否有耐心把事情搞清楚!

首先,让我们决定我们想要观想什么。鉴于数据集报告称,中国以外几乎没有死亡或康复病例,全球确诊病例的数量很少。在这种情况下,我可以使用我最初观察到的df_country,其中我根据国家列对行进行了分组,并对确诊病例的数量进行了求和。

有几个 Python 库支持创建地图。在这里,我将使用叶创建一个气泡图。对于那些不知道气泡图是什么的人来说,它是一系列圆圈,其大小代表一个区域中的一个数值。或者在这种情况下,全球不同国家报告了多少冠状病毒确诊病例。为此,叶需要标记气泡的坐标。为了找到这个数据集中的国家的纬度和经度,我很快搜索了 web,找到了一个 JSON 坐标文件,打开这个文件,遍历我的数据帧,将这些国家与它们的坐标匹配起来。

如果我照现在的样子绘制数据,气泡的半径会太大而无法进行任何形式的观察。因此,我们需要将其正常化或以某种方式处理它。在这种情况下,我决定将除中国以外的所有国家的确诊病例除以 50。为什么是 50?因为它在地图上看起来只是一个很好的比例。您可以尝试不同的标准化方法,以获得对您有用且不太需要人工的东西。为什么不把中国确诊病例按 50 分?因为中国有如此高的病例数,泡沫仍然太大,淹没了周边国家的数据。因此,为了大幅缩小规模,但仍显示它具有最高的案例数,我将其除以 25k。

接下来,我设置图表的参数,选择它作为黑暗和神秘的背景,开始缩放级别为 2。我还指定我想要一个弹出窗口,显示气泡所在国家的确诊病例数。最后,我写了一个简短的规则集,规定如果确诊病例数(非标准化版本)少于 100 例,气泡为绿色,如果在 101 到 500 例之间,气泡为黄色,如果是任何其他值,气泡为红色。

瞧,这就是输出!如果您点击气泡,您将看到该特定国家的确诊病例总数。从气泡的颜色和大小可以很快观察到,大量确诊病例主要发生在亚洲。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

使用叶子的气泡图

预测未来案例

在我做任何类型的预测之前,让我们绘制数据报告期间的确诊病例、死亡和康复总数,看看我们是否有某种趋势。为了制作这个图表,我根据日期已确认、死亡已康复列组合在一起,并对这些值求和。然后,我使用 iPlotter 在 ChartJS 中生成图形。我过去使用过 chartj,我非常喜欢图表的外观和它们的交互性。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

绘制原始数据

那么,从图表中我们能看出什么呢?它显示在 21 个数据点中,每个变量都有线性增长。

鉴于我们没有足够的数据点,很难使用机器学习模型或时间序列模型(如 ARIMA)来预测疫情。但我们可以使用 ARIMA 的移动平均线(MA)部分,并采用 2 或 3 个移动平均线来获得未来每日确诊病例数的粗略想法。假设每日确诊病例数将继续增长,让我们来看看一段时间内确诊病例的移动平均值。

首先,我使用 Pandas 的rolling函数计算 2 的移动平均值。这个函数的作用是计算数据帧中每 2 行的平均值。为什么是 windows 2?如果我们绘制移动平均数图,它似乎很好地遵循了与实际每日确诊病例数相同的趋势。事实上,这一趋势比原始数据稍微平稳一些,从 2020 年 2 月 4 日到 2020 年 2 月 5 日以及 2020 年 2 月 6 日和 2020 年 2 月 7 日,病例数量的增加只是轻微的。我将移动平均线添加到新列中的数据帧中, MA

假设我们想预测 6 天内确诊病例的数量。我们可以使用最后的移动平均值(43,807)作为第一个预测案例数。然后,我们可以通过计算最后一个实际案例数(44,982)与第一个预测案例数(43,807)的移动平均值来预测 2 天前的案例数。我们可以使用 for 循环迭代这个过程,直到我们预测了 6 个值。我们可以将它们放在一个列表中,准备放入 graph 函数中。

由于我对预测是否真实很感兴趣,我等了 6 天才收集到新的数据。所以,我在 2020 年 2 月 23 日写下了以下几段文字。但是通常情况下,你要做的是将你的数据帧分成一个训练集和一个测试集。然后,您可以根据定型集进行预测,并使用测试集来评估预测。

我使用与以前相同的技术处理新数据,并计算每天确诊病例的数量。然后我制作了下图。黄线代表实际每日确诊病例数,红线代表移动平均数 2,蓝线代表 2020 年 2 月 12 日至 2020 年 2 月 17 日的每日新病例数,最后,绿线代表预测病例数。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

预测病例

结论

那么,我从这个分析中学到了什么?

我主要意识到一个简短的分析需要多少预处理和数据争论!我还对 follow 库的输出以及地图在可视化基于位置的数据方面的有效性印象深刻。

然而,结果表明,预测方法并不奏效。比如 2020 年 12 月 2 日,实际病例数和预测数相差 20k 左右!但是,如果我们观察 2020 年 2 月 11 日和 2020 年 2 月 12 日之间实际确诊病例数的差异,就会发现增加了大约 16k 例病例!这是我们没有预料到的……如果我们考虑到实际确诊病例的平均日增长率为 0.27%,您会预计 2020 年 12 月 2 日的病例总数将在 45k 左右,而不是 60k。但是,嘿,我想这就是数据的本质!

完整的笔记本,请查看下面我的 GitHub 回购:https://github.com/LowriWilliams/Coronavirus

如果你喜欢这篇文章,别忘了点赞和分享。

使用 Plotly 实现冠状病毒数据可视化

原文:https://towardsdatascience.com/coronavirus-data-visualizations-using-plotly-cfbdb8fcfc3d?source=collection_archive---------3-----------------------

小说《电晕病毒 2019》数据集分析附代码!

介绍

今天,我发现了一个新的数据集,名为“Novel Corona Virus 2019 Dataset”,因为人们对我之前的文章 非常感兴趣,所以我想我应该使用 Plotly 创建一些数据可视化!

Plotly 是 Python 中的一个库,用于创建交互式动态数据可视化。如果你想与这些可视化互动,我会在本文底部提供我的 Kaggle 笔记本的链接。

注:所有图片和 gif 都是我自己用 Plotly 和 Giphy 创建的。

如果这是你喜欢的那种东西,请成为第一批订阅 我的新 YouTube 频道在这里 !虽然还没有任何视频,但我会以视频的形式分享很多像这样的精彩内容。感谢大家的支持:)

目录

  1. Choropleth 地图
  2. 饼状图
  3. 条形图
  4. 线图
  5. 树形图

Choropleth 地图

冠状病毒在全球范围内的传播

由作者用 Giphy 创建

  • 这是一个动画的 choropleth,显示了冠状病毒在 2020 年 2 月传播到了哪里。如果你想看更清晰的完整版本,链接在这篇文章的底部!
fig = px.choropleth(df_countrydate, 
                    locations="Country", 
                    locationmode = "country names",
                    color="Confirmed", 
                    hover_name="Country", 
                    animation_frame="Date"
                   )

fig.update_layout(
    title_text = 'Spread of Coronavirus',
    title_x = 0.5,
    geo=dict(
        showframe = False,
        showcoastlines = False,
    ))

fig.show()

全球确诊病例热图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

使用 plot.ly 创建

  • 很明显,中国的病例数是其他任何有确诊病例的国家无法相比的。因此,我在下一张图的分析中去掉了中国。
fig = go.Figure(data=go.Choropleth(
    locations = df_countries['Country'],
    locationmode = 'country names',
    z = df_countries['Confirmed'],
    colorscale = 'Reds',
    marker_line_color = 'black',
    marker_line_width = 0.5,
))

fig.update_layout(
    title_text = 'Confirmed Cases as of February 28, 2020',
    title_x = 0.5,
    geo=dict(
        showframe = False,
        showcoastlines = False,
        projection_type = 'equirectangular'
    )
)

全球确诊病例热图(不包括中国)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

使用 plot.ly 创建

  • 在这里,你可以看到,除了中国之外,韩国、伊朗和意大利显然是病例数量最多的三个国家。
df_countries_no_china = df_countries[df_countries['Country'] != 'Mainland China']
fig = go.Figure(data=go.Choropleth(
    locations = df_countries_no_china['Country'],
    locationmode = 'country names',
    z = df_countries_no_china['Confirmed'],
    colorscale = 'Reds',
    marker_line_color = 'black',
    marker_line_width = 0.5
))

fig.update_layout(
    title_text = 'Confirmed Cases as of February 28, 2020 excl. China',
    title_x = 0.5,
    geo=dict(
        showframe = False,
        showcoastlines = False,
        projection_type = 'equirectangular'
    )
)

饼图

按国家分列的确诊病例比例

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 很明显,大多数病例仍在中国,但在下一张图中,你可以看到中国以外的病例比例
fig = px.pie(df_countries, values = 'Confirmed',names='Country', height=600)
fig.update_traces(textposition='inside', textinfo='percent+label')

fig.update_layout(
    title_x = 0.5,
    geo=dict(
        showframe = False,
        showcoastlines = False,
    ))

fig.show()

按国家(不包括中国)分列的确诊病例比例

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • “其他”是指钻石公主号游轮上的案例
fig = px.pie(df_countries_no_china, values = 'Confirmed',names='Country', height=600)
fig.update_traces(textposition='inside', textinfo='percent+label')

fig.update_layout(
    title_x = 0.5,
    geo=dict(
        showframe = False,
        showcoastlines = False,
    ))

fig.show()

条形图

一段时间内确诊病例总数

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 2 月 13 日出现了一个高峰,这是由于一种对确诊病例进行重新分类的新方法
  • 它开始趋于平稳,但由于钻石游轮上成员的释放,你可以看到越来越多的国家在 2 月底出现病例。这可能表明病毒的传播远未达到稳定状态。

一段时间内的死亡总数

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

一段时间内恢复的案例总数

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 死亡和康复病例的数量是滞后指标,所以随着时间的推移,我们应该会看到其他国家的一些数字在上升。
bar_data = df.groupby(['Country', 'Date'])['Confirmed', 'Deaths', 'Recovered'].sum().reset_index().sort_values('Date', ascending=True)

fig = px.bar(bar_data, x="Date", y="Confirmed", color='Country', text = 'Confirmed', orientation='v', height=600,
             title='Cases')
fig.show()

fig = px.bar(bar_data, x="Date", y="Deaths", color='Country', text = 'Deaths', orientation='v', height=600,
             title='Deaths')
fig.show()

fig = px.bar(bar_data, x="Date", y="Recovered", color='Country', text = 'Recovered', orientation='v', height=600,
             title='Recovered')
fig.show()

线图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 这是上面显示的条形图的综合表示。理想情况下,我们希望看到红线和蓝线相交并相互穿过。
line_data = df.groupby('Date').sum().reset_index()

line_data = line_data.melt(id_vars='Date', 
                 value_vars=['Confirmed', 
                             'Recovered', 
                             'Deaths'], 
                 var_name='Ratio', 
                 value_name='Value')

fig = px.line(line_data, x="Date", y="Value", color='Ratio', 
              title='Confirmed cases, Recovered cases, and Death Over Time')
fig.show()

树形图

树状图是一种类似饼图的表示方式,因为它表示比例。

按国家分列的确诊病例

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

fig = px.treemap(df_countries, path=['Country'], values='Confirmed', height=600, width=1000)

fig.update_layout(
    title_x = 0.5,
    geo=dict(
        showframe = False,
        showcoastlines = False,
    ))

fig.show()

按国家(不包括中国)分列的确诊病例

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

fig = px.treemap(df_countries_no_china, path=['Country'], values='Confirmed', height=600, width=1000)

fig.update_layout(
    title_x = 0.5,
    geo=dict(
        showframe = False,
        showcoastlines = False,
    ))

fig.show()

感谢阅读!

如果你喜欢我的工作,想支持我…

  1. 支持我的最好方式就是在媒体T2 上关注我。
  2. 推特 这里成为第一批关注我的人之一。我会在这里发布很多更新和有趣的东西!
  3. 此外,成为第一批订阅我的新 YouTube 频道 这里
  4. LinkedIn 这里关注我。
  5. 在我的邮箱列表 这里报名。
  6. 查看我的网站,terenceshin.com

更多相关文章

[## 9 种有趣的新型冠状病毒统计和数据可视化

以下是你应该知道的关于冠状病毒的知识

towardsdatascience.com](/9-fascinating-novel-coronavirus-statistics-and-data-visualizations-710cfa039dfd) [## 探索性数据分析的广泛逐步指南

我对任何数据集执行 EDA 的个人指南

towardsdatascience.com](/an-extensive-guide-to-exploratory-data-analysis-ddd99a03199e)

资源

[## Choropleth 地图

如何用 Plotly 在 Python 中制作 choropleth 地图?

plot.ly](https://plot.ly/python/choropleth-maps/) [## 图形参考

Plotly 属性是如何组织的?plotly 图表是用 plotly.graph_objects 和…中的对象以声明方式描述的

plot.ly](https://plot.ly/python/reference/#scattergeo-locationmode) [## Plotly Express

每行代表一朵花。https://en.wikipedia.org/wiki/Iris_flower_data_set 回复:一个 150 元的“熊猫. DataFrame”

plot.ly](https://plot.ly/python/plotly-express/)

新闻中的冠状病毒:他们反应过度了吗?

原文:https://towardsdatascience.com/coronavirus-in-the-news-are-they-overreacting-8b88da5f4afa?source=collection_archive---------7-----------------------

我搜集了 5000 多篇新闻文章来寻找答案

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

伊利亚·安东内尔在 Unsplash 上的照片

[2022 年更新:亲爱的读者,请记住这篇文章最初写于 2020 年 3 月 12 日——远在我们知道我们现在对 COVID 的大部分了解之前。写这篇文章的时候,我纯粹是好奇媒体是否客观地描述了情况,我意识到疫情造成的损失比我当时想象的要大得多。阅读时,请尽量记住这个上下文。谢谢——汤姆·夏普。]

随着冠状病毒(新冠肺炎)的发作,许多人转向媒体来评估形势的严重性。一些人说媒体反应过度,描绘了一个远比现实更糟糕的情况。其他人认为,媒体是在严格地描述事实,也就是说,不是试图以这样或那样的方式说服我们。我们如何确定哪一个是真实发生的?

作为一个数据驱动型的人,我开始着手评估媒体在过去几个月的反应。一周前,我建立了几个不同的网络抓取器来收集任何引用冠状病毒的文章的链接,然后将这些文章的内容收集到一个数据库中。利用这些文章,我能够分析媒体是否对新冠肺炎反应过度,以及反应过度的程度。

在开始分析文章数据之前,我必须确定我实际上在寻找什么。你如何量化一篇文章对一种情况的反应?为此,我决定采用一种自然语言处理(NLP)技术——情感分析。情感分析可以让我们推断出一篇文章对特定情况的观点、态度或感受。

我选择的用于情感分析的 Python 库是 TextBlob。 TextBlob 是一个 NLP 包,因其简单而丰富的情感分析而备受推崇。TextBlob 分析文本主体并输出该文本的主观性和极性得分。通过评估冠状病毒文章的这些度量,我们可以确定所述文章有多主观和/或负面,这可以是作者对情况“反应过度”的指示。

说完这些,我们开始分析一些文章吧!

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由 Unsplash 上的 Utsav Srestha 拍摄

数据

使用 Python,我能够从两个不同的新闻网站上找到冠状病毒的文章。这些文章可以追溯到 2020 年 1 月初,当时主流媒体开始讨论该病毒。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

对于每篇文章,我都存储了元数据(作者、日期、链接、站点等。)以及 SQLite 数据库中的实际文本。我每天都在不断更新这个数据库,每天早上都会把最新的文章拉进来。在写这篇文章的时候,我已经从 CNN 和纽约时报获得了 5451 篇关于冠状病毒的文章。

情感分析:主观性

作为新闻的读者和观众,我们希望确保我们消费的内容更符合事实,而不是固执己见。主观性是衡量这一点的一个很好的标准——高度固执己见的文章会落在量表的高端(接近 1),而更真实、更贴近现实的文章会落在量表的低端(接近 0)。

也就是说,我想用主观性来回答以下几个问题:

  1. 这些冠状病毒新闻文章有多主观?
  2. 新闻来源不同,主观性也不同吗?
  3. 随着情况的发展(随着时间的推移),主观性会改变吗?

这些冠状病毒新闻文章有多主观?

让我们快速看一下所有 5000 篇文章的主观性:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

count    5451
mean     0.393
std      0.092

上面的直方图显示了主观性在所有文章中的分布。分布中的关键指标显示在灰色框中。即平均主观性为 0.39 ,主观性的标准差(std)为 0.09 。同样,假设主观性=1 相当于一篇完全主观的文章,我们可以说这些文章平均有 40%是主观的

还不错!这意味着一般的文章是客观多于主观的。看起来我们从这些网站获得的内容是值得的。你可能想知道,“虽然文章的总体平均值是 40%,但不同新闻来源之间的平均值有所不同吗?”。

新闻来源不同,主观性也不同吗?

虽然上面的分析很好地概括了文章,但它没有区分新闻来源。显然,不同的新闻网站和电台有不同的政治倾向和风格,所以他们对冠状病毒情况的解释不同是有道理的,对吗?

让我们重新绘制情绪分布图,这次突出显示两个新闻网站,看看我们能否确定两者之间的任何差异。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

site    count  mean   std 
cnn     1208  0.401  0.071
nytimes 4243  0.391  0.097

注意到什么不同了吗?可能很难说。让我们看一下有帮助的指标。

两个站点的平均值大致相同,为 40%。但是,我们可以看到标准差差别很大。这些指标似乎给了我们相互矛盾的结果。有没有另一种方法可以量化这两种分布有多相似?

Kolmogorov–Smirnov(KS)检验是一种非参数检验,用于确定抽取的两个样本的分布是否不同。对于我们的情况,这意味着:一个站点的分布与另一个站点的分布相同吗?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

KS 检验的无效假设是:【H0 =一个站点的文章情感分布与另一个站点相同

使用 KS 检验,我得到了一个检验统计量 d=0.089 ,并通过排列确定 p 值为 0。因此,我们可以得出结论,我们可以拒绝零假设 : **第一个位点的分布不同于第二个位点的分布。**这很可能是由于标准偏差的差异(以及分布中潜在的其他细微差别)。

虽然两个发行版不同,但还是有点难看出原因。让我们以不同的方式分割数据,看看它是否揭示了感兴趣的东西。

主观性会随着情况的发展而改变吗?

观察主观性的分布是一个很好的起点,但它未能代表我们都知道的东西:情况每天都在演变。1 月初,美国的新冠肺炎病例数为 0,并且进展迅速,尤其是在过去几天。文章的主观性是否遵循这种趋势?

为了证明这一点,让我们画出过去几个月的平均每日主观性,看看随着情况的发展是否有任何变化。日均主观就是当天发表的所有文章的平均主观。我们可以看到下面的结果:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如图所示,尽管病例数量在 2 月底开始增加,但主观性仍然相当稳定。对于这两个站点,平均每日主观性在 0.40 左右徘徊,与上述分布中发现的 40%主观性一致。不是很刺激…

让我们更细化一点。我们可以绘制每篇文章在相应日期的主观性,以查看任何给定日期的传播:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们在这里看到的是相当惊人的。2 月 23 日之后,《纽约时报》的文章写作方式发生了巨大的转变。这也恰好对应了确诊病例曲线的一个大台阶。在 2 月 23 日之前,大多数文章的主观评分都在 0.2 到 0.6 之间。2 月 24 日,美国确诊的新冠肺炎病例从 15 例猛增至 51 例(增长了 3.4 倍!),从这一点上来说,文章的主观性是非常可变的——在某些日子里,整个范围是变化的。

对 CNN 的影响似乎更微妙,如果有的话。即使在 2 月 23 日之后,主观性也大多保持在 0.2 到 0.6 的范围内。CNN 的作者似乎保持着同样的客观水平,而《纽约时报》的作者对事态发展做出反应,在某些情况下撰写完全主观的文章。

现在,纽约时报的一些文章在 2 月 23 日之后变得更加客观,但这里的要点是,根据你阅读的文章,你将不会获得与之前相同的一致性。

情绪分析:极性(消极与积极)

现在我们对这些新闻来源的主观性有了更好的了解,让我们把注意力转向极性。极性衡量给定文本块的正负程度。TextBlob 对任何给定文本块的极性进行排序,从-1(负)到 1(正)。

在这一部分之前,我应该说,任何关于冠状病毒的文章的极性,就其本身而言,是一个见仁见智的问题。换句话说,如果你真的相信眼前的情况是值得担心的,那么一篇负面的文章似乎也是一样的。然而,如果你认为这种情况被“过度炒作”,那么一篇负面的文章可能会显得与现实脱节。因此,对结果的解释取决于你的观点。

让我们像以前一样进行同样的分析,这一次看文章的极性。

  1. 这些冠状病毒的新闻报道有多极端?
  2. 极性是否因新闻来源不同而不同?
  3. 随着情况的发展(随着时间的推移),极性会发生变化吗?

这些冠状病毒新闻文章的极性有多大?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

count       5451
mean        0.071
std         0.068

平均而言,文章的极性相当中性。这是我们应该从一个声誉良好的新闻来源中期待的。标准偏差也很小,表明极性在所有文章中相当一致。它也小于主观性,这意味着极性的变化小于主观性。

极性是否因新闻来源不同而不同?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

site    count  mean   std 
cnn     1208  0.072  0.061
nytimes 4243  0.070  0.070

同样,我们看到两个新闻网站的平均值大致相同,这次的标准差也有些相似。我们应该预料到两个站点之间的极性分布更有可能是相同的。让我们用另一个 KS 测试来测试这个。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这个有点接近,但是 p 值为 0.04,我们仍然拒绝零假设: 分布看起来是不同的。

极性会随着情况的发展而改变吗?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们在这里看到了与主观性相似的行为:日平均极性随着时间的推移相当恒定,两个站点的日平均极性大多保持在 0 到 0.2 之间。因此,在任何一天,一般的文章都是相当中性的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

令人惊讶的是,同样的行为也在极性中出现。2 月 23 日之后,纽约时报的文章在任何一天都有很大的极性差异。然而,方差似乎稍微偏向范围的正端,这意味着 2 月 23 日之后发表的任何给定的纽约时报文章都有更好的机会不是中立的,但有更高的机会是积极的。同样,CNN 似乎很少表现出这种行为。

结论

通过使用网络抓取和 NLP(情绪分析),该分析显示了媒体对美国当前冠状病毒形势的反应。我们发现,平均而言,文章有 40%是主观的,而且在极性上相当中性。我们还表明,两个新闻站之间的文章实际上是不同的,纽约时报对形势变化的反应要比 CNN 大得多。

希望下次你打开一篇新闻文章时,你会对你将要阅读的内容描述冠状病毒现状的程度更有信心。

我希望你喜欢这篇文章。如果有,在下面给我留言评论吧!让我知道你喜欢它的什么,或者你是否有兴趣在这篇分析中看到任何其他新闻网站!

该项目的代码可以在 GitHub 上找到。

如果你想更新我正在写的东西、我正在构建的辅助项目或我觉得有趣的文章,请随时加入我的时事通讯— 有抱负的数据科学家

编者按:《走向数据科学》是一份主要基于数据科学和机器学习研究的媒体出版物。我们不是健康专家或流行病学家,本文的观点不应被解释为专业建议。想了解更多关于疫情冠状病毒的信息,可以点击 这里

美国的冠状病毒——下一步是什么?

原文:https://towardsdatascience.com/coronavirus-in-the-us-whats-next-965b7bc92f39?source=collection_archive---------66-----------------------

在所有国家中,美国有可能爆发最严重的冠状病毒疫情

编者按: 走向数据科学 是一份以数据科学和机器学习研究为主的中型刊物。我们不是健康专家或流行病学家,本文的观点不应被解释为专业建议。想了解更多关于疫情冠状病毒的信息,可以点击 这里

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片来自 PixabayGerd Altmann

在我们试图回答这个问题之前,让我们把事情放在背景中——美国现在是世界上新冠肺炎病例最多的国家。4 月 4 日,美国确诊病例突破 30 万,死亡人数突破 8000 大关。更令人担忧的是死亡人数的增长速度——仅在 4 月 4 日,美国就有近 1400 人死亡。那么,我们是怎么走到这一步的?

冠状病毒无国界:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

德国、西班牙、意大利、英国和美国确诊病例时间序列

从 2019 年 12 月在中国的起源开始,冠状病毒现在已经传播到几乎每个国家。上图显示了德国、西班牙、意大利、英国和美国确诊病例数量的时间历程。随着时间的推移,所有国家的确诊病例呈指数增长,显示出类似的轨迹。除了中国(图中未显示)能够 拉平曲线 之外,其他国家仍处于病毒爆发的早期阶段,确诊病例数每天都在呈指数级增长。我们确实观察到不同国家爆发的潜伏期。美国和其他欧盟国家有一个多月的时间(见下表)来准备病毒的爆发,而它正在向我们的海岸前进。不幸的是,在我们对冠状病毒的防御中,我们起步较晚,从未恢复。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

各月确诊病例

类似的趋势是,与新冠肺炎相关的死亡人数呈指数增长。4 月 4 日,意大利死亡人数突破 1.5 万,美国和英国分别突破 8000 和 4000 大关。世界各国政府都在努力控制病毒的传播,尽量减少生命损失。距离疫苗接种还有几个月,作为第一道防线的群体免疫的想法在英国被尝试和放弃。虽然美国部分地区已经实施就地安置,但一些州和县仍在照常营业。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

德、西、意、英、美报告死亡时间序列

虽然上述图表显示了累计确诊病例和死亡人数,但观察每天报告的病例可以看出,西班牙和意大利的情况趋于平稳,而美国和英国仍呈上升趋势。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

德国、西班牙、意大利、英国和美国每天报告的死亡人数

美国已经成为新冠肺炎的中心

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

新冠肺炎确诊病例的空间足迹(截至 2020 年 4 月 4 日)

差不多一个月前,大多数新冠肺炎确诊病例主要集中在华盛顿州和纽约州地区。说到流行病,在一个地方发生的事情不会停留在同一个地方。快进到今天(4 月 4 日),冠状病毒已经扩散到美国所有州。上面的地图显示了我们各地确诊病例的空间足迹。一些州/县在抗击冠状病毒传播的斗争中采取了积极措施,并实施了就地避难令。例如,旧金山湾区的六个县从 3 月 17 日开始实施就地安置令。因此,湾区没有出现我们在纽约和新泽西看到的那种新冠肺炎病例的爆发。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

确诊病例总数——前八个州

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

死亡总人数——前八个州

纽约州有全美一半的新冠肺炎病例。当所有人的注意力都集中在纽约的情况时,我们看到新的冠状病毒热点正在出现。佛罗里达州、伊利诺伊州、密歇根州和路易斯安那州的确诊病例和死亡人数开始激增。纽约的疫情预示着如果这些州放松社区封锁和社会距离,将会发生什么。

下一步是什么?

鉴于冠状病毒传播的所有活动部分和遏制努力,对抗冠状病毒的战斗将如何长期进行存在许多不确定性。但是,在短期内,只有两种选择——a)要么疫情继续加速发展,超出我们医疗系统的能力;或者 b)将扩散减慢到我们可以使曲线变平的程度。在这两种选择中,意大利和西班牙对我们在不久的将来可以预期的美国的情况提出了严峻的警告。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

自达到 200 例以来按国家分列的确诊病例数

上图显示了每个国家达到 200 例后确诊病例数的时间序列。有趣的是,这些轨迹看起来彼此相似,直到突破 200 例阈值 15 天后。超过 15 天后,根据人口密度和每个国家为最大限度地减少病毒传播而采取的控制措施,病例数会有所不同。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

突破 200 例阈值后 5 天、10 天、15 天的确诊病例数

基于上述分析,我们可以合理地推断,所有国家的死亡轨迹将遵循类似的趋势。下图显示了自达到 200 例以来每个国家死亡人数的轨迹。在达到 200 人伤亡的两天后,德国(342 人)、美国(417 人)、英国(336 人)、意大利(463 人)和西班牙(533 人)的死亡人数范围相似。在死亡人数达到 200 人的 28 天后,意大利的总死亡人数为 15,362 人,可以用来衡量其他国家的死亡人数。 一般来说,就疫情的进程而言,西班牙比意大利落后一周。同样,美国和英国比意大利晚两周。换句话说,两周后,美国的死亡人数(按人口比例计算)将与我们今天在意大利看到的相似。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

自达到 200 例以来按国家分列的死亡人数

虽然前景并不光明,但我们不得不正视事实,承认一个令人不安的现实。在所有国家中,美国有可能爆发最严重的冠状病毒疫情。在落后之后,美国要拉平曲线将很困难,但并非不可能。与此同时,让我们在对抗疫情的战斗中尽自己的一份力量,遵循社交距离,在需要的时候帮助他人。

****数据来源:https://github.com/CSSEGISandData/COVID-19

维基百科中冠状病毒的语言-可视化

原文:https://towardsdatascience.com/coronavirus-interest-inwikipedia-by-language-1b3e6562040d?source=collection_archive---------20-----------------------

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

按冠状病毒语言分类的维基百科页面浏览量

查看维基百科的页面浏览量,深入了解新闻在世界各地的传播和趋势。首先,我们将从维基百科的页面浏览量中提取数据来创建一个新的仪表板。坚持到最后,看看在 Data Studio 中使用 Vega 和 Vega Lite 实现高度可配置的可视化的秘密。

一些有趣的趋势你可以很快想象出来:

  • 中文的冠状病毒比其他语言早 9 天开始流行。
  • 日语和韩语是最先赶上的语言。
  • 在过去的几天里,意大利、挪威和波斯的反弹最为强劲。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

一些有趣的趋势你可以很快想象出来

在开头的图表中,您可以找到每种语言的冠状病毒页面的浏览量。下一个图表显示了当前新闻之后的维基百科文章的相同情况:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

主题2019–20 _ 武汉 _ 冠状病毒 _ 爆发的每种语言的维基百科浏览量。请看冠状病毒的开场图。

在 BigQuery 中从维基数据中获取所有冠状病毒页面标题:

CREATE OR REPLACE TABLE `temp.wikidata_coronavirus`
AS
SELECT REGEXP_EXTRACT(site, '(..)wiki') language, encoded value
FROM `bigquery-public-data.wikipedia.wikidata`, UNNEST(sitelinks)
WHERE numeric_id = 290805
AND LENGTH(site)=6# 1.9 sec elapsed, 9.7 MB processed

修正了西班牙语、荷兰语、斯洛伐克语页面的重命名:

INSERT INTO `temp.wikidata_coronavirus` 
SELECT 'es', 'Orthocoronavirinae';
INSERT INTO `temp.wikidata_coronavirus`
SELECT 'nl', 'Coronavirussen'
INSERT INTO `temp.wikidata_coronavirus`
SELECT 'sk', 'Coronavírus'

为 Data Studio 创建一个表:

CREATE OR REPLACE TABLE 
  `fh-bigquery.wikipedia_extracts.wikipedia_corona_views`
AS
WITH sumviews AS (
  SELECT * REPLACE(IF(date=CURRENT_DATE(), views*24/hours_day, views) AS views) # last fractional day correction
  FROM (
    SELECT SUM(views) views, SUBSTR(a.wiki, 0, 2) wiki, title,  DATE(datehour) date, COUNT(DISTINCT datehour) hours_day
    FROM `bigquery-public-data.wikipedia.pageviews_20*`  a 
    JOIN `temp.wikidata_coronavirus` b
    ON ((a.title=b.value AND SUBSTR(a.wiki, 0, 2)=b.language))
    WHERE DATE(a.datehour) > '2019-12-28'
    GROUP BY wiki, title, date
  )
)
SELECT *, (FORMAT('%s - %s', language, title)) wiki_title
FROM (
  SELECT * 
    REPLACE((SELECT STRING_AGG(DISTINCT title ORDER BY title) FROM sumviews WHERE a.wiki=wiki) AS title)
    , (views)/ (MAX(views) OVER(PARTITION BY wiki)) ratio
    , (SELECT language FROM `wikipedia_extracts.wiki_langs` WHERE a.wiki=wiki ) language
  FROM sumviews a
  WHERE wiki IN (SELECT wiki FROM (SELECT wiki, SUM(views) FROM sumviews GROUP BY 1 ORDER BY 2 DESC LIMIT 28 ))
)# (13.4 sec elapsed, 411.3 GB processed)

优化待办事项:这 411.3 GB 可以进行大量优化——尤其是如果在持续的基础上,我只是加载增量小时的视图,而不是重新处理整个事情。

玩弄结果

包含结果的整个表只有 1,239 行,您可以在 BigQuery 上找到它:

SELECT *
FROM `fh-bigquery.wikipedia_extracts.wikipedia_corona_views`

新加入 BigQuery?从这里开始

数据工作室

你见过这样的图表:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

典型的数据工作室面积图

但是这有多酷?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Data Studio 中连接到 BigQuery 的 Vega Lite 可视化

秘密:我们现在可以在 Data Studio 中使用 Vega & Vega lite 图表。有了这个社区可视化,我只需要为 Vega lite 提供一个配置:

{
   "$schema":"[https://vega.github.io/schema/vega-lite/v3.json](https://vega.github.io/schema/vega-lite/v3.json)",
   "mark":"rect",
   "config":{
      "axisRight":{
         "labelFontSize":15
      }
   },
   "encoding":{
      "y":{
         "title":"",
         "field":"$dimension0",
         "type":"nominal",
         "axis":{
            "labelAlign":"left",
            "orient":"right"
         }
      },
      "x":{
         "field":"$dimension1",
         "type":"ordinal"
      },
      "color":{
         "field":"$metric0",
         "type":"quantitative",
         "legend":{
            "orient":"left"
         },
         "scale":{
            "type":"sqrt",
            "range":[
               "#fffaff",
               "blue"
            ]
         }
      }
   }
}

不同的尝试:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在 Data Studio 中使用 Vega Lite

想要更多吗?

敬请关注交互式仪表盘和更多更新。请给我留下您的意见和任何建议或更正。

感谢:Denny vrandei,感谢维基数据和对这篇文章的最后修正。马克·科恩在 BigQuery 中为维基数据和维基百科数据建立了一个可靠的管道。更多详情请见下文。

冠状病毒和 Meetup RSVPs

哦,我也在看世界各地的 Meetup RSVPs 是如何受到影响的。看看这个:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

参加 Meetup.com 技术会议的回复数量下降(与去年相比)

我是 Felipe Hoffa,谷歌云的开发者倡导者。在 @felipehoffa 上关注我,在medium.com/@hoffa上找到我以前的帖子,在reddit.com/r/bigquery上找到所有关于 BigQuery 的帖子。

[## 没有信用卡的 BigQuery:发现、学习和分享

如果你在注册 BigQuery 时遇到了困难,不用担心——现在注册和开始使用比以往任何时候都容易

towardsdatascience.com](/bigquery-without-a-credit-card-discover-learn-and-share-199e08d4a064) [## 不等式:如何用 SQL、BigQuery 和 Data Studio 绘制洛伦兹曲线

所有维基百科页面中排名前 0.1%的页面获得了 25%的浏览量。最底层的 99%只获得了 42%的浏览量。还有……

towardsdatascience.com](/inequality-how-to-draw-a-lorenz-curve-with-sql-bigquery-and-data-studio-c70824b0748d) [## 互动:2019 年维基百科页面排行榜

维基媒体公布了他们 2019 年最受欢迎的页面——但我们能更深入吗?当然,这里有 BigQuery 和…

towardsdatascience.com](/interactive-the-top-2019-wikipedia-pages-d3b96335b6ae) [## 优化 BigQuery:聚集您的表

BigQuery 刚刚宣布了对表进行集群的能力——我将在这里进行描述。如果您正在寻找大量的…

medium.com](https://medium.com/google-cloud/bigquery-optimized-cluster-your-tables-65e2f684594b)

冠状病毒让远程工作成为新常态

原文:https://towardsdatascience.com/coronavirus-made-remote-work-the-new-normal-c190267074c2?source=collection_archive---------51-----------------------

在家工作时如何保持高效和精神健康

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由 Grovemade 在 Unsplash 上拍摄

关于远程工作的争论已经酝酿了几十年。冠状病毒,以及曲线扁平化的必要性,导致了它的爆发。

21 世纪的技术工具早就让工作不受地点限制成为可能,但直到现在,员工仍然被束缚在自己的小隔间里。

人们已经清楚地认识到拉平曲线势在必行,办公室纷纷关闭,远程工作的未来已经在全球展开。社交距离揭示了一个强大的技术基础设施,使远程工作不仅可能,而且有效。

随着远程工作成为现状,学会在同一个空间生活和工作需要实践。三年来,我一直作为一名研究&分析顾问远程工作。通过许多陷阱,我学会了如何保持高效和精神健康。

虽然遥远的生活方式不是未来的灵丹妙药,但它是今天的必需品,就像照顾彼此的必要性一样,即使我们分开了。

TL;博士适应这种新的工作方式需要努力。考虑以下四种在家工作时保持高效和精神健康的基本行为:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由 kate.sade 在 Unsplash 上拍摄

  1. 在家中指定办公空间

当远程工作的新鲜感逐渐消失时,一个令人惊讶的认识是常见的:事实上,错过一个小隔间是可能的。

诞生于效率至上的 20 世纪哲学——泰勒主义,小隔间已经演变成了办公室工作被鄙视的象征。但是为什么呢?这个小隔间的设计是为了增强员工的注意力和生产力,它确实起作用了。

然而,20 世纪的家被设计成完全支持不同的目标:在漫长的一天工作后加油、聚会和充电。

这种差异很重要。考虑你的办公室和你的家的功能空间——并划分两者——是远程生活的第一个关键点。

在你专注于工作本身之前,先专注于在家里定义一个工作空间。

在家工作的两个方面对你的工作和幸福有着巨大的影响:物理空间中的环境因素和完成工作的工具和技术。

先说环境因素。

首先要做的是创造一个你将工作的物理空间,这个空间不同于你下班后放松的空间。无论是书桌还是茶几,最重要的不是你的工作空间的大小,而是为工作腾出空间的感觉。

越来越多的研究表明,工作场所的环境因素,如光线、空气和温度,对健康和生产力有着重大影响。2019 年由 View 进行的一项关于工作场所健康的研究发现,三分之一的人报告称,由于温度、照明、空气质量和声学等环境因素,他们每天损失超过 60 分钟的工作时间。这相当于一周损失了惊人的 8 小时工作时间。

考虑一下你家里的这些相同的环境因素,以及为了改善你的精神健康和工作效率需要做些什么。例如:

  • 把你的工作空间建在窗户附近——自然光与情绪健康密切相关
  • 打开窗户,选择新鲜空气而不是空调
  • 创造一种与自然的联系——在附近摆放植物/花卉,或者悬挂喜爱的风景照片

当你考虑了家中的环境因素并创造了工作空间后,转向你将如何工作:你有哪些工具和技术来完成对你的工作效率有积极影响的工作?

我们谈论的不仅仅是一台笔记本电脑。相反,考虑一下什么样的工具可以增强和扩展你的工作方式,使工作更加高效和舒适。例如:

  • 厨房里堆满了健康零食,可以缓解下午的疲劳
  • 扩展您工作站的外接显示器
  • 无线耳机,让您可以不受电话束缚地接听电话
  • 在 PPT 或 Excel 中处理大项目时,可以快速点击的计算机鼠标
  • 复印室里一度近在咫尺的基本办公用品

确定你工作场所需要的工具不会一蹴而就,但是投资于你自己和你的工作方式将会给你的生产力和精神健康带来好处。

2。风雨无阻,出门

根据康奈尔大学 Alan Hedge 的 2018 年研究,美国人 90%的时间都在室内度过。没有通勤,远程工作人员几乎 100%的时间都呆在室内。

意向性对于远程工作和保持理智至关重要。在街区周围进行户外散步来清理你的大脑和释放压力的好处在科学中得到很好的证明,在历史中得到很好的证明。

这是一个常识性的建议,但需要有意识的努力。让自己对白天外出负责。例如:

  • 在你的日历上划出时间,就像你开会、外出散步一样
  • 在你通常通勤的时候,早上和晚上散步

3。常规会让你保持理智

远程工作通常意味着独自工作。围绕社交互动的办公室日常事务不再打断一天的工作。

常规很难建立,但很容易停止。想想这个:一天中 40%的人的行为是习惯的结果,而不是决定,查尔斯·杜希格在他的畅销书《习惯的力量》中强调了这一事实。习惯不费吹灰之力就能形成,但常规需要训练。想想看:当一个人的日常生活被打乱时,坏习惯往往会卷土重来。从办公室转移到远程工作就是一个典型的例子。

如果没有办公室生活的外部激励因素——阻止坏习惯的日常事务很容易被转移。在家里,办公室环境特有的外在激励因素突然消失了。突然间,内在激励因素成为让你保持高效的驱动力,但更重要的是,强大的精神和身体健康。

根据西北医学的研究,当日常事务减少时,生产力和睡眠也会减少,导致压力、不良饮食和嗜睡。

在家工作时,日常事务的重要性并不是一个启示性的发现,但它值得一提,因为日常事务很容易丢失并痛苦地重新建立。

当你适应了偏远的生活,很容易沉溺于新发现的自由,导致日常事务瓦解。从关注基础开始。例如:

  • 每天在同一时间醒来
  • 在打开笔记本电脑开始工作之前,养成阅读、写作或锻炼的习惯
  • 决定什么时候关闭你的笔记本电脑,停止晚上的工作
  • 每天抽出时间给家人/朋友打电话——养成每天和某人保持私人联系的习惯

对于远程工作者来说,日常工作对心理健康至关重要,尤其是在这种长时间的社会距离中。

4。运用你的创造力将人们聚集在一起——事实上

当团队远离时,建立一种规范虚拟协作和学习的文化应该是当务之急。

当员工远离办公室时,非正式的饮水机谈话和办公室小房间里的随意交谈就消失了。清晰的沟通、协作和学习渠道,团队和组织必须保持文化的首要地位。

随着我们适应远程工作的节奏,员工有了前所未有的机会成为领导者,带领团队进行协作和学习。

考虑创造性的方法来利用现有的业务运营工具/技术,在您的团队或员工中创建连接点。例如:

  • 促成一次虚拟午餐并学习 Zoom
  • 举办一次创新挑战,邀请那些远程工作时不经常联系的同事
  • 使用 Slack 之类的交流工具来促进虚拟的、特别的学习——例如,分享一篇文章和促进讨论

创造机会,从远方一起学习,一起成长。

在这个虚拟的景观中照顾好自己和彼此。

在家工作时,锻炼“肌肉”来保持高效和精神健康需要练习。在这种新常态下的繁荣取决于你如何塑造你的习惯和环境。

在新冠肺炎危机中,我们更有理由关注自己在偏远地区的成功:当你照顾好自己,你就能更好地照顾你所在社区的人。

冠状病毒爆发—问大数据的 5 个问题

原文:https://towardsdatascience.com/coronavirus-outbreak-5-questions-to-ask-big-data-3550794d2fe9?source=collection_archive---------30-----------------------

让我们利用大数据来探索人类历史上最大的隔离规模

2020 年 2 月 18 日更新

这篇文章最初写于 1 月 31 日。自那以后,疫情的规模导致了加强措施来控制传播。比如我住的住宅小区,最近就采取了封闭式管理。我得到了下面的进入许可。任何没有登记的人都不允许进入。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我在北京居住小区的入园证背面

中国许多城市的情况都很相似。在一些地方,居民购买食品杂货有配额,例如每两天一次。在北京和许多其他城市,从外地来的人需要遵守强制性的 14 天隔离期。学校已经关闭,活动取消,大多数公司都采取在家工作的政策。

的确,我们正在经历人类历史上最大规模的隔离!如果你不相信,看看下面的图表,它显示了中国前 30 大交通枢纽(机场和火车站)的总交通流量的同比比较。红色是今年,绿色是去年。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

中国前 30 大交通枢纽的交通流量指数,同比

让我们希望这些强有力的措施能有效地阻止这种高传染性疾病的传播。

当我写这篇文章时,钻石公主号游轮上的冠状病毒病例总数已跃升至 454 例,凸显了隔离的必要性。

[## 日本钻石公主号游轮确认 99 例新型冠状病毒病例

停靠在…的受灾的钻石公主号游轮上又有 99 人被检测出冠状病毒阳性

www.theguardian.com](https://www.theguardian.com/world/2020/feb/17/coronavirus-japan-braces-for-hundreds-more-cases-as-another-china-city-locked-down)

原文章发表于 2020 年 2 月 1 日

百度地图在全球每天被使用 1200 亿次。基于如此多的地理空间数据,百度推出了这个令人惊叹的数据可视化平台,叫做百度千玺(意为迁移)。再加上搜索引擎的数据,百度真的很了解正在发生的事情。

冠状病毒的爆发以及随之而来的武汉和周边城市的封锁给人们的生活带来了严重的干扰。基于大数据,百度能为我们提供哪些答案?

  1. 武汉现在的交通状况如何?

在武汉,衡量交通活动的高速公路交通堵塞距离与去年同期相比下降了 99.7%(红线对绿线)。封锁是真实存在的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

交通堵塞距离(公里)同比对比—武汉

相比之下,北京的图表“仅仅”下降了大约 50%。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

北京交通堵塞距离(公里)同比对比

传统上,现在是人们回到大城市开始工作的时候了。由于我们仍处于这场大规模疫情中,交通流量有可能进一步传播病毒。

中国各地政府要么延长了公共假期,要么要求雇主安排员工在家工作。今年会是中国的“在家工作”年吗?

2。封锁前后武汉的交通怎么样?

1 月 23 日,武汉从上午 10 点开始暂停所有公共交通,包括所有公交、地铁和轮渡线路。此外,所有出境的火车和航班都停止了。

从下面的图表中我们可以看到,交通流量在 1 月 23 日宣布后急剧下降,但交通管制直到 1 月 26 日才完全有效。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

武汉对外交通流量指数(黄色=今年,白色=去年)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

武汉入境交通流量指数(黄色=今年,白色=去年)

同样,现在应该是春节后入境游进入武汉市的高峰时间,但今年有很大不同。

3。对于那些在封锁前离开武汉的人,他们去了哪里?

下图显示他们中的大多数去了湖北省内的其他城市。毫不奇怪,武汉地震后几天,几乎整个湖北省都被封锁了。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1 月 22 日来自武汉的出境交通流量

作为参考,这里有一张来自维基百科的关于交通禁令影响的表格:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

4。从百度搜索关键词趋势可以学到什么?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

蓝色:冠状病毒,绿色:武汉,橙色:口罩

“冠状病毒”(绿线)和“武汉”(绿线)的搜索量在 1 月 19 日左右开始上升。

1 月 23 日,交通禁令宣布后,“武汉”的搜索量再次大幅增加。

搜索“口罩”(橙色线)的数量增长缓慢,这是因为人们广泛宣传戴口罩是避免病毒传播的最佳措施之一。

5。“武汉”这个关键词在封锁前后的语境是怎样的?

百度“需求图”展示了相关关键词随时间的相关性。随着时间的变化,关键字的上下文也在变化。这让我们了解了当时人们的想法。

在 12 月,“武汉”往往与中国其他城市(如长沙、成都)或武汉境内最受欢迎的旅游目的地(如武汉著名的早餐巷户部巷)相关联,表明与旅游相关的兴趣。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

两周后,“SARS”这个词第一次出现在图表中,可能是因为当时人们不知道如何称呼这种新病毒,怀疑 SARS 爆发了。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

快进到 1 月下旬,一些最相关的关键词是“武汉封锁”、“武汉肺炎”,甚至“华南海鲜市场”,这是大多数人在爆发早期接触冠状病毒的地方。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在大数据时代,我们可以使用像百度这样的数据提供商来了解人们的出行模式和搜索模式。所有这些在 2003 年 SARS 爆发时都不存在。额外的数据使人们能够在这一次做出更明智的决定,并在对抗病毒爆发的斗争中发挥关键作用。

文章中使用的工具

百度千禧是百度提供的一款大数据产品,可以让你实时监控春节期间中国各地的人口迁移情况。

[## 百度迁徙-百度地图慧眼

百度迁徙,通过将定位可视化直观呈现国内春运期间人口迁徙情况。

qianxi.baidu.com](https://qianxi.baidu.com/)

百度关键词搜索和需求图可以在百度索引中找到。

[## 百度指数

百度指数是以百度海量网民行为数据为基础的数据分享平台。在这里,你可以研究关键词搜索趋势、洞察网民兴趣和需求、监测舆情动向、定位受众特征。

index.baidu.com](https://index.baidu.com/)

这两种工具都是纯粹的点击式。只需点击链接,选择您想要监控的相关城市。遗憾的是,这些工具没有英文版。如果你需要在这方面做一些研究,但不懂中文,也许找一个懂中文的人来协助你是个好主意。

冠状病毒、心理学和数据科学

原文:https://towardsdatascience.com/coronavirus-psychology-and-data-science-7302835e1517?source=collection_archive---------34-----------------------

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:Shutterstock

尽管这是一场全球性的灾难,但这场疫情应该是一次令人大开眼界的经历,让我们重新安排我们的优先事项。

编者按: 走向数据科学 是一份以数据科学和机器学习研究为主的中型刊物。我们不是健康专家或流行病学家,本文的观点不应被解释为专业建议。想了解更多关于疫情冠状病毒的信息,可以点击 这里

作为一个年轻的成年人,我不太关心病毒会如何影响我自己的健康。然而,我非常担心我会成为图表中的另一个节点,并间接加剧处于危险中的人群的痛苦。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:shutterstock

作为一个商务人士,我也有点关心自己的事业。我认为,科技行业将会像其他行业一样遭受损失,但这也是在医疗保健、远程医疗、电子学习等领域创造价值的大好机会。与个人健康问题类似,我也有点担心自己(和我的企业),但非常担心全球的整体经济健康。受影响最大的领域可能是酒店业和旅游业,但许多企业将不得不创新和蓬勃发展才能生存。数百万人可能会失去工作或毕生积蓄,这对许多人来说是一个巨大的风险。

作为一名科学家,我对疫情爆发期间收集的所有数据以及所有自然发生的行为实验很感兴趣。它有巨大的成本。成千上万的生命和数百万的企业将会破产。然而,如果我们足够聪明,我们将会对疾病爆发、整个社会以及我们如何防止未来的大流行产生我们现在看到的灾难性影响有更多的了解。

作为技术建设者,我们可以一起解决我们这个时代最困难的问题。

作为一个物种,我们被赋予了我们这个时代最大的责任。我们正面临着巨大的挑战,但我们获得的见解和数据将使我们振作起来,不仅应对当前的疫情,而且应对未来的疫情。

是时候站出来了。是时候开始我们的游戏了。学习的时间到了。

心理学

本文的目标是探索在疾病爆发期间变得明显的心理状况和偏见。

先说最值得注意的问题。

卫生纸大批量购买

好吧,这是一个非常重要的项目,但大量购买是必要的吗?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

资料来源:cnn.com

卫生纸的抢购超越了国界和文化。里面有东西。我们的恐慌按钮与我们储存大量卫生纸的欲望是密不可分的。

在我看来,这里有三个主要特征:

首先,我们的进化心理是由一种控制偏差的幻觉支配的。如果政府告诉我们呆在家里,洗手,这听起来并不是什么过分的要求。

但是,人们自然希望采取主动和步骤来感到更安全,因为情况正在威胁他们的生命。不幸的是,市场营销给了我们一种消费安全的错觉,从而助长了这种特质。这种感觉是与生俱来的,隐含在我们的生存中,不会轻易消失。通过储备,我们觉得我们正在采取措施做好准备。

控制偏差的错觉源于我们认为我们可以控制或影响结果。虽然这可以在大规模上进行,数百万人都采取同样的行动,但不幸的是,一个人无法影响宏观性质的结果。这种偏见已被证明会影响健康、投资、商业等。这与众所周知的“赌徒谬误”密切相关,参与者被证明当他们要求高数字时掷得更用力,当他们要求低数字时掷得更柔和。掷骰子的速度对掷出的数字没有影响,但是受试者仍然相信他们可以根据掷骰子的方式来控制结果。

与这种偏差相关,我们还可以识别出零风险偏差。通过完全消除一个风险,我们减少了我们面临的认知压力,使降低风险的选择更有吸引力。有些人会选择降低这种风险,即使讽刺的是,不消除这种风险会更大程度地降低他们面临的总风险。储存卫生纸是一种相对便宜的行为,它告诉我们的反馈机制我们正在采取行动。

第二,有证据表明,对感染的恐惧和厌恶之间有很强的相关性。卫生纸是一种消除我们不希望看到的浪费的工具。厌恶就像一个警报机制,警告你避免某种形式的污染。

最后,我们需要调查羊群行为。人类是群居动物,我们有随大流的倾向也就不足为奇了。从进化的角度来看,这通过确保数量安全来保护我们。这在许多场景中都被观察到:体育赛事、股市泡沫和宗教集会。卫生纸的有趣之处在于它又大又笨重,当其他人在买它,或者货架空了的时候,你很容易就能注意到。随着货架开始空空如也,卫生纸开始获得越来越多的人的心理价值。如果你问购物者批量购买卫生纸的动机,他们会说其他人都在这么做。

总之,大量购买卫生纸可以归因于不同偏见和行为的集合:控制的幻觉,零风险偏见,我们对恐惧和厌恶的原始反应,以及从众行为。

我们能从意大利的反应中学到什么

意大利对疫情的反应是对世界其他地区的一个警告。随着指数复利的增长,它很快失去了控制。此外,它还成为将疾病传播到欧洲和美洲的最大枢纽。

意大利公民有责任吗?意大利政府是大反派吗?号码

从生物学上讲,我们的大脑是一台模式检测机器。我们所知道的最复杂的。我们大部分时间都在探测模式。我们甚至可以发现不存在的模式(*模式识别偏差 *),就像在一片烤面包上看到基督的形象。这次疫情给我们的生活带来了前所未有的局面。

虽然社会和政府都在努力寻找最好的应对方式,但不幸的是,他们没有一个参照点。他们无法审视过去的情况,评估哪些可行,哪些不可行。新冠肺炎疫情及其影响的社会与过去的其他事件有着根本的不同,比如 1918 年的流感、艾滋病毒爆发、非典、中东呼吸综合征或鼠疫。

现实与任何已知模式都不匹配。我们的社会和政府被迫随机应变,用他们所拥有的科学知识,不幸地低估了问题。

一线希望是,通过对这次疫情的研究,我们将能够开发适当的模型和工具,为下一次疫情做好更好的准备。

平坦的曲线和超级碗休息室休息

曲线变平意味着我们试图控制传播,以避免每个人同时患病,并给我们的医疗保健系统带来无法承受的压力。不同的措施可以而且已经被采用,比如隔离和社会距离。《华盛顿邮报》为此撰写了一篇颇有见地的文章,包括下面的模拟器

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:who.int 和华盛顿邮报(公共领域)。爆发模拟器

如果我们不采取适当的措施会发生什么,一个很好的例子就是在超级碗期间发生的现象。

在那一天,许多人喝大量的啤酒,这是一种利尿剂,会让你频繁地去洗手间。这导致大量人员在中场休息时离开,给我们城市的卫生基础设施带来巨大压力。当很多人在看下半场的时候,环卫工人正在地下工作,修复倒塌的管道、卫生下水道和其他问题。如果我们不尽一切努力使曲线变平,这种情况很有可能发生。

为了帮助集体解决这场危机,我们必须审视自己的行为。

良好的第一步是意识到这三个认知偏差。

  • 常态偏差导致我们的大脑假设事情会像以前一样“正常”进行,并根据我们的短期经验评估近期的未来。正因为如此,我们可能低估了我们的生活方式受到严重破坏的可能性和影响。
  • 计划谬误导致我们在试图提前计划时过于乐观。苏格兰议会大厦的建设就是一个很好的例子。成本估计为 4,000 万英镑,但最终成本为 4.31 亿英镑。我们自然相信未来会按计划进行。这种心理盲点导致我们没有为突发事件和问题做好准备,包括可预测的和未知的未知。
  • 双曲线贴现偏差是我们倾向于优先考虑短期,低估中长期结果的重要性。由于我们作为一个社会需要评估新冠肺炎疫情的潜在长期影响,而不仅仅是短期影响,这一点现在尤其重要。

个人主义还是集体主义

在分析人类行为时,一个好的方法是回顾进化趋势,试图解释非理性或次优行为。有时候,对我们个人来说是好的,对社会来说却不是最好的,反之亦然。我们期待政府通过制定法律、规则、界限和条例,努力公平地权衡个人愿望和集体需求。社会是博弈论最好的例子。这一理论解释了代理人的选择的相互作用是如何产生与这些代理人的偏好(或效用)相关的结果的,而这些结果可能不是这些代理人所希望的。

不同的文化有重要的差异。个人主义文化鼓励人们把自己看作独立的人。相比之下,集体主义文化认可人们彼此高度关联的思想。个人主义文化强调自我表现和对个性的追求,而不是群体目标,而集体主义文化更喜欢维护社会和谐,而不是坚持个性。

有证据表明,除了文化因素,人类的行为还受到特定基因的影响,如 5-羟色胺转运体基因(SLC6A4),它调节 5-羟色胺能神经传递(5-HTT)。

文化和基因反应都不是巧合,它们是进化的结果。历史上和当代传染病(如疟疾、斑疹伤寒和麻风病)流行较严重的国家更有可能支持集体主义文化规范,这可能是因为集体主义规范可能具有抗病原体防御功能。

在恐惧的氛围中,可以理解的是,人们会自然地倾向于忘记社会的需求,并尽一切努力来获得安全感。如果他们觉得这不是对个人的威胁(例如,年轻和健康),这可能是库存过多(导致短缺)或成为污染图中的一个节点。

我们被进化训练成更个人主义而不是集体主义。然而,我们已经进化到足以认识到我们的个人行为可能是问题的一部分,相信科学,并为了更大的利益做出明智的决定。

数据科学

我们来分析一下各国是如何备战的。

他们创造军队、武器、技术和工具。他们模拟战斗情况,紧急情况,战斗场景以及如何应对各种不同的问题。他们有庞大的预算,后备部队,在和平时期,他们一遍又一遍地训练和模拟。

在医疗保健行业,大规模的模拟无法运行,通常是由于与大型实验和大规模准备相关的成本。因此,这让我们许多人措手不及,因为我们不知道如何周到有效地应对危机的具体想法。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:仪表板截图,系统科学与工程中心(CSSE)。公共领域。

然而,我们可以在未来采取行动。冠状病毒是一个改变世界的问题,我们必须从这次爆发中吸取教训,以便为下一次爆发做好准备。我们必须检查相关性,假设因果推理,产生洞察力,可视化,并建立下一代工具,让我们在游戏中领先一步。

有一些与疫情相关的数据集:

就我个人而言,我有许多问题可以通过简单地看一下这些数据来问。

  • 感染率和气候有什么关联?
  • 文化是如何影响它的?文化的哪些方面更有相关性?个人空间?
  • 病毒传播的主要途径是什么?
  • 怎样才能防止下一次感染的传播?我们可以使用机器学习从现有数据中学习吗?
  • 死亡率和其他因素有什么关联?
  • 死亡率高的国家发生了什么?我们可以假设其中一些诊断不足吗?
  • 医疗保健系统容量(即医生数量)和死亡率之间有什么关系。
  • 不同的措施如何影响病毒传播的方式?什么能更有效地控制病毒?

这个列表还可以继续下去。

回答这些问题是至关重要的,并且可以带来拯救生命的突破。这需要工作、合作、资金和技能。

下一次爆发可能会让很多人大吃一惊。

但是,如果我们能够有效地分析这次疫情,我们就可以解决,或者至少最小化我们这个时代的一些最大问题。

齐心协力,我们就能确保这种规模的疫情不再发生。

参考

查尔斯·霍尔姆。25 种认知偏差。揭开理性思维的神话(2015)。

马修·塞德。黑箱思维(2015)。

克里斯·哈德菲尔德。《宇航员在地球上的生活指南——太空之旅教会了我智慧、决心和做好一切准备》(2013)。

丹尼尔·卡内曼。《思考的快慢》(2011)。

华盛顿邮报。电晕模拟器。参考日期 2020 年 3 月 16 日。

哈里·特里安迪斯,米歇尔·盖尔范德。个人主义和集体主义理论(2012)。琼·焦英和凯瑟琳·d·布利金斯基。文化——个人主义-集体主义和血清素转运蛋白基因的基因共同进化(2019)。

焦虑相关性状与血清素转运蛋白基因调控区多态性的关联(1996)。

冠状病毒、远程医疗和种族:模拟现实世界的证据

原文:https://towardsdatascience.com/coronavirus-telemedicine-and-race-part-1-simulated-real-world-evidence-9971f553194d?source=collection_archive---------52-----------------------

使用合成数据的因果推理教程(第 1 部分)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者的玻璃板照片。

我们会夸大我们的远程医疗应用程序的有效性,声称它将新型冠状病毒感染的风险降低了 16.9%——而事实上它只会将这种风险降低 3.1%。

考虑一个关于虚假关联的经典例子的适时的假设扭曲:最近,冰淇淋的销量一直在下降——凶杀案的数量也在下降。但这并不是因为吃冰淇淋会让人去杀人。这是因为一项社区范围的就地避难的命令被颁布,以防止一种新的传染性病原体的传播。这个令人困惑的因素降低了冰淇淋的销量和凶杀案的数量;因此产生了虚假的相关性。

在这个由两部分组成的教程中,我们将研究一个合成数据集,该数据集受到最近一个涉及新冠肺炎种族差异的医疗保健案例的启发(加格等人,2020奥布里,2020 年。(合成数据是模拟的,而不是真实的,通常是为了教授或学习分析工具而创建的数据。)我们将遵循典型的数据科学分析工作流程。

我们的分析目标将是帮助我们模拟世界中的公共卫生当局减少新型冠状病毒(“冠状病毒”)感染。我们相信我们的数字健康或远程医疗应用可以帮助预防新的感染;例如,通过促进健康的生活方式选择——特别是在社交距离和就地庇护时——来降低冠状病毒感染的风险。但是要做到这一点,我们需要一个无偏的或统计上一致的(即,更大样本的无偏性)估计,来估计我们将要进行的干预的真实效果。

我们将了解混杂因素如何使我们对假设的远程医疗干预的潜在效果的估计产生偏差。从我们的合成数据中出现的偏差如下所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在第 1 部分中,我们将分析合成的真实世界证据(RWE)数据。我们将开始了解为什么一般来说,陈述因果机制(例如,有向无环图)和控制所有混杂因素是不够的——假设我们观察了我们数据集中的所有混杂因素。为了估计干预的真正效果大小和方向,我们必须更进一步。这一步使用了总期望法则,这是一个我们实际上一直在使用的简单直观的概念,我们将在第二部分中回顾。

我们将在第二部分中通过分析来自一项合成随机对照试验(RCT)的数据得出结论,在该试验中,我们将应用随机分配给所有试验参与者的 50%。我们将学习如何使用总期望法则,通过 RWE 数据进行因果推断。(在 RWE 和 RCT 的数据集中,无论其他原因如何,该应用对感染风险的平均影响相同;也就是说,应用程序的使用与其他原因没有相互作用。)具体来说,我们将学习如何应用 g 公式(也称为“标准化”)和倾向得分加权来估计真实的总体或平均治疗效果 (ATE)。

在第 1 部分中,我们将分析一个具有三个人级变量的合成 RWE 数据集:infection状态、app使用情况和race(为简单起见,仅黑或白)。

  • 第 1 部分目标:尝试估算应用程序在感染中的使用率,但失败了。我们将 ATE 指定为感染风险的差异,或 风险差异(RD);具体来说,用户中的风险减去非用户中的风险。
  • 我们将学习:如何识别统计对比(如研发)和因果效应之间的差异。混淆了前者和后者,从而错误地估计了 ATE,这将对公共卫生产生深远的影响。

我们将以关键的洞察力来结束第一部分,如果我们错误地从相关性中推断出因果关系:

我们会夸大我们的远程医疗应用程序的有效性,声称它将新型冠状病毒感染的风险降低了 16.9%——而事实上它只会将这种风险降低 3.1%。

数据集特征

观察到的(即非随机化的)RWE 数据在表observational_rwe中。(用附录中的 R 代码生成这个。)

glimpse(observational_rwe)## Observations: 80,000
## Variables: 3
## $ race      <chr> "White", "White", "Black", "White", "White", "White", "Whit…
## $ app       <chr> "used app", "used app", "didn't use app", "used app", "used…
## $ infection <chr> "1\. infected", "0\. uninfected", "0\. uninfected", "0\. uninfe… 

每个观察值(即行)代表最初易感和未感染的独特个体。变量及其唯一值如下:

knitr::kable(apply(observational_rwe, 2, unique)) 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

让我们将数据随机分为 80%的训练集用于探索性数据分析(EDA),20%的维持集用于拟合解释模型( Shmueli,2010 )进行最终验证/确认分析。

holdout_proportion <- 0.2
observational_rwe <- observational_rwe %>% dplyr::mutate(rownum = row_number())
set.seed(2004120322)
observational_rwe_training <- observational_rwe %>% dplyr::sample_frac(1 - holdout_proportion)
observational_rwe_holdout <- observational_rwe %>% dplyr::filter(!(rownum %**in**%
  observational_rwe_training$rownum))

*# clean up: remove rownum*
observational_rwe$rownum <- NULL
observational_rwe_training$rownum <- NULL
observational_rwe_holdout$rownum <- NULL 

有 64000 个训练观察和 16000 个保持观察。

探索性数据分析

单变量关联

相关矩阵

dummy_rwe_training <- observational_rwe_training %>%
  dplyr::mutate(
    race = (race == "White"),
    app = (app == "used app"),
    infection = (infection == "1\. infected")
  )
knitr::kable(round(cor(dummy_rwe_training), 4)) 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

corrplot::corrplot.mixed(cor(dummy_rwe_training))

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

即使在这个简单的相关矩阵中,也已经有了未来挑战的迹象。你能认出他们吗?

按应用使用分类的感染(边际模型)

让我们检查一下我们的主要利益关系。

observational_rwe_training %>%
  ggplot2::ggplot(ggplot2::aes(x = app, fill = infection)) +
  ggplot2::theme_classic() +
  ggplot2::geom_bar(position = "dodge") +
  ggplot2::ggtitle("Infections by App Usage") 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

df_rwe_training <- with(
  observational_rwe_training,
  cbind(
    table(app, infection),
    prop.table(table(app, infection), margin = 1) # row proportions
  )
)
knitr::kable(df_rwe_training) # row proportions

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

应用程序用户的感染率(即经验或观察到的感染风险)较低:只有 9.1%的用户感染了病毒,而非用户的感染率为 27.7%。经验 RD 是 0.091 - 0.277 = -0.186,这是一个统计意义上的边际量,因为它没有考虑(即“被边缘化”)任何其他变量。除了潜在的干预(这里是应用程序使用)之外,还考虑了其他变量(这里是种族)的模型被称为条件模型。

out_fisher_rwe_training <- with(
  observational_rwe_training,
  fisher.test(app, infection)
)
out_fisher_rwe_training## 
##  Fisher's Exact Test for Count Data
## 
## data:  app and infection
## p-value < 2.2e-16
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##  0.2493633 0.2749802
## sample estimates:
## odds ratio 
##  0.2618449 

此外,有强有力的统计证据(即,统计显著性)表明感染因应用使用而异(p_EDA << 0.001). Here, the estimated odds of infection for app users were only 0.262 (i.e., roughly a quarter) that of non-users, with an EDA 95% confidence interval (CI) of (0.249, 0.275).

  • 统计显著性并不意味着重要性:这一强有力的统计证据并不令人惊讶。RWE 数据的典型样本越大,对结果均值中逐渐变小的差异提供的估计就越好(即,对于任何给定的具有有限均值和方差的结果分布集)。这与这些差异的领域(例如,科学、临床、研究、商业)有用性无关。
  • 相关性并不意味着因果关系:这一发现并不意味着使用应用程序会降低感染风险。像这样的统计发现不能暗示因果关系。统计结果是因果关系的暗示,而不是相反。但是它应该促使我们进一步调查,并且应该与随后的发现和假说一起评估,以帮助解释这种联系是如何产生的。

按种族分列的感染情况

种族似乎在某种程度上与感染有关。

observational_rwe_training %>%
  ggplot2::ggplot(ggplot2::aes(x = race, fill = infection)) +
  ggplot2::theme_classic() +
  ggplot2::geom_bar(position = "dodge") +
  ggplot2::ggtitle("Infections by Race")

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

df_rwe_training_race_infection <- with(
  observational_rwe_training,
  cbind(
    table(race, infection),
    prop.table(table(race, infection), margin = 1) # row proportions
  )
)
knitr::kable(df_rwe_training_race_infection) # row proportions

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

out_fisher_rwe_training_race_infection <- with(
  observational_rwe_training,
  fisher.test(race, infection)
)
out_fisher_rwe_training_race_infection## 
##  Fisher's Exact Test for Count Data
## 
## data:  race and infection
## p-value < 2.2e-16
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##  0.1147125 0.1272759
## sample estimates:
## odds ratio 
##  0.1208232 

非裔美国人比白人更有可能被感染(按种族划分的应用使用情况)

重要的是,种族似乎与应用程序的使用密切相关。

非裔美国人使用该应用的可能性低于白人(p_EDA << 0.001): Only 27.2% of African Americans used the app, compared to 88.2% of Whites. Put differently, the estimated odds of using the app for Whites were 20.001 (95% CI_EDA: 18.956, 21.108) times that of African Americans.

observational_rwe_training %>%
  ggplot2::ggplot(ggplot2::aes(x = race, fill = app)) +
  ggplot2::theme_classic() +
  ggplot2::geom_bar(position = "dodge") +
  ggplot2::ggtitle("App Usage by Race")

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

df_rwe_training_race_app <- with(
  observational_rwe_training,
  cbind(
    table(race, app),
    prop.table(table(race, app), margin = 1) # row proportions
  )
)
knitr::kable(df_rwe_training_race_app) # row proportions

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

out_fisher_rwe_training_race_app <- with(
  observational_rwe_training,
  fisher.test(race, app)
)
out_fisher_rwe_training_race_app## 
##  Fisher's Exact Test for Count Data
## 
## data:  race and app
## p-value < 2.2e-16
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##  18.95585 21.10802
## sample estimates:
## odds ratio 
##   20.00128

This finding is plausible also due to structural inequality. For example, suppose our app was only available on iPhone. African Americans are less likely than Whites to own iPhones (e.g., page 7 of Smith,2013 ),这将限制他们对该应用的访问。一般来说,非裔美国人也更难获得远程医疗服务。

解释性建模的含义

这些发现暗示了我们应该如何估计 ATE?种族会影响应用程序的使用和感染风险吗?如果是这样的话,种族将会是一个混杂因素——这意味着我们早先的边际研发估计不足以作为 ate 的估计。(我们将在稍后的第二部分中看到如何实现,以及为什么会这样。)

变量选择

预测建模

假设我们决定拟合一个预测模型。我们认为这可能有助于我们决定是否应该在我们的最终解释模型中包括种族(除了应用程序的使用)。我们将用 logit link(即对应于逻辑回归)拟合 10 重交叉验证的岭正则化广义线性模型(GLM)。

我们将选择app而不管它的系数大小,因为它是我们潜在的干预。不过,我们注意到,自动搜索按系数大小排序的重要预测指标,会使race的排名高于app。我们想知道这样的程序怎么可能从我们所做的其他分析中排除系数较小的真正原因——这些原因对于推荐行动方案很重要。

set.seed(2004110254)
glmnet_rwe_training <- glmnet::cv.glmnet(
  x = model.matrix(
    object = infection ~ app + race,
    data = observational_rwe_training
  ),
  y = observational_rwe_training$infection,
  family = "binomial",
  type.measure = "auc",
  alpha = 0 # ridge: https://web.stanford.edu/~hastie/glmnet/glmnet_alpha.html
)
glmnet_rwe_training$glmnet_preds <- as.numeric(
  predict(
    object = glmnet_rwe_training,
    newx = model.matrix(
      object = infection ~ app + race,
      data = observational_rwe_training
    ),
    s = glmnet_rwe_training$lambda.min,
    type = "response"
  )
)
glmnet_ROC_rwe_training <- pROC::roc(
  response = observational_rwe_training$infection,
  predictor = glmnet_rwe_training$glmnet_preds
)
coef_glmnet_rwe_training <- coef(glmnet_rwe_training)
plot(glmnet_ROC_rwe_training) 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

glmnet_ROC_rwe_training$auc # training set cross-validated AUC## Area under the curve: 0.6954coef_glmnet_rwe_training## 4 x 1 sparse Matrix of class "dgCMatrix"
##                        1
## (Intercept) -1.900132655
## (Intercept)  .          
## appused app -0.001874018
## raceWhite   -0.003428336 

重要的是,请注意受试者操作特征(ROC)曲线(AUC)下的面积并不是特别大,即使存在 app 使用对感染风险的真实比率。我们使用模拟参数和模型(见附录)将 ate 计算为-0.031。(我们将在第二部分中推导出这个计算方法。)这个 ATE 的大小适中;因此 AUC 不大。

**“解释还是预测?”**这些发现强调了( Shmueli,2010 )中关于预测和解释的不同目标、程序和属性的要点。

解释性建模的含义

由于其相对较大的预测系数,我们决定在最终解释模型中保留race,即使在控制了app之后。

提出解释模型

解释性模型是由因果模型和统计模型组成的领域假设。

我们将使用我们的拒绝数据来验证或确认统计模型。

  • 我们无法仅使用我们的 RWE 数据(培训或抵制)来验证或确认因果模型。我们需要进行一项实验或 RCT 来做这件事,或者从科学文献中提供支持我们提出的因果模型的证据。
  • 我们可以——也应该!—清楚地陈述我们假设为真的因果模型。这是科学交流的一个关键部分:它帮助读者在采取进一步行动之前正确地解释和评估我们的发现。
  • 为了用期望的统计能力和证据水平来拟合解释性统计模型,我们还需要指定样本大小。

因果模型

根据我们的发现,我们提出以下因果模型,形式化为有向无环图(DAG) ( Pearl,2009 ):

应用使用→感染

  1. 种族→感染
  2. 比赛→应用程序使用
  3. 在这里,种族混淆了应用程序使用对感染的影响。
DiagrammeR::grViz("
digraph causal {

  # Nodes
  node [shape = plaintext]
  Z [label = 'Race']
  X [label = 'App \n Usage']
  Y [label = 'Infection']

  # Edges
  edge [color = black,
        arrowhead = vee]
  rankdir = LR
  X -> Y
  Z -> X
  Z -> Y

  # Graph
  graph [overlap = true]
}")

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

统计模型和样本量

根据我们的 DAG,将感染风险建模为种族和应用程序使用的函数是有意义的。我们提出以下逻辑模型。

应用程序用户的估计感染几率为非用户的 exp(-0.343)= 0.709(95% CI _ EDA:0.666,0.756)倍(不考虑种族)。按种族划分的应用程序使用的相应估计感染风险如下:

glm_rwe_training <- glm(
  data = observational_rwe_training,
  formula = as.factor(infection) ~ app + race,
  family = "binomial"
)
summary(glm_rwe_training)$coefficients##               Estimate Std. Error   z value     Pr(>|z|)
## (Intercept) -0.2280908 0.02278461 -10.01074 1.367266e-23
## appused app -0.3432987 0.03249127 -10.56588 4.289439e-26
## raceWhite   -1.9073638 0.03260492 -58.49926 0.000000e+00 

不使用该应用程序的非洲裔美国人为 0.443

risk_didnt_use_app_black_training <- plogis(coef(glm_rwe_training) %*% c(1, 0, 0))
risk_used_app_black_training <- plogis(coef(glm_rwe_training) %*% c(1, 1, 0))
risk_didnt_use_app_white_training <- plogis(coef(glm_rwe_training) %*% c(1, 0, 1))
risk_used_app_white_training <- plogis(coef(glm_rwe_training) %*% c(1, 1, 1)) 
  • 使用该应用程序的非洲裔美国人为 0.361
  • 不使用该应用程序的白人为 0.106
  • 使用该应用程序的白人为 0.077
  • 为了在α= 0.05 的总体统计证据水平下用 80%的统计功效估计非裔美国人的 RD,所需的样本量为:

每个应用使用群体中的 556 名非裔美国人(即用户或非用户)

# https://cran.r-project.org/web/packages/pwr/vignettes/pwr-vignette.html
sample_size_black <- ceiling(
  pwr::pwr.2p.test(
    h = pwr::ES.h(p1 = risk_used_app_black_training, p2 = risk_didnt_use_app_black_training),
    sig.level = 0.025,
    power = .80,
    alternative = "less"
  )$n
)
sample_size_white <- ceiling(
  pwr::pwr.2p.test(
    h = pwr::ES.h(p1 = risk_used_app_white_training, p2 = risk_didnt_use_app_white_training),
    sig.level = 0.025,
    power = .80,
    alternative = "less"
  )$n
) 
  • 每个应用程序使用组中有 1617 名白人
  • 请注意,这些数字是单边假设测试,即在每个种族群体中,应用程序用户的感染风险低于非用户*。他们通过要求两个单独的统计假设检验中的每一个都满足统计证据的α= 0.025 水平来调整多重检验(即多重比较、多重性)。*

解释性建模(验证/确认)

回想一下,我们的维持数据集有 16000 个观察值。

按应用使用分类的感染(边际模型)

让我们首先检查我们的主要利益关系,就像我们对训练数据所做的那样。

和以前一样,应用程序用户的感染率较低:只有 9%的用户受到感染,而非用户的感染率为 26%。维持经验 RD 为-0.169,类似于训练经验 RD 为-0.186。

observational_rwe_holdout %>%
  ggplot2::ggplot(ggplot2::aes(x = app, fill = infection)) +
  ggplot2::theme_classic() +
  ggplot2::geom_bar(position = "dodge") +
  ggplot2::ggtitle("Infections by App Usage")

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

df_rwe_holdout <- with(
  observational_rwe_holdout,
  cbind(
    table(app, infection),
    prop.table(table(app, infection), margin = 1) # row proportions
  )
)
knitr::kable(df_rwe_holdout) # row proportions 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

解释性模型

检查样本量

对于每个应用程序的使用和种族组合,我们有足够大的样本来满足我们的统计能力和证据要求吗?

是的:每个应用程序使用群体中至少有 556 名非裔美国人,同样至少有 1617 名白人。

observational_rwe_holdout %>%
  ggplot2::ggplot(ggplot2::aes(x = race, fill = app)) +
  ggplot2::theme_classic() +
  ggplot2::geom_bar(position = "dodge") +
  ggplot2::ggtitle("App Usage by Race")

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

df_rwe_holdout_race_app <- with(
  observational_rwe_holdout,
  cbind(
    table(race, app),
    prop.table(table(race, app), margin = 1) # row proportions
  )
)
knitr::kable(df_rwe_holdout_race_app) # row proportions 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

拟合统计模型

基于我们提出的因果和统计模型,我们符合以下逻辑模型。

在对种族进行控制后,有很好的统计证据(p < 0.001)表明应用程序使用和感染之间的关联。这证实了我们的训练数据发现。也有非常有力的统计证据(p <<< 0.001)表明种族与感染风险有关。具体来说,白人感染的估计几率是非洲裔美国人的 exp(-1.934) = 0.145 倍(95% CI: 0.127,0.165)(不考虑应用程序的使用)。

glm_rwe_holdout <- glm(
  data = observational_rwe_holdout,
  formula = as.factor(infection) ~ app + race,
  family = "binomial"
)
summary(glm_rwe_holdout)$coefficients##               Estimate Std. Error    z value      Pr(>|z|)
## (Intercept) -0.3220348 0.04608849  -6.987316  2.801938e-12
## appused app -0.2316567 0.06680031  -3.467899  5.245447e-04
## raceWhite   -1.9344662 0.06675370 -28.979159 1.204740e-184 

应用程序用户感染的估计几率为非用户(不考虑种族)的 exp(-0.232) = 0.793 倍(95% CI: 0.696,0.905)。按种族划分的应用程序使用的相应估计感染风险如下:

不使用该应用程序的非洲裔美国人为 0.42

risk_didnt_use_app_black_holdout <- plogis(coef(glm_rwe_holdout) %*% c(1, 0, 0))
risk_used_app_black_holdout <- plogis(coef(glm_rwe_holdout) %*% c(1, 1, 0))
risk_didnt_use_app_white_holdout <- plogis(coef(glm_rwe_holdout) %*% c(1, 0, 1))
risk_used_app_white_holdout <- plogis(coef(glm_rwe_holdout) %*% c(1, 1, 1)) 
  • 使用该应用程序的非洲裔美国人为 0.365
  • 不使用该应用程序的白人为 0.095
  • 使用该应用程序的白人为 0.077
  • 按种族估计的 RDs 为:

非裔美国人-0.055 (95%置信区间:-0.083,-0.025)

rwe_holdout_rd_black <- risk_used_app_black_holdout - risk_didnt_use_app_black_holdout
rwe_holdout_rd_white <- risk_used_app_white_holdout - risk_didnt_use_app_white_holdout
confint_glm_rwe_holdout <- confint(glm_rwe_holdout) # 95% CIs: odds ratios of infection
rwe_holdout_rd_ci_black <- c(
  plogis(confint_glm_rwe_holdout[, 1] %*% c(1, 1, 0)) - plogis(confint_glm_rwe_holdout[, 1] %*% c(1, 0, 0)),
  plogis(confint_glm_rwe_holdout[, 2] %*% c(1, 1, 0)) - plogis(confint_glm_rwe_holdout[, 2] %*% c(1, 0, 0))
)
rwe_holdout_rd_ci_white <- c(
  plogis(confint_glm_rwe_holdout[, 1] %*% c(1, 1, 1)) - plogis(confint_glm_rwe_holdout[, 1] %*% c(1, 0, 1)),
  plogis(confint_glm_rwe_holdout[, 2] %*% c(1, 1, 1)) - plogis(confint_glm_rwe_holdout[, 2] %*% c(1, 0, 1))
) 
  • -0.018 (95%置信区间:-0.022,-0.01)
  • 结论和公共卫生影响

我们如何估计-0.031 的真实 ate?

尝试 1:抵制经验风险差异

我们可以简单地使用-0.169(即一个边际量)的维持经验 RD 作为我们的 ATE 估计值吗?

在我们的合成数据中,种族通过设计混淆了应用程序使用对感染风险的假定影响。将维持经验 RD 误认为 ate 估计值的真实偏差正好是-0.169 - -0.031 = -0.138。

这突出了一个关键点:

假设我们把这个经验 RD 误认为是对 ate 的估计。我们不知道的是, 在我们的模拟世界中 我们会夸大我们的远程医疗应用的有效性,声称它降低了 16.9%的新型冠状病毒感染风险——而事实上它只会降低 3.1%的风险。

一些公共卫生影响包括:

卫生当局将浪费宝贵的几周时间来部署我们的应用程序并评估其有效性。在此期间,本可以实施更有希望的解决方案。更多的人将成为新感染者,否则他们可能会幸免于难。

  • 医院、政府机构和企业在制定计划时会错误地预计感染率会下降 16.9%。
  • 尝试二:(未完待续……)

我们可以用我们的解释模型来估计 ate 吗?毕竟,我们把种族作为一个混杂因素。我们的种族特异性 RDs 估计值是否为-0.031 的真实 ate 估计值?不幸的是,答案是否定的:ATE 是所有其他变量的平均风险差*。(这是一个边际量,不是有条件的量。)*

那么,我们能否将 ate 估计为这些估计 RDs 的加权平均值?幸运的是,是的:g 公式确实做到了这一点,我们将在第 2 部分中学习。我们将应用 g 公式来估计 ATE——以及另一种流行的方法,称为倾向得分加权。

但首先,我们将了解 RCT 如何让我们以统计一致或无偏的方式估计 ate。

参考

Aubrey A. CDC 医院的数据指出了新冠肺炎案例中的种族差异。NPR。美国东部时间 2020 年 4 月 8 日下午 2:43。NPR . org/sections/coronavirus-live-updates/2020/04/08/830030932/CDC-hospital-data-point-to-racial-disparity-in-新冠肺炎-cases

  • Garg S 年实验室确认的冠状病毒疾病住院患者的住院率和特征-COVID-NET,14 个州,2020 年 3 月 1 日至 30 日。MMWR。发病率和死亡率周报。2020;69.cdc.gov/mmwr/volumes/69/wr/mm6915e3.htm
  • 埃尔南·马,罗宾斯·JM。根据流行病学数据估计因果效应。流行病学与社区健康杂志。2006 年 7 月 1 日;60(7):578–86.jech.bmj.com/content/60/7/578.short
  • 平野 K,Imbens GW。使用倾向评分加权估计因果效应:对右心导管插入术数据的应用。健康服务和结果研究方法。2001 年 12 月 1 日;2(3–4):259–78.https://link.springer.com/article/10.1023/A:1020371312283
  • 通过倾向评分评估因果治疗效果的分层和加权:一项比较研究。医学统计学。2004 年 10 月 15 日;23(19):2937–60.【https://onlinelibrary.wiley.com/doi/abs/10.1002/sim.1903
  • 珀尔 j .因果关系。剑桥大学出版社;2009 年 9 月 14 日。bayes.cs.ucla.edu/BOOK-2K/
  • 持续暴露期死亡率研究中因果推断的新方法——健康工人幸存者效应控制的应用。数学建模。1986 年 1 月 1 日;7(9–12):1393–512.sciencedirect.com/science/article/pii/0270025586900886
  • 罗森鲍姆公关,鲁宾 DB。倾向评分在因果效应观察研究中的核心作用。Biometrika。1983 年 4 月 1 日;70(1):41–55.academic.oup.com/biomet/article/70/1/41/240879
  • 智能手机的所有权-2013 年更新。DC 华盛顿:皮尤研究中心;2013 年 6 月 5 日。boletines.prisadigital.com/PIP_Smartphone_adoption_2013.pdf
  • 解释还是预测?。统计科学。2010;25(3):289–310.projecteuclid.org/euclid.ss/1294167961
  • 附录

RWE 模拟参数和数据生成模型

特征分布

种族:根据美国人口普查,白人的概率被设定为 Pr(Z= 1)=π_ Z= 0.8560091。

结果模型

部分因果模型

种族和应用程序的使用都会影响感染风险。部分 DAG 是:

应用使用(X) →感染(Y)

  1. 种族(Z) →感染(Y)
  2. 这是不全面的,因为我们还没有具体说明应用程序的使用和种族是如何关联的。
DiagrammeR::grViz("
digraph causal {

  # Nodes
  node [shape = plaintext]
  X [label = 'App \n Usage \n (X)']
  Z [label = 'Race \n (Z)']
  Y [label = 'Infection \n (Y)']

  # Edges
  edge [color = black,
        arrowhead = vee]
  rankdir = LR
  X -> Y
  Z -> Y

  # Graph
  graph [overlap = true]
}") 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

统计模型

应用程序用户(X=1)的感染风险低于非用户(X=0)。

  • 由于结构性不平等(例如,更好的医疗服务、更高的社会经济地位、更少的潜在健康状况),白人(Z=1)的感染风险低于非裔美国人(Z=0)。
  • 这些统计关系由逻辑模型描述

其中β_ 0 =-0.2381882,β_ X =-0.3,β_ Z =-1.9469256。因此,给定种族和应用程序使用的感染概率为

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

特别是,感染风险是:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

对于不使用该应用程序的非裔美国人,Pr(Y=1|X=0,Z=0) = 0.441

  • 使用该应用程序的非裔美国人的 Pr(Y=1|X=1,Z=0) = 0.369
  • 对于不使用该应用程序的白人,Pr(Y=1|X=0,Z=1) = 0.101
  • 对于使用该应用程序的白人,Pr(Y=1|X=1,Z=1) = 0.077
  • 我选择这些参数值来反映截至 2020 年 4 月 10 日的已知情况,正如最近一个涉及新冠肺炎种族差异的医疗保健案例中所报告的那样( Garg 等人,2020奥布里,2020 )和这篇华盛顿邮报的文章。模拟中仿真的表是:

倾向模型:应用使用

a <- round((1 - prInfectionGivenBlack) * prBlack, 3)
b <- round(prBlackGivenInfection * prInfection, 3)
c <- round((1 - prInfectionGivenWhite) * prWhite, 3)
d <- round(prWhiteGivenInfection * prInfection, 3)
knitr::kable(
  dplyr::tribble(
    ~Race, ~Uninfected, ~Infected, ~`Row Total`,
    "Black", a, b, a + b,
    "White", c, d, c + d,
    "Column Total", a + c, b + d, a + b + c + d
  )
) 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

部分因果模型

种族影响应用使用。例如,假设我们的应用程序只能在 iPhone 上使用,而非裔美国人比白人更不可能拥有 iPhone(例如, Smith,2013 第 7 页)。此外,假设非裔美国人很难获得远程医疗服务,因此往往不太了解这类应用程序。

也就是说,部分 DAG 是:

比赛(Z) →应用程序使用(X)

  1. 统计模型
DiagrammeR::grViz("
digraph causal {

  # Nodes
  node [shape = plaintext]
  Z [label = 'Race \n (Z)']
  X [label = 'App \n Usage \n (X)']

  # Edges
  edge [color = black,
        arrowhead = vee]
  rankdir = LR
  Z -> X

  # Graph
  graph [overlap = true]
}")

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

白人比非裔美国人更有可能使用这款应用。这种统计关系由逻辑模型描述

其中α_ 0 =-1,α_ Z = 3。因此,给定种族使用该应用的概率为

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

特别是:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Pr(X=1|Z=0) x 100 = 26.9%的非洲裔美国人使用该应用程序

  1. Pr(X=1|Z=1) x 100 = 88.1%的白人使用该应用程序
  2. 因果模型

完整的 DAG 是:

应用使用(X) →感染(Y)

  1. 种族(Z) →感染(Y)
  2. 比赛(Z) →应用程序使用(X)
  3. RWE 模拟 R 代码
DiagrammeR::grViz("
digraph causal {

  # Nodes
  node [shape = plaintext]
  X [label = 'App \n Usage \n (X)']
  Z [label = 'Race \n (Z)']
  Y [label = 'Infection \n (Y)']

  # Edges
  edge [color = black,
        arrowhead = vee]
  rankdir = LR
  X -> Y
  Z -> Y
  Z -> X

  # Graph
  graph [overlap = true]
}")

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

关于作者

##### Set simulation parameters

### Preliminaries
random_seed <- 2004101447
sample_size_observational <- 80000

### Feature distribution
piZ <- 0.755 / (0.755 + 0.127) # race (based on U.S. Census)

### Outcome model

# beta0 and betaZ are derived from:
#   https://www.cdc.gov/mmwr/volumes/69/wr/mm6915e3.htm
#   https://www.npr.org/sections/coronavirus-live-updates/2020/04/08/830030932/cdc-hospital-data-point-to-racial-disparity-in-covid-19-cases
#   https://www.washingtonpost.com/news/powerpost/paloma/the-health-202/2020/04/09/the-health-202-los-angeles-is-racing-to-discover-the-true-coronavirus-infection-rate/5e8de70588e0fa101a75e13d/

prInfection <- 0.15
prBlack <- 1 - piZ
prWhite <- piZ
prBlackGivenInfection <- 33 / (33 + 45)
prWhiteGivenInfection <- 1 - prBlackGivenInfection
prInfectionGivenBlack <- prBlackGivenInfection * prInfection / prBlack
prInfectionGivenWhite <- prWhiteGivenInfection * prInfection / prWhite

beta0 <- log(prInfectionGivenBlack / (1 - prInfectionGivenBlack)) # baseline: infection risk for African Americans who don't use app
betaX <- -0.3
betaZ <- log(prInfectionGivenWhite / (1 - prInfectionGivenWhite)) - beta0 # average influence of being White on infection risk

### Propensity model: app usage
alpha0_observational <- -1 # observational real-world evidence: baseline probability of using app for African Americans
alphaZ_observational <- 3 # observational real-world evidence: average influence of being White on probability of using app

##### Generate data.
set.seed(random_seed)
observational_rwe <- dplyr::tibble(
  race = rbinom(n = sample_size_observational, size = 1, prob = piZ),
  app = rbinom(n = sample_size_observational, size = 1, prob = plogis(alpha0_observational + alphaZ_observational * race)),
  infection = rbinom(n = sample_size_observational, size = 1, prob = plogis(beta0 + betaX * app + betaZ * race))
) %>%
  dplyr::mutate(
    race = ifelse(race == 1, "White", ifelse(race == 0, "Black", NA)),
    app = ifelse(app == 1, "used app", ifelse(app == 0, "didn't use app", NA)),
    infection = ifelse(infection == 1, "1\. infected", ifelse(infection == 0, "0\. uninfected", NA))
  )

Daza 博士是一名生物统计学家和健康数据科学家,而不是流行病学家,他为个性化(n-of-1)数字健康开发因果推断方法。| ericjdaza.com🇵🇭🇺🇸@埃里克森 linkedin.com/in/ericjdaza|statsof1.org@ stats of@ fsbiostats

版权 2020 埃里克·j·达扎和 Stats-1。保留所有权利。

职位也可在https://rpubs.com/ericjdaza/599497获得。

编者注: 走向数据科学 是一份以研究数据科学和机器学习为主的中型刊物。我们不是健康专家或流行病学家,本文的观点不应被解释为专业建议。想了解更多关于疫情冠状病毒的信息,可以点击 这里

Note from the editors:Towards Data Science is a Medium publication primarily based on the study of data science and machine learning. We are not health professionals or epidemiologists, and the opinions of this article should not be interpreted as professional advice. To learn more about the coronavirus pandemic, you can click here.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值