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

原文:TowardsDataScience Blog

协议:CC BY-NC-SA 4.0

新冠肺炎爆发:口罩推特分析

原文:https://towardsdatascience.com/covid-19-outbreak-tweet-analysis-on-face-masks-27ef5db199dd?source=collection_archive---------20-----------------------

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

2020 年 2 月 28 日,加利福尼亚州奥林达的一家真值五金店的招牌上写着防护面具售罄。(约翰·G·马英美资源集团/美国环境保护署-埃菲社/Shutterstock)

别买口罩了!在美国报道第二例新冠肺炎死亡一天后,卫生官员继续恳求美国人停止恐慌购物模式。虽然疾病控制和预防中心(C.D.C .)不建议健康人戴口罩以避免感染,但中国当局鼓励人们在面对新冠肺炎时戴口罩。这种对比源于西方人和东方人不同的传统和习惯。在美国最近的口罩价格欺诈背后,普通人对戴口罩的态度引发了我的好奇。他们在网上聊些什么,整体情绪如何?他们的言论有没有网络效应?在下面的帖子中,我将通过进行推文分析来研究最近的口罩短缺问题。

目标

这个项目有两个主要目标:

  1. 了解人们对流行偶像口罩的态度
  2. 看看人们的推文是否有网络效应,找出热门话题

在方法论方面,我将使用数据挖掘技术、情感分析和网络分析来实现上述两个目标。

数据理解

通过一个 Twitter 开发者账户,我从网站上提取了 1200 条包含关键词“面具”的推文。如下所示,原始数据有 16 列和 1,200 行。第一列包含 tweet 的内容,其他列描述参与度、时间和用户 ID 等信息。

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

表 1。部分原始数据

数据清理

如图 1 所示,很难分析原始杂乱的语料库。通过使用 R 中的 NLP 包,我从语料库中删除了标点、数字、停用词、URL 和空格。此外,由于推文是使用关键字“mask”提取的,我更关心的是与其一起出现的单词,而不是它本身。因此,我创建了一个字典,包括不必要的单词,如“面具”和“面具”,并从文本中清除。

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

图一。部分原创推文

了解文本挖掘的复杂性也很重要。一个词可以有多种意思。面膜也可以和护肤之类的话题有关,和我的学业无关。下一步我会解决这个问题。

数据探索

数据可视化让我们有了一些初步的了解。

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

图表 1。频率术语

不出所料,人们的推文集中在新冠肺炎疫情上。像“需要”、“重要”、“计划”这样的词让我们看到了他们的态度。他们还谈到了当前市场的供需不平衡。值得注意的是,右边有两个奇怪的术语,“布伦内尔”和“电影”这是一个关于克里斯·布伦内尔写的一部叫 M.A.S.K .的即将上映的电影的话题。通过下面的单词云,我看到了更多不必要的单词,如“通宵”

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

图 2。术语的词云

现在不相关的单词会直观地出现。我回去删除了所有这些推文,继续处理剩下的 1127 条推文。

情感分析

每个字背后都有情感。R 中的“syuzhet”包有助于在文本中捕捉人们的情绪。

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

图表 2。面具推文的情感评分

上述情节表明,推文更多地与预期和信任有关。人们在推特上确实有一些负面情绪。条形图显示,大约 30%的人在网上表达过恐惧,大约 50%的人表现出负面情绪。但总的来说,推特上的人们对流行偶像面具持乐观态度。

网络分析

虽然情感分析有助于了解个人的态度,但网络分析可以识别社交平台上的关系。在推文分析中,每个词都是一个顶点;顶点的度数表明了它与其他词的联系。例如,我们可以从下面的例子中看出,“冠状病毒”通常与“get”一起出现。’

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

图 3。一起出现的术语

从下面的直方图来看,右偏度表示大多数推文的度数值较小。右边的尾巴上也有一些极端值,意味着一些术语与其他术语有密切的联系。

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

图表 3。节点度直方图

那些流行的术语是什么?下面的网络图提供了一个更清晰的外观。为了避免混乱的显示,我只包含了频率超过 30 的术语。

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

图 4。术语可视化

关联术语是那些在 Twitter 上一起出现的术语。“冠状病毒”这个词位于网络图的中心,与所有其他术语相关。然后我根据边的介数将所有的单词聚集在一起。

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

图 5。基于边介数的聚类

介数表示一个节点位于其他节点的测地线路径之间的频率。这三组主要是关于正在发生的流行病、口罩的重要性和口罩的使用。

在看到术语之间的关系后,我继续讨论网络对推文的影响。

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

图 6。带有 tweets 的顶点

上面的图显示了推文的分布。我们可以看到很多推文没有连接(稀疏区域的离散点)。由于高参与度的推文更令人感兴趣,我删除了那些连接度较低的推文,得到了一个更详细的网络图,如下所示。

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

图 7。一个详细的推特网络

上面的数字代表原始数据中 tweets 的 ID。这两个密集区域的推文最常被点赞、转发和评论。然后,我从圈出的区域中随机挑选了一些推文,看看人们在 Twitter 上谈论的是什么。

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

图 8。Twitter 上参与度较高的精选推文

由于这些推文在网上引发了最多的讨论,我们现在知道了人们最关心的问题:

  1. 他们不确定谁需要戴口罩来降低感染风险。
  2. 他们对最初的旅行计划犹豫不决。
  3. 他们关注新冠肺炎预防政策的变化。
  4. 他们提醒出现症状的人采取行动。
  5. 口罩的抢购模式还在继续。

部署

关键问题是“那又怎样”尽管文本挖掘是计算机科学的一个相对较新的领域,但它已经逐渐被应用于风险管理和客户服务等领域。新冠肺炎疫情刚刚在美国爆发。此时,文本挖掘技术有两个主要部署。

  1. 零售商和供应商可以了解人们随着时间的推移而改变的态度,从而相应地调整库存和生产计划。
  2. 当局可以知道人们的担忧和不确定性,给出明确的方向,并制定有益于人民的新政策。

最后,我的学习有两个改进点。首先,“syuzhet”软件包的一个主要问题是它没有适当考虑负面因素,这可能会对敏感性分析产生一些影响。其次,提取的推文数量可以更多,以捕捉在线全貌。

基于使用 AutomaticAI 的常规血液检查的新冠肺炎患者筛选和风险评估

原文:https://towardsdatascience.com/covid-19-patient-filtering-and-risk-estimation-based-on-regular-blood-tests-using-automaticai-e583c7d56e61?source=collection_archive---------31-----------------------

创造一种可能的人工智能解决方案来帮助医生对抗新冠肺炎

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

图片由Fernando zhimaicela通过 Pixabay 拍摄

问题的背景

大自然再次证明了它的力量,证明了即使在我们的文明世界里,我们也不是大自然的主人,但我们是大自然的一部分。

冠状病毒疾病于 2019 年 12 月被发现,我们仍在努力,我们不知道如何确切地对抗它,尽管有所有的计算能力,所有的技术发明和全世界所有梦想殖民火星或在月球上争夺土地的聪明人,我们仍然没有任何针对这种显然新病毒的解毒剂。

我认为,我们应该脚踏实地,寻找更有用的解决方案,帮助我们拯救我们的世界,而不是做殖民火星或从月球上开采矿物的梦。寻找新的可居住的行星并离开地球不是一个解决方案,但这只是一种懦夫的生存行为。我们有很多更实际的问题需要解决,比如饥饿、污染、全球变暖,现在还有新冠肺炎。我们应该集中精力帮助我们的人民,帮助那些活在当下、现在需要帮助的人。从局部开始,如果你甚至不能帮助你自己或你的家人,不要急于改变整个世界。

在这些艰难的日子里,有许多当地英雄,他们尽最大努力抗击新冠肺炎,帮助医生的日常工作,尽可能挽救更多的生命,他们提供免费服务,如为老人购物,运送货物,甚至缝制自制的口罩。我们应该感谢他们在这些危险的日子里所做的努力。

我想强调一个来自 Cluj-Napoca 的开发者团队展示的利他主义的特殊故事。这是一家初创公司的故事,一家名为 Spectro 的小公司。Life ,一家致力于通过使用结合人工智能的物联网解决方案来帮助糖尿病患者的公司。

即使这是一个收入很少的初创公司,他们也很快将他们的糖尿病监测解决方案变成了一个新冠肺炎监测应用程序,帮助医生全天候远程监测感染者。该应用程序完全免费,此外他们向买不起这些小玩意的人提供免费的传感器和智能手表。实际上,他们掏空了自己的口袋来帮助我们,帮助抗击疫情。他们是真正的生活英雄,我们应该以他们为榜样,每个人都可以成为英雄,每个人都可以帮助,英雄主义是一种选择而不是一种特权。你可以在 国际新闻发布 和他们的 主页 上找到更多关于这个项目的信息。

为了有助于对抗冠状病毒,在这篇文章中,我想介绍一种利用人工智能对抗新冠肺炎的可能方法。这只是一个想法,一个起点,而不是最终的解决方案,但它可以进一步发展,以创建一个更可靠的解决方案。

使用人工智能进行新冠肺炎风险评估和患者筛选

为了控制冠状病毒的传播,识别已经被这种新型病毒感染的人是非常重要的。为了检测这种病毒,金标准是 rRT-PCR (逆转录聚合酶链反应)检测。但是有一个问题,这种测试是费时费力的手工过程,而且供应量非常少。所以问题是,我们能不能想出一种替代的方法来过滤掉健康的人,并评估感染的风险这种方法减少了所需的新冠肺炎检测的次数。此外,我们希望创建一个自动过滤算法,,这样医生就不会浪费时间来评估和选择需要进一步测试和评估的患者。

在接下来的章节中,我们将介绍一种基于常规血液检测结果的初步患者过滤算法。为了选择最佳匹配的人工智能模型并调整其超参数,我们使用了 自动

自动 是一种通用算法,可用于任何类型的分类或预测问题,它会根据输入数据自动调整自身并选择最佳匹配算法。通过将该算法与一些预处理以及可能的一些特征提取步骤相结合,我们可以以相当高的分数(准确度、精确度、召回率等)解决几乎任何种类的分类(或回归)问题。).

其类似于 Auto-SklearnAuto-Weka ,主要区别在于 AutomaticAI 使用 群体智能 结合模拟退火 来寻找最佳匹配模型并尽快调整其超参数。

使用pip install automatica命令,可以从 安装 PyPi 库。算法源代码可以在这里 找到

提议的解决方案管道

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

数据集

这个 [数据集](http://This dataset contains anonymized data from patients seen atthe Hospital Israelita Albert Einstein, at S ̃ao Paulo, Brazil. Alldata were anonymized following the best international prac-tices and recommendations. All clinical data were standardizedto have a mean of zero and a unit standard deviation. Dateshave been omitted and the information on the patient’s sex hasbeen coded.) 包含来自巴西圣保罗的以色列阿尔伯特爱因斯坦医院(Israelita Albert Einstein Hospital)的匿名数据。所有数据均按照国际最佳做法和建议匿名化。所有临床数据均标准化为平均值零和单位标准偏差。日期被省略,关于患者性别的信息被编码。

它包含大约 5000 多名患者的数据,每个患者有 100 多个特征。特征之间包含常规血液检测结果,具有白细胞、Mematocrit、血红蛋白、血小板、平均血小板体积等属性。除常规血液检测值外,还包含呼吸道合胞病毒、流感嗜血杆菌、乙型流感病毒、鼻病毒/肠道病毒等病毒(不同于冠状病毒)的不同检测结果。

预处理

此数据集的唯一问题是,它包含大量缺失数据。因此,第一个预处理步骤是删除血液测试完全缺失的所有行。有多个列与我们的问题不相关,因此我们也将删除不相关的列。此外,将仅保留缺失数据不超过 70%的列。

得到的数据集非常不平衡,有 500 多个负面示例,只有少数正面示例,如下图所示:

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

为了处理这个问题,我们使用了 XAI 的 库从 伦理 ML过采样。以 0.4 的速率运行过采样算法后,我们得到以下结果:

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

我们不想以更高的速率运行过采样,因为这将导致过拟合。

下一步是分离独立变量和因变量,因此要从要素中分离标签。由于 AutomaticAI 不能将字符串作为标签,我们将“正值”转换为 1,将“负值”转换为 0。

在运行自动算法之前,我们希望确保在训练数据中不再有缺失数据,因此我们再次运行数据,并用该特定特征的平均值填充所有缺失数据。

下一步是将数据分成训练集和测试集。

下一步是运行自动算法,为我们的数据找到最佳模型,并自动调整其超参数。

运行这个算法后,选择的模型是 RandomForestClassifier ,其f1-得分为 95% ,这确实是一个令人印象深刻的结果。

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

为了评估我们的模型,我们绘制了混淆矩阵。

由此产生的混淆矩阵可以在下图中看到。我们可以清楚地看到,结果非常好,与 213 个正确的结果相比,该模型只犯了 6 个错误。

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

除了分类结果(0 表示阴性,1 表示阳性)之外,该模型还返回一个介于 0 和 1 之间的值,该值表示分类结果的置信度。该置信值可用于风险评估。如果分类结果为阳性且置信度高,这意味着患者被冠状病毒感染的可能性高,因此需要进一步调查。如果结果是阴性,那么病人是健康的,所以我们没有必要在健康的病人身上浪费新冠肺炎测试。这可以减少所需的新冠肺炎测试的数量,帮助医生自动筛选出处于危险中并需要医疗护理的患者

解释结果

医疗领域需要高度的问责制,因此也需要透明度,这意味着我们需要能够解释机器决策、预测并证明它们的可靠性。

为了解释最佳模型的结果,即 RandomForestClassifier ,我们使用了特征重要性。可以使用 XAI 库计算特征重要性,如下所示:

这将生成如下图所示的图表:

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

正如我们所料最重要的特征是白细胞T3 或白细胞计数。白细胞数量高于或低于正常值可能表明潜在疾病。白细胞计数可以检测你体内隐藏的感染,并提醒医生未诊断的医疗状况。白细胞主要有五种类型:中性粒细胞淋巴细胞嗜酸性粒细胞单核细胞嗜碱性粒细胞**。因为高嗜碱性粒细胞与病毒、细菌或其他类型的感染无关,但它是甲状腺功能减退的常见迹象,所以在特征重要性图中,它显得非常低。高数量的中性粒细胞、淋巴细胞、单核细胞或嗜酸性粒细胞是病毒感染的常见迹象**,因此,正如我们所料,它们在图表中具有更高的重要性值。

第二个最重要的特征是血小板。血小板是在我们血液中循环的细胞,当它们识别受损的血管时会结合在一起。血小板过多是由感染或其他情况引起的。通常血小板计数结合平均血小板体积(MPV) 进行评估,这也是一个重要特征,如图所示。当血小板通常被抗体、感染或毒素破坏时,会出现低血小板计数和高 MPV。

即使患者出现气短、疲劳、高血压、意识模糊或呕吐等症状,如果肌酸水平较高,则是肾衰竭或糖尿病的迹象,因此不是冠状病毒引起的。这就是肌酸在特征重要性图中也有很高分数的原因(用于排除冠状病毒)。

其他特征如**直接胆红素、间接胆红素、**钾等。也被模型用于排除新冠肺炎感染,因此这些特征将降低冠状病毒感染的风险。

结论

在本文中,我们介绍了一种使用人工智能对新冠肺炎患者进行初步筛选和风险评估的可能解决方案。

最佳人工智能模型是由库自动选择的,通过使用一些预处理步骤,如处理缺失和不平衡数据,选择的模型获得了令人印象深刻的结果。****

为了增加该算法的可信度,我们使用了【XAI】库来使用特征重要性图解释结果**。**

**数据集完整代码**可以在下面的 git 资源库中找到: 新冠肺炎-患者-过滤-使用-自动化

感谢您阅读本文!如果你喜欢它,请在媒体上跟随我!谢谢大家!

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

****成为媒介上的作家:https://czakozoltan08.medium.com/membership

我真的很喜欢咖啡,因为它给我精力去写更多的文章。如果你喜欢这篇文章,那么你可以给我买杯咖啡来表达你的欣赏和支持!

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

新冠肺炎:人员层追溯

原文:https://towardsdatascience.com/covid-19-person-level-drill-down-86a14dbbd78b?source=collection_archive---------53-----------------------

对捷克共和国个人层面数据的深入分析

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

来源:( enriquelopezgarre )通过 pixabay (CC0)

介绍

主要有较大人群的累积新冠肺炎统计数据,例如国家一级的感染人数。

由于有价值,它很少告诉我们关于我们父母所属的年龄/性别群体,或我们伴侣的群体,或我们兄弟姐妹的年龄/性别的新冠肺炎情况。

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

鸣谢:丹·佩尔乔夫斯基, 捷克国家技术图书馆内景照片

让我们全面深入了解关于年龄和性别组的个人信息。

数据

我们将调查有关捷克新冠肺炎患者的数据,这些数据可在捷克卫生部 网页 获得。为了将新冠肺炎的情况放入人口统计背景中,我们将使用来自捷克统计局 网站 的数据。

请注意,关于阳性新冠肺炎病例的数据很可能偏向于不仅感染了新冠肺炎病毒,同时还出现了中度、重度或严重症状的人。我们还是说“*感染新冠肺炎/接触新冠肺炎”*而不是更精确但冗长的“感染新冠肺炎并有中等、严重或危急症状”。

第一部分.深入了解我们如何导入新冠肺炎

我们知道新冠肺炎不是起源于捷克共和国。让我们调查一下我们所知道的有关新冠肺炎输入病例的情况,从总体概述开始,然后深入到更详细的细节。

概述

每个暴露国家的输入性新冠肺炎病例总数是多少?

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

我们已经看到了进口病例来自的地方。现在让我们概述一下发生在什么时候。

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

好消息是,最近输入性新冠肺炎病例的绝对数量似乎有下降趋势。

暴露在哪个国家,有多少病人?

每个暴露国家的捷克患者人数,及时

让我们首先检查不同国家的累计计数。

为此,我创建了一个交互式可视化,可以通过 这个链接 访问。请随意探索各种细节,亲自体验可视化。

作为开胃菜,对于每个单独托管的交互式可视化,我将发布简短的 gif 和简短的评论。

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

在上面的 GIF 上,我们可以看到新冠肺炎是如何从意大利进口到捷克的。后来,全世界的捷克人都接触到了新冠肺炎。然而,意大利和位于意大利和捷克之间的奥地利仍然是主要的投资国。有趣的是,没有一个捷克病人在中国接触到这种病毒。

我们已经看到了每个国家的累计总数的演变。现在让我们检查每个暴露国家每周输入的新冠肺炎病例数。对于 GIF,我将重点关注欧洲。

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

再次,请随意通过 这个链接 来玩这个互动可视化。

放大到欧洲,我们可以看到,在疫情爆发的前几周,几乎所有输入性新冠肺炎病例都来自意大利。后来,虽然意大利仍然是主要的暴露源,但奥地利成为第二大病毒暴露源。后来,每周进口的大部分原产于奥地利。最后,进口数量下降了。这给人的印象几乎是,我们看到了一波从意大利到捷克的进口潮,奥地利是意大利和捷克之间的主要转运点。

在调查输入捷克共和国的新冠肺炎病例时,我们同时检查了“来自哪里、何时、有多少?”。然而,我们还没有分析病人的性别。现在让我们来关注一下。

什么性别的病人,什么时候?

及时输入新冠肺炎的患者中女性的比例

让我们来看看每周输入新冠肺炎的捷克男女患者的数量。

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

首先,通过每周汇总,我们可以更好地看到男性和女性输入病例总数的减少。让我们希望它保持这样。

第二,我们可以看到,在输入的新冠肺炎病例中,男性系统性地多于女性。它适用于所有年龄组吗?让我们深入到年龄/性别组。

不同性别患者的年龄?

让我们先来看看每个年龄段每个性别的输入病例总数。

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

有趣的是,20 多岁的男性和女性有相似的进口活动,女性实际上更活跃。然后,对于男性和女性来说,“进口活动”随着年龄的增长而下降,直到 40 岁,这种下降对女性来说尤其迅速。根据官方统计,捷克首次生育母亲的平均年龄为 29 岁(来源于捷克文)。继续到更高的年龄组,我们可以看到男女两性对应于 45 岁左右的局部分布模式。与 30 多岁的女性相比,40 多岁的女性输入了更多的新冠肺炎病例。然而,总体而言,40 多岁的男性是最活跃的输入群体。

暴露国家中最活跃的年龄/性别群体是否相同?让我们找出答案。

根据不同的接触国家,哪个年龄/性别组最活跃?

让我们创建单独的交互式可视化,一个针对女性,一个针对男性。两种可视化将共享相同的色标,以便我们可以在视觉上比较选定的年龄/性别组。人们可以通过将鼠标移动到可视化的相应框来检查来自任何国家/年龄/性别的病例的精确计数。

原始尺寸可视化可以在这里找到(女性)(男性)

我们可以看到,典型的患者年龄因国家而异。

例如,在联合王国,20 多岁的年轻人是男女输入病例中最大的年龄组。

在暴露于新冠肺炎病毒的捷克患者中,40 多岁、50 多岁和 60 多岁的人群数量最多,同性别的 60 多岁男性多于女性。

另一方面,与意大利病例相比,从奥地利输入的病例对应于更年轻的年龄组。

这些差异可能暗示了访问一个国家或另一个国家的主要原因(例如,学习相对于工作相对于家庭娱乐)。

在奥地利,我们可以看到男女年龄分布的差异。20 多岁的女性是在那里感染新冠肺炎病毒的女性中人数最多的年龄组。此外,就奥地利而言,这一年龄组的妇女多于男子。关于在奥地利接触到病毒的男性,30 多岁和 40 多岁的男性是捷克新冠肺炎进口商中最活跃的群体。在所有国家的所有年龄/性别群体中最活跃。

在上面的分析中,我们没有调查导入的时间。特定年龄/性别群体的进口活动是否会随着时间而变化?

哪个年龄/性别群体在特定日期最活跃?

很高兴看到最近所有年龄/性别群体的进口活动都在减少。

在其他观察结果中,人们可以注意到 60 多岁男性的输入病例在 3 月份有所增加,而对于 20 多岁或更年轻的男性,总的趋势正好相反。

我们首先看到了每个不同国家输入的新冠肺炎病例的年龄/性别统计,然后我们及时检查了每个年龄/性别的输入。现在让我们尝试结合这两种观点,及时检查每个国家输入病例的性别比例。

暴露在什么国家,什么性别,什么时候?

按暴露国家分列的输入新冠肺炎病毒的患者中女性的比例

让我们用我在这里主持的互动可视化来调查女性在新患者中的每周比例。

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

我们正在分析每周汇总。然而,有时我们只有一两个从某个国家传入的病例。然后,颜色告诉我们一个人的情况。更有意思的是检查每周病例数较多的主要“进口国”的可能趋势:意大利和奥地利。

义大利

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

似乎意大利出口的男性和女性的比例一直大致相同(可能除了三月的第二周和四月的第一周,那时男性略多)。我很好奇,在意大利接触到病毒的病人来自捷克的哪个地区。

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

奥地利

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

除了 3 月中旬和最后一周总共只有 8 个病例外,澳大利亚感染新冠肺炎的男性患者明显更多。那些可能主要是商务旅行吗?让我们也快速检查一下奥地利病例输入到了捷克的哪些地区。

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

最后,我们还将及时检查每个国家的平均进口年限。

暴露在哪个国家,多长时间,什么时候?

可以在 处找到 能够详细调查年龄信息的交互式可视化。

作为一个人们可能会好奇的例子,我想看看年轻人什么时候从英国带来了新冠肺炎。

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

有趣的是,在 3 月下半月和 4 月初,英国进口商的平均年龄下降了。简单地搜索了一下,在这个网页上,我看到了给学生留在家里的“基本建议”,日期是 3 月 24 日。这可能是对我们所看到的现象的一种可能的解释吗?

输入性新冠肺炎病例应该是我们的主要关注点吗?

要回答这个问题,让我们来看看每天输入性病例与本地病例的比例。

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

分析捷克共和国的总体情况很重要。

第二部分。捷克地区追溯

从捷克所有新冠肺炎患者的概况开始,深入分析谁、何时、何地

概述

让我们首先检查高层次的总结。新冠肺炎阳性患者每个性别的总体年龄分布是什么?

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

我们可以观察到女性和男性的分布有两个有趣的差异。

与同年龄组的男性相比,30 多岁的女性似乎较少感染新冠肺炎病毒。70 多岁的女性和男性的情况也是如此。此外,30 多岁的女性比 20 多岁的女性更少出现电晕。我们已经提到过,在捷克,第一次做母亲的平均年龄是 29 岁,所有生育的母亲的平均年龄是 31 岁。生孩子会导致更有效的自我隔离和社会距离,导致观察到的 30 多岁女性比例吗?我们稍后将检查年龄/性别组在总人口中的比例,然后得出结论。

我们已经检查了病人的性别。新冠肺炎患者在各地区的总体分布情况如何?

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

哦,布拉格…应该注意的是,根据官方统计,中央波希米亚地区的总人口略高于布拉格的人口。然而,布拉格的人口密度高出 30 多倍,这可能意味着社交距离明显更难。

我们已经分别看到了“谁”(年龄分布)和“哪里”(地区分布)。现在,让我们深入了解组合细节。

谁在哪里?

让我们使用交互式可视化来查看每个地区每个性别的新冠肺炎患者的年龄分布。

我们之前已经看到,与 20 多岁的女性相比,30 多岁的女性新冠肺炎病例较少。现在我们可以看到,在几个地区,同样的情况也适用于男性!

人们还可以注意到不同地区年龄分布的不同变化。例如,Olomouc 的女性分布向年轻女性转移,而úSTínad Labem 似乎向老年妇女略有转移。然而,根据官方人口统计,Olomouc 地区女性的平均年龄略高于úSTínad Labem 地区女性的平均年龄。众所周知,奥洛穆茨是一个“学生”城市,那里 1/5 的人口是来自全国各地的学生(捷克语中的引用)。这一观察将有助于我们对高危人群进行分析。

所以,我们一直在看“谁”和“哪里”,完全忽略了疫情的时间线。再加上“什么时候”的问题吧。进入我们的下钻!

何时何地?每个地区的新冠肺炎患者人数

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

交互可视化可以在 这里 找到。

最终的累积计数支配了早期的统计数据,使得很难直观地检查开始时发生了什么。对数色标将使我们能够更好地看到流行病的早期阶段,关于对数色标的更多细节可以查看相应的维基页面

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

我们可以看到疫情是如何在乌斯季和布拉格开始的,然后中部和东部地区成为新冠肺炎的领导者,直到我写这篇博客的时候,他们一直是“领导者”。

我们及时调查了每个地区的阳性病例总数。现在让我们及时检查每个年龄/性别组的新冠肺炎患者。

谁和什么时候?每天每个年龄/性别组的新新冠肺炎患者计数

详细的可视化使我们能够检查,例如,老年人群体。我们可以看到,在流行病开始时,60 多岁的男性是当时所有男性年龄组中每日新新冠肺炎病例数最高的人群之一。我们知道,捷克政府很早就实施了保护老年人的额外措施。从数据中我们可以看到,对于 60 岁以上的人来说,新患者的日增长率并没有像年轻群体那样增长。在大约一周的时间里,60 多岁的人每天的新增病例数下降。然而,后来这个数字开始上升,特别是这个年龄段的男性,这个数字在同一日期接近其他年龄段。另一个令人不安的观察结果是 40 多岁的女性新增病例数很高。

现在让我们调查每个地区新患者的性别比例。

什么性别,什么时间,什么地点?

每个地区每周新增女性患者的比例

为了减少噪音,我们计算并可视化每周统计数据。

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

请随意自己玩交互式可视化,检查各种细节。可视化坐在这里

可视化使我们能够看到,新女性和新男性患者的数量通常是不同的,即使是在随后几周的更大样本中,当有许多新的新冠肺炎患者时。让我们注意到这一周是从 3 月 30 日开始的。在所有地区,新的新冠肺炎阳性患者中女性更多。

那一周新病人的平均年龄是多少?让我们检查一下。

多大,什么时候,在哪里?

每个地区新患者的平均年龄

同样,您可以在这个地址上找到交互式可视化,并检查任何细节。

在这里,我将重点关注从 3 月 30 日开始的这一周,我们注意到这一周女性新患者的比例有系统地上升。

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

似乎在这一周,40 多岁的人感染新冠肺炎病毒最多。这可能表明,在捷克,40 多岁的女性可能是感染新冠肺炎病毒风险较高的年龄/性别群体。

让我们更正式地分析每个年龄/性别群体感染新冠肺炎的风险。

第三部分。每个年龄/性别群体感染新冠肺炎病毒的风险

首先,让我们检查一下,与我们基于人口统计学的预期相比,数据显示每个年龄/性别组的不同风险。

新冠肺炎对所有年龄性别群体的攻击是均等的吗?

让我们制定一个无效假设,新冠肺炎随机攻击任何人,不管什么年龄/性别组。接下来,让我们检查数据是否提供了足够的证据来反对这个假设。如果是这样,我们就拒绝这个假设。这就是统计学家经常使用数据来验证事实的方式。这是一个相关的笑话。

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

来源:XKCD(CC0)****

关于我们将如何检查这一点的详细信息

在这一部分,我将提供一个简短的统计介绍。有很强统计学背景的读者可能想跳过这一节。另一方面,如果能对我的描述进行修正,我会很感激。

我们将使用捷克人口统计数据来计算每个年龄/性别组的比例。利用这些比例,我们将计算每个年龄/性别类别中新冠肺炎阳性患者的预期频率。如果零假设成立,也就是说,如果每个年龄/性别组的新冠肺炎收缩率相等,我们就可以预期这些频率。

然后,我们将使用一个数字来总结这些预期频率和观察到的频率之间的差异,称为统计卡方,表示为 χ 2。数学家们知道如果零假设为真,χ2 的不同值有多大的可能性。这将使我们能够检查如果不同的年龄/性别群体平均收缩新冠肺炎,我们的数据是多么不可能。在此基础上,我们将决定我们是否应该拒绝零假设。

事先达成一致是一个好习惯,在这种情况下,我们将拒绝零假设,否则,人们可能会试图将自己的信念投射到对结果的解释中。罗纳德·科斯曾经说过,

如果你折磨数据足够长的时间,它会承认任何事情。

我们很快会看到另一个关于测试结果解释的笑话,但是为了让每个人都完全理解它,我们需要刷新一个 p 值 的定义。

我们已经讨论过统计数据 χ 2 总结了我们观察到的和我们期望的之间的差异。 χ 2 值越高,差异越大。换句话说, χ 2 值越高,我们的数据越不可能是真的。 P 值是当零假设为真时,得到我们的 χ 2 值或 χ 2 值甚至更高的概率(即证明假设更不成立的值)。

综上所述,我们得到的 p 值越低,我们在真零假设假设下的观测值就越不可能,因此拒绝零假设就越安全,这表示为 H₀

**如前所述,在进行统计实验之前,最好就 p 值“低”的含义达成一致。通常,我们会设置一个阈值来与获得的 p 值进行比较。如果 p 值小于阈值,则无效假设将被拒绝。这个阈值称为显著性水平,用α 表示。我们同意测试新冠肺炎是否以α = 5%的显著性水平平均攻击所有年龄/性别组。

关于结果解释的笑话来了。

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

来源:XKCD(CC0)****

如果对我们将要执行的统计测试的技术细节感兴趣,人们可能会想看一个来自可汗学院的短片。

卡方检验结果

我们已经检查了皮尔逊卡方检验的前提条件,然后得到 p 值= 1.8*10⁻ ⁶。因此,我们安全地拒绝显著性水平为α = 5%的零假设。

让我们直观地比较观察到的新冠肺炎年龄/性别比例与人口比例。

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

鉴于 20 岁以下人群的比例差异如此之大,我们拒绝零假设也就不足为奇了。

现在让我们分别检查每个年龄/性别类别。因为我们将使用相同的数据样本执行多个测试,所以让我们应用 Holm 校正。

同一数据多次测试有什么问题?

同样,有很强统计背景的读者可能想跳过这一部分。

使用相同的数据进行多重测试会导致所谓的多重比较或多重分析问题。问题类似于多次掷骰子。

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

来源:( ID 955169 )通过 pixabay (CC0)

我们知道得到 6 的概率是 1/6 或大约 17%。让我们想象一下,你掷骰子得到了 5 英镑。你对你的“分析”结果不满意,所以你重新掷骰子。假设你又不开心了,所以你再掷一次,这次你得到了想要的 6。然而,当掷出三个骰子时,至少有一次得到 6 的概率是 42%,而不再是 17%。

如果您测试数据样本的多个子组,也会发生类似的情况。子群越多,子群中的一个就越有可能偶然“坦白”,正如科斯的名言

如果你折磨数据足够长的时间,它会承认任何事情。

因此,当对多个组重复相同的假设检验时,偶然得到某个组的低 p 值的风险更高。在这种情况下,我们会错误地拒绝一个真正的零假设。这种类型的误差称为 I 型误差。

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

来源:(统计统计模因)经脸书

可以看出,对于显著性水平为α的单一假设检验,I 型错误的概率小于或等于α。

如果我们希望在多次测试的情况下将 I 型错误的概率保持在α之下,我们需要在与α比较之前校正 p 值。最基本的校正是所谓的 Bonferroni 校正,对于 m 测试,在与α比较之前,每个 p 值乘以 m 。然而,Bonferroni 校正非常保守,并且已知经常不能拒绝错误的零假设。在我们的案例中,这意味着不同年龄/性别的人群感染新冠肺炎病毒的风险是不同的,但我们无法拒绝风险相同的无效假设。

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

灵感来自:(统计统计模因)经由脸书

这种类型的错误被称为第二类错误。

我们将使用 Holm 校正,它是 Bonferroni 校正的改进,技术细节可以在 wiki 中找到,例如。应该注意的是,该测试仍然相当保守,仍然可能导致第二类错误。

关于分组卡方检验的一个注记

有经验的读者已经注意到,通过逐组执行卡方检验,我们将得到一个具有一个自由度的卡方分布,这只是一个平方正态分布。因此,实际上我们将做一些类似于 z-test 的事情来检验比例的差异,因此我们必须检查相应的前提条件,我们已经这样做了。90 岁以上的预期男性患者不到 10 例,因此我们将 90-110 岁年龄组排除在分析之外。

每个年龄/性别组的单独结果

根据霍尔姆校正的重复测试结果,对于大多数年龄/性别组来说,零假设被拒绝,取而代之的是年龄/性别组不会随机暴露于新冠肺炎。

让我们计算新冠肺炎年龄/性别群体比例与基于人口统计的预期比例之间的差异。对于随机暴露于新冠肺炎没有统计差异的组,让我们插入零。让我们用红色描绘增加的新冠肺炎曝光,用绿色描绘减少的曝光。

雌性

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

雄性

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

我们只是利用了新冠肺炎和总人口比例之间的直接差异。让我们使用置信区间来计算比例中数量差异的更保守的估计。

年龄/性别组比例的置信区间和更保守的风险定量评估

让我用一个具体的例子来说明我将要做的事情。我母亲属于 50-59 岁之间的女性,我将用这个群体作为例子。

  1. 首先,我将根据新冠肺炎的数据估计 50-59 岁女性的人口比例。群体比例的 99%置信区间为 7.1-9.6%。如果这个特定的年龄/性别群体被随机暴露在病毒中,这是一个很可能属于的人口比例的间隔**。**
  2. 然后,我们使用人口统计数据计算 50-59 岁女性在人口中的实际比例。实际比例为 6.2%。
  3. 将置信区间与真实比例进行比较,我们得出结论,新冠肺炎比例比人口比例至少高 0.9%

结果总结如前:

雌性

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

雄性

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

对于风险增加的年龄/性别组,让我们将风险增加与组比例一起可视化。

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

结束语

一些见解:

  • 对于捷克女性和男性来说,20-29 岁、40-49 岁和 50-59 岁年龄组接触新冠肺炎的风险明显高于随机人群。
  • 可能的原因是什么? - >这些是活跃的群体,即使在正式的紧急状态下也必须上班
  • 30-39 岁的女性和男性没有更高的风险。为什么? - >一开始是一个令人费解的观察。然后,我查了一下,捷克母亲出生时的平均年龄是 30.1 岁(来源于捷克)。这意味着在 30-39 岁的人群中,有许多孩子的父母。幼儿园和学校都关门了,家长们经常必须呆在家里照顾孩子。
  • 给每个人的一个信息:这个年龄组的大多数父母不得不呆在家里带孩子,因此更系统地远离社会,这表明了社会距离对于新冠肺炎预防是多么重要。每个人都可以发挥作用!
  • 谢天谢地,保护老年群体的有效国家政策似乎起了作用。然而,这些政策似乎对女性更有效。因此,对于 60 岁和 70 岁的男性来说,暴露于新冠肺炎的几率并不比随机的少很多,而对于同年龄的女性来说,暴露的几率要少很多。也许值得进一步调查这一事实,看看这是否是由于女性更好的管教/更多地呆在家里陪孙子/其他原因。
  • 令人欣慰的是,输入病例的比例正在下降,证明政府的旅行限制是正确的。
  • 似乎我们可以对最年轻的近亲保持合理的冷静。我仍然认为,即使是 19 岁以下的人也不应该放松警惕,因为众所周知,没有症状的人仍然可以传染给他人。

局限性讨论

  • 如前所述,关于新冠肺炎阳性病例的数据很可能偏向于那些不仅感染了新冠肺炎病毒,同时还出现了中度、重度或严重症状的人。根据数据**部分的协议,整个帖子由“签约新冠肺炎/接触新冠肺炎/ect。”我们指的是“感染新冠肺炎并有中度、重度或危急症状”。
  • 其次,数据中的新冠肺炎样本很可能偏向于那些自己想接受测试的人。例如,可能有一些症状温和的新冠肺炎阳性患者在疫情期间不愿意去卫生机构就诊,并且没有记录在案,而一些症状温和的新冠肺炎阳性患者可能更愿意去检测中心就诊。
  • 此外,在流行病爆发之初,检测能力可能不足,这可能会带来额外的偏见,例如,在最初几周,可能会对有严重症状的病例产生偏见。
  • 接下来,我们只分析了新冠肺炎阳性确诊病例的数据。我们没有关于人的死亡率或病毒后果的信息,这对于分析是非常重要的。
  • 此外,我们没有关于患者原有健康状况的信息,而这些信息对于分析也是至关重要的。

总的来说,我认为这种探索性的数据分析是相对初步的,我建议一旦有了更好的个人水平的数据,就重复并扩展它。

如果感兴趣的话,请随意分析这些数据,或者通过派生相应的或者 GitHub repo

大家保重,保持健康!

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

新冠肺炎帖子:包含 400 多个新冠肺炎博客帖子的公共数据集

原文:https://towardsdatascience.com/covid-19-posts-a-public-dataset-containing-400-covid-19-blog-posts-ae5ad8181790?source=collection_archive---------31-----------------------

在过去的几个月里,我们从 R 社区收集了数百篇新冠肺炎的博文。今天,我们很高兴公开分享这个数据集,以帮助那些希望通过释放 R 及其社区资源来分析新冠肺炎数据的博主们能够研究这样的帖子。

到目前为止,我们已经发现并记录了 423 篇英文的 COVID 帖子。为了鼓励其他人探索这样的帖子,我们发布了一个闪亮的网络应用,它允许用户找到写这些帖子的 231 位博主的名字,他们的角色,以及他们关注的国家。该应用程序还允许用户通过主要话题、帖子标题、日期以及帖子是否使用了特定的数学技术或数据来源来交互式搜索帖子集合。为了更多地了解这个数据集的演变,其中一位作者(里斯)在 Medium 上发表了九篇文章,你可以在这里找到。

我们鼓励用户提交他们自己的帖子或者其他人的帖子来收录,这可以在这个谷歌表单上完成。我们的数据集,以及闪亮应用的代码,可以在 GitHub 上获得。如果任何人对数据集有任何更正,请写信给里斯莫里森(点)com。

这篇文章的剩余部分强调了新冠肺炎文章数据集中的一些发现。正如接下来的情节所显示的,这绝不是对新冠肺炎的每一篇博文的全面回顾,而是对我们已经发现的数据的概述。

一段时间内的帖子

随着疫情的进展,越来越少的博客作者关注 COVID 相关数据,因为我们注意到博客帖子在 2020 年 3 月达到峰值。

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

一些博客作者多产;更多的人已经合二为一。下面的图显示了 23 位博主的名字和帖子,他们到目前为止已经发表了至少四篇帖子。作为如何解读这一情节的例子,位于 y 轴底部的蒂姆·丘奇斯(Tim Churches)总共发表了 9 篇帖子,但没有一篇是在 4 月初之后发表的。

点的颜色对应于博客作者的工作角色,如底部图例中所述。显而易见,教授和学术研究人员在这个博客群体中占主导地位。如果你把研究生也算在内,那么几乎所有多产的博客作者都来自大学。

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

作者的角色

我们数据集中的博主们用各种方式描述他们的工作角色。其中一位作者(Rees)通过对大量的术语和描述进行分类,使这些工作角色标准化,但是这种努力很可能歪曲了这些博客作者的谋生之道。我们欢迎指正。

我们进一步将角色分为五大类:大学、T2、企业、T4、职业、政府和非营利组织。这些更广泛的类别在下面的图表中表示为列。

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

数据源

与新冠肺炎相关的大量数据来源将产生更丰富的见解。组合不同的数据集可以对一个问题有新的认识,产生改进,并允许作者构建更好的指数和测量方法。出于这个原因,其中一位作者(Rees)从我们收集的博客文章中提取了数据集信息。

在很大程度上,博客们确定了他们分析所使用的数据来源。有时,我们必须努力标准化 140 个数据源。

到目前为止,最流行的数据来源是约翰·霍普金斯大学,该大学早期、全面和一贯地为新冠肺炎数据收集和向公众传播设定了标准。

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

博客帖子主题

也可能是这样的情况,读者想要一个博客的摘要,或者只看属于某个主题的帖子。当然,给每篇博文指定一个主要话题会带来相当大的主观性,但我们希望这些宽泛的话题能帮助研究人员找到内容和有相似兴趣的同事。

在这里,一个气球图显示了 423 篇帖子的主要主题。主题在 y 轴上,博主的职业类别在 x 轴上。每个气泡的大小(和不透明度)代表匹配该组合的帖子数。正如所料,流行病学领先,但相当多的帖子似乎使用 COVID 数据来展示其他东西,或以新的方式应用 R。

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

总结想法

我们鼓励您使用我们的闪亮应用程序亲自探索数据。如果你想提交你的文章被收录,请填写这张谷歌表格

正如我们在应用程序的页脚所提到的,R 社区是聪明的,并且产生有趣的内容,但是当涉及到新冠肺炎时,并不是我们所有人都是专家。参与这些帖子会让你更好地理解 R 在我们当前时刻的应用,也许还能给帖子作者提供反馈。我们不认可任何特定作者的发现,并鼓励您从声誉良好的来源如 CDC世卫组织找到准确、相关和最新的信息。

原载于我的 博客 。跟随作者 里斯 康纳 上推特。

新冠肺炎在股票市场上横冲直撞。机器学习来解释。

原文:https://towardsdatascience.com/covid-19-rampage-on-the-stock-market-machine-learning-comes-to-explain-3332707954af?source=collection_archive---------56-----------------------

亨尼投资

使用机器学习来识别新冠肺炎期间受打击最大的股票中的共同因素。

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

图片作者谢尔盖·尼文斯

在这篇文章中,我使用机器学习来研究那些在新冠肺炎期间股价下跌最多的公司。为了更好地说明发生了什么,让我们来看看最近市场最动荡时期的标准普尔 500 指数。

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

谷歌金融

这场新冠肺炎崩盘结束了长达十年的牛市,股价在 2020 年 2 月 20 日至 3 月 23 日期间下跌了 33% 。虽然这次衰退对股票市场有整体的负面影响,但并不是所有的公司都受到同样的影响。下面是 1500+ 美国上市公司在此期间的股票市场回报率分布。

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

源代码

在 X 轴上,我显示了 2020 年 2 月 20 日至 2020 年 3 月 23 日之间的价格增长。在 Y 轴上,我显示了报告增长的公司的百分比。

我们可以看到大多数公司出现负增长。分布看起来正态,平均值在 -33% 左右,在正回报范围内有一些异常值。这与我在这里提到的正常市场条件非常不同:

这种环境为投资者提供了一个研究不同公司形象如何受到影响的绝佳机会。特别是,哪些类型的公司相对于那些完全没有受到影响的公司受到的打击最大。随着机器学习为我们所用,我将数据科学家的观点带入游戏,分享我对这次衰退教会我们什么的观察。

财务数据

在这项研究中,我使用来自 www.vhinny.comAlpha 数据集,它提供了过去 8 年的基本财务数据,包括资产负债表、损益表和现金流量表。我还使用免费的 alpha vantage API 来访问每日股票价格。

问题陈述

在这项研究中,我希望找出那些受打击最大的公司背后的驱动因素。根据上面的直方图,我对股价至少损失了 55% 的公司感兴趣,这适用于数据中所有公司的 ~20%

方法学

有许多方法可以解决这个问题,从无监督聚类预测建模。我在这里使用的方法利用了预测建模的优势。我的目标不是训练一个预测未来衰退的模型。相反,我的目标是了解过去。带着这个目标,我发现简单的决策树分解是这项工作的最佳方法。

决策树因过度拟合训练数据而臭名昭著。由于这一特性,它们几乎从未用于预测建模,从而产生了随机森林XGBoost 。然而,与其他算法不同的是,决策树提供了对其决策过程的准确可见性,向研究人员准确显示了决策是如何做出的。

我把这个问题框定为一个分类任务,把价格损失至少 55%的公司列为正面例子。然后,我用以下参数拟合一个决策树(实现代码可以在这里找到):

  • 最大深度:10
  • 叶子上的最小样本:5
  • 最大叶节点数:10

因为我的目标是解释过去而不是预测未来,所以我没有像在典型的预测机器学习问题中那样分成训练和验证。我用的参数并不是区分正反例的最佳参数。相反,我选择的参数将问题限制在可以容易解释的维度。这样,在稍微牺牲性能的情况下,我可以确定并可视化数据中的基本趋势,这正是我所寻找的。

实施情况和结果

下图显示了一个决策树,适用于识别在新冠肺炎危机期间股价损失至少 55%的公司。

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

源代码

这个决策树适合于 1500 多家美国上市公司的基本财务数据。每个节点都有一个标签(类),根据叶子上的大多数例子将叶子分类为正或负。我使用红-白-蓝的配色方案来帮助视觉化每个节点上积极和消极的平衡。纯红色表示绝大多数例子都是正面的。纯蓝色表示大多数示例都是负面的。随着正反例子的比例达到相等,颜色变得更加淡化。如果正样本的数量等于负样本的数量,节点将变成白色(完全透明)。箭头表示基于节点本身记录的条件的分割。左箭头将符合条件的例子分开,不符合条件的例子留给右箭头

全球趋势

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

源代码

根节点包含整个数据集。它被标记为负的,因为大多数例子(1223)是负的(和 275 个正的例子)。这个节点上的分割是基于价格对有形资产比率完成的,这是价值投资者中的一个流行指标。如果有形资产的价格比0.88 大,公司被标记为负面,将我们带到右下方的节点。这种情况对我们来说轻而易举,因为它使我们达到了 91%的公司被正确标记为负面的水平,在(694 + 73)中有 694 家。如果不满足这个条件,我们就转到左边的节点,这样我们就有许多潜在的目的地和可能性要考虑。

积极的暗示

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

源代码

虽然树的全局右分支帮助我确定了绝大多数的负面例子,但我希望在左分支找到一条通向正面例子的道路。通往正面例子的最短路径让我有了三个条件:

  • 有形资产价格比≤ 0.88
  • 运营资本的变化> 1 . 15 亿美元
  • 资产回报率≤ -0.07

用语言来说,公司必须相当便宜(条件 1),以低于其有形资产成本的价格出售,并在最近一个财政年度报告亏损(条件 3)。第二个条件更难解释,因为它取决于企业的规模,但它表明公司的资产负债表有所改善。

更深入

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

源代码

从根向下进入左分支 7 层后,我发现自己处于一个白色节点,该节点使用价格收入有形资产有效地将公司分为正面和负面。重要的是要注意,白色节点上的示例不是随机采样的示例,而是满足 6 个条件的示例导致白色节点。

在这个节点上,几乎所有价格对收入 > 1.8 的公司(17 家中的 16 家)都是负数。这些是价格适中的公司,它们在上一年亏损了一些钱,但并不太贵,因为它们的交易价格低于其有形资产的价值(基于达到白色节点之前的拆分历史)。

或者,交易价格与收入之比(T10)≤1.8 和交易价格与有形资产之比(T12)≤0.04 的公司大多为正(47 家中有 37 家)。这是那种离破产只有一步之遥的公司。岌岌可危的是,他们业务的价格几乎是他们年收入的两倍,他们账面上所有有形资产的价值不到 1 美元的 5 美分。以任何标准衡量,这种不稳定的基础都可能会让投资者抛售股票,希望减少损失,并进一步压低股价,以反映这些公司的内在价值。

结论

在这篇文章中,我对 1500 多家美国上市公司的财务状况进行了分析,以确定由于 T4 新冠肺炎 T5 恐慌导致 T2 股价下跌 55%的公司的趋势。2020 年 2 月 20 日至 3 月 23 日期间,美国公司的股价平均下跌了 33 %。亏损 55%+ 的公司有着臭名昭著的**糟糕的财务表现,**这部分反映在它们的价格甚至在崩盘开始前就一直低于其有形资产价值。这些公司中输家的一个特征指标是那些以有形资产的 4%或更低价格出售的公司。另一个不太严重的特征是,公司损失了 55%以上的价格,这是他们上一个财政年度报告的损失。在估值已经很低的情况下,上一财年的财务损失导致投资者卖出他们投资组合中的失败者 T21。

感谢阅读我的文章!如果你喜欢,你可能想看看这个:

[## 从新冠肺炎恢复的股票。机器学习来解释。

使用机器学习来识别新冠肺炎崩盘后恢复正常的股票中的共同因素。

towardsdatascience.com](/stocks-that-recovered-from-covid-19-machine-learning-comes-to-explain-ba712f62456d)

我们连线吧!

我很高兴和与我志同道合的人联系,这是我对财务独立的追求。如果你也在寻求经济独立,或者你想合作,交流想法,请随时联系我们!以下是一些可以找到我的地方:

干杯!

新冠肺炎研究:我们前进得太快了吗?

原文:https://towardsdatascience.com/covid-19-research-are-we-moving-too-fast-a70ec16b9f0e?source=collection_archive---------68-----------------------

获得平衡

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

已经有大量重要的新冠肺炎研究进入公共领域,包括旨在计算病例死亡率、新治疗的有效性、风险概况和缓解策略有效性的研究。人们可以理解为什么——人们对新型冠状病毒的信息有着贪得无厌的胃口和需求,不仅承诺对该主题的任何研究结果进行大量宣传,而且希望这种研究能够通过帮助确定对这种疫情的最佳反应,立即改变人们的生活。也就是说,在传播新发现时需要一定程度的谨慎。

出版存在的问题

对于科学家来说,花上几个月甚至几年的时间,小心翼翼地将一个想法发展成一篇论文并不罕见,但我们看到越来越多的例子表明,整个过程只需要几天时间。研究设计中的问题,如小样本和赢家诅咒、多重比较选择性报告结果,往往助长了发表“性感”研究结果的偏见,这一直是许多讨论的来源。有少数例外,但这通常是错误信息加上认知偏差的结果,如确认偏差,我们都容易受到影响(例如,我们倾向于只看到我们想看到的证据),而不是任何渎职行为。还有迹象表明,所有学科的科学家都开始更加认真地对待这些问题。

然而,疫情加剧了上述问题,因为不仅研究人员急于撰写论文,而且期刊也急于通过加速同行评审过程发表论文。当然,尽快将一个重要课题的优秀科学成果公之于众是很重要的,但这确实会让本已不可预测的同行评审过程变得比以往更加嘈杂。虽然良好的科学是我们应对疫情的关键,但仓促开展和发表的研究有可能造成伤害。

潜在危害

例如,发表在 《柳叶刀》 上的一项研究,随后被撤回,该研究旨在表明羟氯喹远非最初希望的对新冠肺炎的成功治疗,实际上与风险增加有关。这导致世界卫生组织暂停了相关临床试验。提供本研究中使用的数据的公司缺乏透明度,导致了围绕结论可信度的许多问题——编辑在出版前很难(如果不是不可能)发现这些问题。尽管如此,似乎有理由认为,鉴于论文中许多明显的方法问题,它通常会在“正常”的同行审查过程中被一家老牌期刊拒绝。尽管如此,它还是被发表了,这被一些人用来破坏对科学的信任。

另一个例子是作为预印本发布给媒体的研究(这打开了另一组有问题的问题)。通过脸书 ads,作者招募了 3330 名居民样本,并对他们进行了新冠肺炎抗体测试。这是一项雄心勃勃和及时的研究,并认为其随后的分析表明,背景感染率远高于人们此前的想法。这反过来表明,死亡率可能大大低于以前的最佳估计。这些发现被美国保守派活动家作为反对封锁和其他缓解措施的证据。尽管其他科学家提出大量批评,指出这些发现很可能是各种统计误差来源的结果,但这种破坏还是发生了。另一个方法论障碍是选择偏差。虽然许多人可能希望进行抗体检测,但哪一组人可能会付出更大的努力(例如,前往检测地点等。)获取一个?可能是那些有充分理由怀疑自己或亲近的人感染了病毒的人。这意味着,不是测试圣克拉拉人口中的“代表性”样本的抗体,而是测试人口中的样本,从各方面考虑,这些样本更有可能首先被感染。值得注意的是,自 4 月 11 日发表以来,该论文已被引用 135 次,由此可见该领域研究的规模和快速性。

我的目的不是对任何特定的论文提出过分的批评,因为方法和抽样问题是常见的,观察数据中总是存在不确定性,而且没有完美的研究这样的事情。相反,我的目的是强调,虽然研究人员渴望做出积极贡献是可以理解的,但在没有花必要的时间仔细研究工作的情况下就突然拿出新的研究成果可能是有成本的。

伸得过远

另一个不太严重的例子是在 《每日电讯报》 中讨论的一篇文章,它暗示秃顶可以预测疾病的严重程度。这一论断的证据是对马德里医院的 122 名患者的研究,其中发现男性患者的背景脱发率比一般人群中相似年龄的男性的背景脱发率略高。

虽然我不能说秃顶不会成为疾病风险的预测因素,但我可以说的是,一项对 122 名患者的小规模观察研究没有提供任何证据。要知道为什么,我们必须考虑观察性研究的可变性。如果我观察 122 名患者中的任何一组,我很可能会发现他们在许多与疾病无关的因素上与一般人群不同。例如,他们可能睡得更多/更少,吃更多的加工肉类,喝更多的红酒或者可能喝更少的白酒。如果我确实发现了一个具有统计显著性的模式,除了第一个例子,提出一个“因果”解释来解释它与冠状病毒的相关性(例如红酒的药用特性)并不太困难,这就是问题的症结所在。

另一个相关的例子是许多研究(例如这里的和这里的)表明维生素 D 补充剂可能在控制疾病风险方面发挥重要作用。这些研究主要是比较欧盟各国的平均维生素 D 水平与新冠肺炎死亡率。有些与直觉相反的是,欧洲高纬度国家的维生素 D 水平较高,尽管 UVB 阳光照射较少,因为食品强化和补充更为普遍。在研究发表的时候(现在情况有所改变),低纬度国家如西班牙和意大利的新冠肺炎死亡率较高,平均维生素 D 水平也较低。与秃顶的例子相反,如果将来的临床试验表明维生素 D 至少在某种程度上是重要的,我不会感到惊讶,但我可以说的是,这种性质的研究没有提供任何真正的证据。这些国家的维生素 D 摄入量可能不同,但从人口密度、缓解策略、人口统计到冰淇淋消费,它们在其他所有方面都不同。

人们可能会合理地反驳说,尽管存在任何方法上的问题,但这些研究提供了支持性的暗示性的初步的证据,证明维生素 D、秃顶或以如此粗糙的方式检查的各种其他因素的重要性。他们没有,同样,新冠肺炎冰淇淋消费量和死亡率之间的显著相关性也没有提供任何证据来支持减少冰淇淋消费量可以降低死亡率的假设。

有人可能会合理地问这有什么危害,因为维生素 D 对你有好处。这在一定程度上是对的,但摄入过多会带来健康风险,如果我们可以想象一些人为了抵御冠状病毒而摄入毒药,那么就不难想象一些人摄入了过多的维生素 D 补充剂。

更一般地说,不考虑任何潜在的群体伤害,当这种性质的研究被授予出版物和媒体关注时,其他研究人员就更有可能认为这种方法是回答重要研究问题的一种可接受的方法,并效仿这种方法。

总之,所有学科背景的科学家在这次疫情中都脱颖而出。事实上,疫情突出了科学家工作的重要性。看到许多知识渊博的研究人员在为非常复杂的问题提供及时可靠的答案方面展示出令人难以置信的技能和创造力,令人鼓舞。然而,每个人都有责任确保,在渴望提供及时而重要的建议时,我们不会过多地牺牲准确性和可靠性。

当然,在疫情时代,迅速将新信息公之于众的好处,尤其是当目的是治愈或防止致命病毒传播时,可能会超过提供不太可靠信息的任何成本。尽管如此,并不是所有的研究都对管理疾病的风险至关重要,科学家需要尽最大努力确保这种平衡。

这篇博文最初出现在 LSE 英国政治与政策博客

新冠肺炎:地理区域被感染的风险

原文:https://towardsdatascience.com/covid-19-risk-of-geographical-areas-being-infected-a81938a5e286?source=collection_archive---------46-----------------------

PostgreSQL-PostGIS 方法

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

图 1:曼哈顿出租车的轨迹

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

自从电晕疫情爆发以来,我一直看到多伦多技术社区的人们提出了令人敬畏的分析,如 Russell Pollari 为了人民的利益贡献他们的理解和知识。这一直是激励我尝试为我的硕士论文和研究工作寻找一些用例的因素。

在本文中,我将解释我是如何想出利用地理区域内的轨迹来了解哪些地区受新冠肺炎影响的风险更高的想法的,例如,多伦多或纽约。在我深入实际框架本身的细节之前,让我们先了解一些基础知识。

PostgreSQL 和 PostGIS

PostgreSQL (又名 Postgres)是一个开源的对象关系数据库管理系统(ORDBMS),强调可扩展性和标准遵从性。它扩展了 SQL 语言,并结合了许多安全存储和扩展最复杂的数据工作负载的功能。
PostGIS 是 Postgres 的空间数据库扩展器。它向 Postgres 添加了空间函数,如距离、面积、并集、交集和几何数据类型(这也是我在当前分析中使用它的原因)。

数据

我使用的数据集由纽约市出租车和豪华轿车委员会(TLC)发布,其中包括接送时间、地理坐标、乘客数量和其他几个特征。数据集 文件 包含 1,048,576 个旅行记录,这些记录包含作为(经度,纬度)坐标对的上下车点。为了这个实验的需要,我依靠随机样本 S 包括 10,000 双。对于每一对接送坐标,我利用 Google Directions API(python 代码 )在 NYC 创建轨迹(如图 1 所示)。

将地理区域划分成统一的网格

设轨迹 t = {(x_0,y_0),(x_1,y_1),…,(x_n,y_n)} 等于从起点到终点的路线,其中序列对 (x_i,y_i) 表示 2D 笛卡尔坐标系中的经纬度坐标。虽然移动物体的单个轨迹被定义在较低的粒度级别(例如,经度和纬度坐标对的序列),但是地理区域的分析通常需要在较高的粒度级别完成,例如在城市的街区或邮政编码级别。不失一般性,我采用了一个均匀网格的抽象,它将观察空间 A 分成一组均匀间隔的 r 行和 c 列,形成网格单元;行数不需要等于列数。我正式定义 grid_rc 如下:

grid_rc = {c_00,c_01,c_10,…,c_r-1c-1}

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

图 2:样本网格和网格单元上的样本轨迹

grid_rcr x c 网格单元组成,而 c_ij 代表第 i 行和第j列的网格单元。通过将 A 划分为网格单元,我能够将轨迹 t ϵ T 从地理位置序列转换为 grid_rc 上的网格单元序列。例如,图 2 显示了一个 7x10 网格和一个穿过 13 个网格单元的样本轨迹,从 c_02 开始移动到 c_03、c_04、c_14、…,一直到 c_67。

现在你应该想到一个有趣的问题。**为什么我需要将地理区域划分成网格单元?**这可以从以下可视化中理解:

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

图 3:从作为地理位置的轨迹到作为网格单元的轨迹

因此,我们看到的是一个单一的(a)轨迹表示为地理位置(b)遍历网格单元和©最终转换为一组网格单元表示的运动路径的轨迹。对成千上万条轨迹进行的这种抽象使我们能够发现移动物体(即人、公共汽车和汽车)与分割的地理空间的相互作用。

请注意,网格的大小在更精确的分析和更快速的分析之间提供了一个有趣的平衡。这是因为网格的行数和列数越多,每个网格单元所代表的地理区域就越小,但代价是必须将每个轨迹关联到更大数量的网格单元,这在计算上是昂贵的(如图 4 所示)。

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

图 4 😦 a)更少和(b)更精细分析之间的权衡

数据库中数据集的建模

为了将数据存储在 postgres 数据库中,需要将其转换为众所周知的文本 (WKT)格式,这是一种用于在地图上表示矢量几何对象的文本标记语言。WKT 可以表示许多不同的几何对象,如点、线串&多边形等(如图 5 所示)。

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

图 5:几何图元(2D)[参考:https://tinyurl.com/nz8ybfu4

我使用 Linestring 存储轨迹数据集,类似地使用 Polygon 存储网格单元坐标。使用这个代码我将地理空间划分成 35×35 的网格(如图 6 所示)并以 WKT 格式存储网格单元坐标。

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

图 6:划分为 35x35 网格的地理区域

识别高感染区域

宣布地理区域(即网格单元)为高度感染的想法是基于这样的假设,即通过特定网格单元(划分的地理区域)的轨迹数量越多,该区域被感染的机会就越大。我通过绘制轨迹与网格单元的相互作用以及使用基于 PostGIS 的空间查询来识别这些区域。

查询

Q#1:存储网格单元坐标和轨迹数据集的查询

我使用 pgAdmin 中可用的导入/导出命令将数据存储在 traj、网格和单元格表中。现在是进行神奇查询的时候了,该查询可以找到感染风险高的区域。

问题 2:神奇的查询

神奇的部分是我们得到的表格(traj_as_cells)。它类似于图 7 所示,但是针对数千条轨迹。
完成上述分析后,我们的工作是找到通过其的轨迹数量最多的细胞 id,即,具有被新冠肺炎感染的高风险的(划分的地理区域)。

为了帮助更好地理解它,我们可以编写一个简单的查询来查找有多少轨迹通过单个网格单元(在下面的查询中 646 )。

问题 3:发现具有高感染风险的热点(网格细胞)

上面的网格细胞有 111 个轨迹穿过它(可能是感染的热点)。
(图 7)显示了从 postgres 数据库获取的快照。此外,我们可以通过将它的 id 与“单元格”表进行比较来定位这个网格单元格坐标(如 Q#4 所示)。

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

图 7

问题 4:定位网格单元坐标

最后,我们可以聚集轨迹穿过的所有网格单元,并基于穿过它们的轨迹的数量对它们进行排序。

寻找穿过每个网格单元的轨迹

上面的代码聚集了通过每个网格单元的所有轨迹,并将它们存储在traj_ids.txt文件中。最后,我们使用一个 bash 命令对网格单元进行排序。

perl -ne 'push [@a](http://twitter.com/a), $_; END{ print sort { length $a <=> length $b } [@a](http://twitter.com/a) }' traj_ids.txt

概述

  • 我们开始探索一个地理空间,并着眼于人的运动路径,即轨迹。
  • 我们将地理空间划分为统一的网格单元,并讨论了较小或较大网格大小之间的权衡。
  • 此外,我们详细阐述了划分地理空间如何使我们能够将轨迹从一组地理位置坐标转换到一组网格单元中。
  • 最后,我们执行了各种 Postgres/PostGIS 查询来查找轨迹穿过的格网单元。
  • 最后,python (numpy ,pandas )使我们能够将属于每个单元的轨迹放在一起,并通过 bash 命令对它们进行排序。

结论

从本质上说,这项工作提供了一个简单、易于遵循的概念验证方法,用于发现受新冠肺炎影响的高风险地区。

新冠肺炎情绪分析系列,第 1 部分:开始

原文:https://towardsdatascience.com/covid-19-sentiment-analysis-series-part-1-getting-started-70892122630c?source=collection_archive---------45-----------------------

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

🇨🇭·克劳迪奥·施瓦茨| @purzlbaum 在 Unsplash 上拍摄的照片

推特情感分析

理解一级防范禁闭中的伦敦人

我发现封锁最令人震惊的是,与朋友聚会喝酒,或在某人的电脑前与同事交谈时,社区的丧失。

于是,我们失去了对每个人的感觉,失去了被倾听的感觉,失去了将社会团结在一起的共同声音。

我想通过 Twitter 了解伦敦人对事件的反应,以某种小的方式抵消这一点。我们对谁有好感?又是什么给我们带来了愤怒和挫败感?

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

K .米奇·霍奇Unsplash 上拍摄的照片

这将是一个由 3 部分组成的系列,我们将会看到解决这个问题的几种方法…

**第一部分:入门:**如何获得你的推文,如何为推文评分,进行一些高层次的相关性分析。

**第二部分:假设检验:**如何在统计上高度确认组织情感上的信心差异,使用文字云来了解公众对某人的真实看法

**第 3 部分:建模:**展示如何逐步应用频率主义和贝叶斯方法来建模锁定的赢家和输家,我还将清楚地概述每种方法在回答这个问题时为我们提供了什么。

第 1 部分:入门

获取推文:

我试图使用 Twitter API 来检索关于该病毒的推文,但是,搜索 API 将历史呼叫限制为 7 天,幸运的是,我找到了一个名为 GetOldTweets3 的 Python Twitter scraper,它帮助我解决了这个问题:

GetOldTweets3:当函数被调用时,日期和搜索字符串保持可配置

我发现在抓取 Twitter 时存在稳定性问题,导致当我达到 Twitter 配额时出现“HTTP 错误 429:太多请求”,或者当我与他们的服务器失去连接时出现“HTTP 错误 503:服务暂时不可用”。

这两个错误都会导致收集到的数据丢失,所以 try/except is your friend …在这些异常的情况下,我要求函数在重试之前等待 15 分钟,并确保我为用户打印了大量的进度更新…包括函数超时时的计时器…

第 1 次尝试(共 3 次)检索 2020–05–30
在 HTTP 请求期间发生错误:HTTP 错误 429:请求太多

第 1 次尝试(共 3 次)检索 2020–05–30 时出错。睡了 15 分钟。
分钟睡眠:
0…一…2…3…四…5…6…七…8…9…10…11…12…

在撰写本文时,我在 3 个月的时间里收集了伦敦人以“冠状病毒或 covid 或新冠肺炎或 covid19”为搜索字符串的 55 万条推文,并将其作为每日 csv 文件保存在我的 GitHub 中。

解析文本:

我们想提取伦敦人在推特上谈论的人/事,这样我们就能找到情绪的主要驱动因素…

我尝试了一下 spaCy 的 NLP 管道:

首先使用词性标注器来检索专有名词(虽然它工作得很好,但我发现这不符合我的目标,因为它检索了许多非实体)。

然后使用实体识别器来检索预训练管道识别为“人”或“组织”的任何东西。

然后(出于兴趣)我用 EntityRuler 覆盖了带有我自己的自定义列表的实体识别(我看了两个:Boris Johnson 和 NHS)。

尽管 EntityRuler 是最精确的,但它非常繁琐,需要为每个实体手动设置规则,所以我选择了实体识别器:

spaCy 的 NLP 管道:将实体识别器应用于一列 tweets

得分情绪

我特别使用了 VADER (Valence Aware 字典和情感推理器)Python 库,因为它已经被调整来处理社交媒体上表达的情感。它结合了词典方法和基于规则的方法,在社交媒体上进行情感评分时提供了高水平的准确性。

他们的 GitHub 提供了 VADER 研究论文的更多细节,但总结起来:

词汇法:

  • 情感评分从-4(非常负面)到+4(非常正面)不等,收集了 10 位独立评委的 9000 多字,他们自己也经历了审查过程。
  • 平均评分为 0 或评分标准偏差> 2.5 的功能被丢弃,留给我们一个包含 7,500 个已验证功能的词典。

VADER 不仅研究了单个单词的情感等级,还研究了句法对句子层次情感的影响…

基于规则的方法:

  • 例如,“好”与“非常好”是程度修饰语“非常”增加句子中情感强度的一个例子。
  • VADER 方面已经制定了一些规则,来检测此类结构性因素,并根据经验对整体情绪进行加权。

代码实现起来非常简单:初始化 SentimentIntensityAnalyzer()类,然后应用 polarity_scores()方法(这是我在 map 函数中做的)。这返回了一个数组,其中包含每条 tweet 的 4 个不同的情感指标:POS,COMPOUND,NEU,NEG。

3 个分数(POS/NEU/否定)量化了该推文中包含 POS/NEU/否定单词的比例(例如,POS =推文中的正面单词数/推文中的总单词数)。

然而,我决定在下面的分析中使用化合物(或化合价),因为它简洁地解释了两极的极性程度:正极和负极。相对于该文本的长度,它还被归一化为-1 到+1 之间的值(+1 表示最大正值,-1 表示最大负值),从而可以用作比较度量。研究人员通常将得分> 0.05 分为积极,并且

Correlation: Did sentiment vary with the spread of the virus?

I found a dataset on Kaggle that had collated Public Health England’s statistics on the cases and deaths from Coronavirus. I started to plot this in Matplotlib together with the average daily sentiment observed from the tweets:

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

Plotted: Negative Sentiment and Cases / Deaths

I learned a couple of things from seeing the data like this:

  1. A.B.C .(总是在检查)
    在这一时期的开始,我注意到我收集的推文数量急剧减少,很快发现我的查询已经过时……
    -不要搜索标签,而是搜索文本,因为大多数推文不经常使用标签。
    ——“COVID”取代了“冠状病毒”,成为频繁发微博者的便捷速记。
    因此,将搜索字符串更改为*“冠状病毒或 covid 或新冠肺炎或 covid 19”*可以立即看到改进(见 5 月)。尽管如此,谢天谢地我还是有足够大的样本量。
  2. 高水平的数据产生低水平的洞察力
    在如此高的聚合水平上,情绪通常围绕全球平均水平波动。

随着病毒的发展,我们是否看到了更多负面的推文?

是的,我们可以大致看到这一点。

例如,情绪(即复合得分)与每日死亡数的负相关性为-41%。当你给死亡人数加上一天的滞后时,这个数字增加到-50%,表明人们对前一天的消息可能有一些延迟反应。

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

在相关性的一些早期不稳定性之后,我们能够看到一些有趣的东西:

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

关联历史:负面推文与每日死亡人数

这种相关性在 3 月和 4 月基本上是负的,即*“病例数/死亡数的增加(更为积极)与整体情绪的恶化(更为消极)相一致*。*“*这也是我们在观察情绪和病例/死亡趋势时看到的情况。

自那以后,这种相关性变成了积极的,即使每天的死亡人数变得很少,人们的情绪也保持相对不变,这表明伦敦人现在已经找到了他们愤怒的其他原因。

结论

收集完数据后,我们现在准备更深入地了解伦敦人。

在下一篇文章中,我将会使用假设检验*(并且会大量使用!)*验证对不同组织的态度是否真的存在差异。我将展示如何设置测试,并解释我们在每个测试中所依赖的假设(以及如何测试这些假设)。

我们还将看到如何以 wordcloud 的形式可视化人们的真实意见…例如,我们将国民保健服务视为*、【关心】、【支持】、【英雄】、【保护】、【乐于助人】* …但我们对政府的看法是一样的吗?#掌声鼓励者对此有什么影响?

《T4》第二部再见……

新冠肺炎情感分析系列,第 2 部分:假设检验

原文:https://towardsdatascience.com/covid-19-sentiment-analysis-series-part-2-hypothesis-testing-3db511875165?source=collection_archive---------45-----------------------

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

斯科特·格雷厄姆Unsplash 上拍照

Twitter 情感分析/假设检验

理解一级防范禁闭中的伦敦人

在这个系列中,我们将利用伦敦人的推文来了解情绪在新冠肺炎封锁中是如何演变的,以及在他们眼中哪些公众人物和企业是赢家和输家。

第 1 部分:“入门”中,我们使用实体识别和情感评分获得了 Twitter 数据并对其进行了处理。

今天,在第 2 部分中,我们将查看数据,并通过假设检验来验证不同实体的情感得分存在 统计显著性 差异。但是首先…

奠定基础

支撑假设检验的是以下思维过程:

  1. 正态分布:我们承认我们不可能捕捉到这段时间发送的所有推文,所以我们拥有的数据点是从更广泛的人群中获取的样本。如果这种抽样是随机的,除非样本大小为< ~30,否则根据中心极限定理 *,您可以预期您的测量观察(在这种情况下,我们正在测量情绪)是正态分布的。*例如,如果我们的样本均值为 5,则假设分布为:

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

正态分布,样本均值= 5

2。设置测试:为了测试这个样本均值是否不同于另一个样本均值(假设是 2,但它可以是任何数字),我们将计算多少个标准偏差(或者,在抽样统计中,标准误差)会将两者分开,如果它们是同一分布的一部分。也就是说,我们假设它们不是来自不同的情绪分布,而是来自相同的分布:

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

3。标准化标准:想象这个操作,我们正在做的是沿着 x 轴将正态分布移动-2,然后除以标准误差。它成为以 2 为中心的标准正态分布,等式可以改写为:

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

我还概括了一些术语,以突出正在进行的假设检验

3.学生的 t 分布。在下面的测试中,我们将把 z 分数称为一个 *t 统计量。*这是因为我们将假设一个学生的 t 分布,它比标准正态分布有更厚的尾部,从而引入一些保守性来应对类型 I 错误,这是因为我们的观察值数量有限:

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

  • 这个分布的 p 值也是已知的。

让我们继续我们的测试…

假设 1:政府 vs 国民保健服务

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

照片由 Grooveland 设计Unsplash 上拍摄

我们首先来看两个将在数据中得到充分体现的实体:政府和国民保健服务系统。

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

直方图:情绪

国民保健服务的情绪似乎更积极,分布更偏向右侧,我们可以通过查看平均值来确认这一点:

Avg Gov sentiment -0.036
Avg NHS sentiment 0.171

你可能想知道为什么 NHS 的直方图在 0.5 左右有第二个峰值。我以为这些是重复的推文,然而,发现它们得分相同,因为它们都使用了短语“谢谢”,例如…

谢谢#掌声鼓励者#掌声鼓励者# NHS #关键员工#一级防范禁闭#迪士尼乐园巴黎#迪士尼世界#迪士尼#明天将是美好的一天# ColonelTomMoore #冠状病毒

非常感谢 hollandandbarret & @ ray _ electronica 今天的复活节彩蛋捐赠@圣乔治医院# NHS # NHS workers # LondonNHS # front line NHS # medical team # stayat home #冠状病毒…

谢谢 NHS biglove NHS # thankyounhs # clapping fornhs # covid 19 # we einittother # stayat home # bandanavixenv @ sur biton,伦敦

假设:

  1. **每个分布的标准差是相同的。**上面的箱线图通过比较四分位数范围帮助我们直观地证实了这一点:

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

紫罗兰图(左)和箱线图(右)

我们还使用 NumPy 证实了这一点:

StDev of Gov sentiment: 0.508
StDev of NHS sentiment: 0.527

确认这一假设的有效性使我们能够使用混合方差方法,因此 SciPy 的 2 样本 t 检验的实施可以归结为:

如果标准差不同,我们会使用韦尔奇的 t 检验来计算两个样本的标准差。实际上,这意味着只需设置 equal_var =False。

结果:

Ttest_indResult(statistic=43.62708002444751, pvalue=0.0)

回忆样本意味着我们正在比较…

Avg Gov sentiment -0.036
Avg NHS sentiment 0.171

p 值~0 告诉我们,以-0.036 为中心的学生 t 分布极不可能包含 0.171 的观察值。换句话说,上面计算的测试统计表明,平均值 0.171 与平均值-0.036 相差 43 个标准误差

判决:拒绝无效。我们可以很有信心地说,人们对国民保健制度的看法比对政府的看法更好。

情绪何时开始出现分歧?

我们看到整个 3 个月期间的平均情绪有所不同,但这是从什么时候开始出现分歧的?

我们可以绘制平均情绪的每日差异,但是,我们需要调整样本大小和每天数据的标准偏差,以衡量我们对每日样本均值的信心。

相反,我们可以为平均情绪的每日差异计算 95%的置信区间,这将我们的信心纳入我们的采样过程:我们创建一个上限和一个下限,我们有 95%的信心包含当天平均情绪的真实差异。

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

每条垂直的黑线都是为那一天构建的置信区间。每天的置信区间标志着我们有 95%的信心认为政府和国民保健服务的情绪存在真正差异的区域(因为当然我们的数据本质上只是总体人口的样本)。

在观察期开始时,每天发的推文相对较少。这些小的每日样本量导致了较大的标准误差,因为:

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

因此置信区间更宽。随着时间的推移,每日样本量增加,使我们的置信区间变窄。

信心区间在很大程度上完全低于红色零虚线,表明在整个期间,对政府的平均情绪低于对国民保健服务的平均情绪的信心为 95%。有一些罕见的时刻,如 4 月底,当区间越过零线时…在那些日子里,我们不能说我们选择的信心水平是政府情绪低于国民保健服务。

假设 2:政府 vs NHS…积极还是消极的感觉?

我们看到平均情绪有所不同,但这是因为对国民保健服务更积极(复合> 0.05),还是对政府更消极(复合< -0.05)?

Visually it appears both statements could be true, but we will test for this:

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

Distplot comparison using Seaborn

积极推文:

比率的差异是 0.159,即。NHS 的正面推文比例比政府高 0.159。

Difference in (Positive Tweets / Total Tweets): 0.15881778668707092

我们可以通过运行“两个比例的差异测试”来测试这种差异的统计显著性,这同样依赖于计算两个比例来自相同分布的假设的 t 统计量:

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

其中,比例差的标准误差为:

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

因此,我们可以轻松地手动计算 t-stat 和相关的 p 值:

t-statistic 47.33409611769171 p-value 0.0

判决:拒绝无效。另一个假设(NHS 的积极推文比率)距离零(政府的比率)47 个标准误差,p 值为 0,我们说这两者极不可能来自同一人群。

负面推文:

我们重复对负面推文的分析:

Difference in (Negative Tweets / Total Tweets): 0.14177193931000753

我们可以看到政府的负面推文比率比 NHS 的高 0.14,我们测试这一差异是否具有统计学意义:

t-statistic 38.561197004624 p-value 0.0

**判决:拒绝 Null。**与阳性率一样,差异有统计学意义。

或者,我们可以使用 Pandas crosstab 函数创建一个表,显示每个类别中的 tweets 数量。然后应用卡方检验来验证任何一行是否包含 pos、neu 或 neg 推文数量的不平衡:

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

交叉数据分析表

这返回:
-卡方统计量
-p 值
-自由度
-平均分布的预期频率

(1047.7937788707934,
 2.981754146928481e-228,
 2,
 array([[6978.92922191, 3234.01294658, 9538.05783151],
        [6640.07077809, 3076.98705342, 9074.94216849]]))

我们可以从中看出,无论是正面还是负面,推文的分布与平均分布相比是不平衡的。

假设 3:政府 vs NHS…伦敦人的意见有分歧吗?

是不是有些用户在推特上对国民医疗服务体系持更积极的态度,而另一些用户则更消极地指出伦敦人之间的分歧?或者这种对 NHS 的赞同观点在个人用户层面上也是正确的,因此我们每个人都持有这种观点?

这也是一个需要设置的简单测试,称为成对均值测试,我们从再次使用 Pandas crosstab 来创建平均情绪的用户级视图开始:

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

与其他参数检验一样,我们依赖于感兴趣变量分布的正态性假设(在本例中为差异栏),我们可以看到这大致成立:

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

差异列的直方图和 QQ 图

我们使用相同的框架来计算 t 统计量:

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

除了现在替代假设是差异的平均值列,零假设是没有总体差异(即,零),并且与假设 1(其是 2 样本均值测试)一样,标准误差是通过缩放标准偏差(这次是差异)来计算的:

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

或者简单地使用 SciPy:

Ttest_relResult(statistic=-9.035954747008454, pvalue=3.4616270088977246e-19)

**判决:拒绝无效。**即使在个人用户层面,我们也察觉到对政府和国民医疗服务体系的不同看法。看来我们在持有这些不同的观点上没有分歧。

注意:我们不需要正态假设就能对此进行测试,成对均值测试的非参数模拟( Wilcoxon 符号秩 测试)可用于查看中位数,而非均值:

WilcoxonResult(statistic=934184.0, pvalue=1.2233021976129815e-18)

**判决:**同样的结果。

为什么对 NHS 的看法更积极?

虽然我们现在知道公众对 NHS 的情绪比政府更热情,但很难辨别当公众对一个和另一个进行思考时到底激起了什么情绪。我们可以使用单词云来可视化使用了哪些单词:

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

我们并不更清楚,因为图片模糊不清,因为最频繁出现的单词是中性的,对化合价没有贡献。我们需要从政府和国民保健服务语料库中筛选出最具情感性的词语:

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

我们现在对为什么国民保健服务比政府更受欢迎有了更清晰的认识:

**政府:**推特用户在强调感知失败时更多地提到政府,而不是 NHS:

  • 危机、失败、死亡、消亡、脆弱、停止、失败、严重、缺乏、紧急、困难、警告、失败

NHS: 推特通常称 NHS 为英雄,因为他们在如此艰难的情况下给予了支持和照顾。

  • 感谢,关心,支持,嗯,帮助,安全,好,保护,爱,帮助,希望,朋友,英雄,自豪,伟大

因此,有趣的是,尽管表面上朝着一个共同的目标努力,但公众似乎认为 NHS 比政府打得更好。

随着时间的推移,国民保健服务的情绪:

随着时间的推移,这种国民保健服务的情绪是如何演变的?公众是逐渐喜欢上了 NHS,还是开始产生了积极疲劳?

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

(注意:你在 5 月份看到的 num_tweets 的增加是由于我在 第一部分 中提到的我的 Twitter 查询的改进,考虑到这一点,我们仍然可以提出以下几点)

在 3 月底/4 月初,有 3 个明显的每周峰值,最明显的是在推文数量上,但在复合情绪得分上也很明显,这与#ClapforCarers 活动的开始相吻合。

虽然此时对 NHS 的情绪受到了积极的影响,但这些每周的高峰已经基本消退,也许伦敦人已经感觉到#职业疲劳?

摘要

我们已经展示了如何应用假设检验来对 Twitter 情感数据进行统计上稳健的推断。我们已经展示了不同类型的假设检验如何有助于揭示情绪差异的本质,概括如下:

  1. 假设 1: 比较样本均值的双样本 t 检验,使我们能够得出 Gov 与 NHS 情绪平均存在差异的结论。我们还绘制了置信区间来跟踪这一点是如何随着时间的推移而演变的。
  2. 假设 2: 双样本比例差异 t 检验证实了这种高水平的差异是由对国民保健服务的更多积极态度和对政府的更多消极态度共同驱动的。
  3. 假设 3: 一个成对均值 t 检验告诉我们,用户在这方面没有分裂,即。这种 Gov 与 NHS 情绪上的分歧也存在于个人用户层面。
  4. 形象化:我们使用文字云来发现哪些情绪化的词语被用来描述政府和国民保健服务系统,以进一步了解公众的真实想法。我们甚至展示了#掌声鼓励者对国民保健服务热情的影响。

在这一系列的下一篇(也是最后一篇)博客中,我们将撒开网去寻找更多锁定期的赢家和输家。我们将一步一步地深入机器学习领域,开发有趣的方法来解决这个问题…

  • 我们将从重复 word cloud/假设检验技巧开始,寻找新的赢家和输家。
  • 然后,我们将看看如何通过使用逻辑回归模型来简化这一过程,以给出一个整体视图。
  • 最后,我将解释如何以及,重要的是,为什么贝叶斯方法可以帮助我们跟踪一个城市不断变化的情绪。

《T4》第三部再见……

新冠肺炎情感分析系列,第 3 部分:贝叶斯情感分析

原文:https://towardsdatascience.com/covid-19-sentiment-analysis-series-part-3-winners-and-losers-c00f384080a8?source=collection_archive---------45-----------------------

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

彼得罗·兰帕索在 Unsplash 上的照片

推特情感分析/贝叶斯推理

理解一级防范禁闭中的伦敦人

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

在这个系列中,我们一直在使用伦敦人的推特来了解情绪在新冠肺炎封锁中是如何演变的,以及在他们眼中哪些公众人物和企业是赢家和输家。

第 1 部分:“入门”中,我们获得了 Twitter 数据,并使用实体识别和情感评分对其进行了处理。

第二部分:“假设检验”中,我们使用了各种不同类型的假设检验,解释了为什么对国民保健服务的看法比对政府的看法积极得多。

今天,在第三部分(也是最后一部分),我们将扩大搜索范围,寻找更多锁定的赢家和输家:

  • 简单的方法:我们将从简单而繁琐的方法开始:我们重复第 2 部分的技巧,使用文字云和假设检验来突出显示,然后推断谁是赢家和输家。
  • **Frequentist 建模:**然后,我们将看看如何通过使用逻辑回归模型来简化这一过程,以给出一个整体视图。
  • **贝叶斯更新:**最后,我将解释如何以及重要的是为什么贝叶斯方法可以帮助我们跟踪一个城市不断变化的情绪,我们将可视化结果:

使用贝叶斯推理对凯尔·斯塔默的情感建模

简单的方法

回到我们在第二部分“假设检验”中离开的地方,让我们从可视化我们的 tweets 数据集中最常提到的组织开始。我们还缩小了搜索范围,只搜索那些被评为正面或负面的推文,因为我们对找出赢家和输家感兴趣:

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

我们可以清楚地看到,亚马逊和财政部是最常被提及的组织。然而,很难看到这两个以外的东西,因为词云充斥着大写单词,被 spaCy 错误地标记为实体。

尽管如此,我们仍然可以看看亚马逊,然后说:

由于伦敦人在封锁期间转向网上购物,亚马逊将成为大赢家

进行单样本测试来表明亚马逊的情绪得分是积极的是不够的,我们需要表明亚马逊的得分比合理的基线更积极。为此,我们将进行两个双样本均值 t 检验:

假设 1: 亚马逊情绪在封锁前的基础上有所改善。

假设 2: 在所有实体中,处于锁定状态的亚马逊情绪高于基线平均值。

假设 1:亚马逊对亚马逊

我们可以非常容易地创建两个发行版: amazon_prelockdownamazon_postlockdown ,并运行 SciPy 的 t-test:

Ttest_indResult(statistic=0.10878616367025529, pvalue=0.9134795533240211)

这向我们表明,总体平均值的任何差异在统计上并不显著。为什么?

Number of pre_lockdown Amazon tweets = 3
Number of post_lockdown Amazon tweets = 201

因为我们的数据只有 3 条提到亚马逊的预锁定推文,导致标准错误太高,无法拒绝 null。

假设 2:亚马逊与其他公司

类似地创建相关的分布,并运行相同的 t-test:

Ttest_indResult(statistic=2.469890113757005, pvalue=0.01351783280956628)

我们有一个低 p 值,这将导致我们拒绝零,但是让我们检查分布和样本大小,以检查正态假设是否成立,因为我们已经执行了参数统计测试:

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

亚马逊与其他公司:分销

Amazon sample size 243
Other entities sample size 94912

我们在这里可以看到两个问题:

  1. 亚马逊分布看起来很奇怪,因为它有两个峰值,分别位于 x 轴的 0.2 和 0.6 处。运行一些快速 EDA,我们可以看到 0.6 的峰值需要纠正,因为它包含许多来自病毒式宣传活动的非独立推文:

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

**教训:**确保从现在开始删除所有重复的文本。

2.“其他实体”的样本量太大,无法代表我希望它能代表的基线。仅适用于其他组织。看来 SpaCy 错误地将大写单词标记为实体导致了这种分布被污染。因此允许这更接近地代表更广泛的样本集。我手动创建了最常提及的组织的良好子集,它们可以构成“其他实体”:

世卫组织、脸书、FDA、联合国、Whatsapp、乐购、英超、谷歌、FDA、苹果、疾控中心、议会、白宫

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

亚马逊与其他公司:发行版(已清理)

Amazon sample size 183
Other entities sample size 520

重新运行我们的 t 测试:

Ttest_indResult(statistic=1.1270992972809608, pvalue=0.26018755847340846)

我们现在不能拒绝零,因为:

  • 删除重复的内容会删除 35 条推文,亚马逊的平均分也会从 0.15 降到 0.11
  • 虽然“其他实体”的标准偏差变化不大,但由于限制了最常提及的组织,样本量大幅下降,标准误差从 0.0019 降至 0.02,因此降低了测试的统计功效。

本质上,如果我们想要确定亚马逊的正均值和其他公司的中性均值之间的差异在统计上是显著的,我们需要收集更多的样本来增加我们的测试拒绝零均值的能力。我们可以使用功耗分析来衡量这一点…

功率分析

为了以 95%的置信度得出两个样本均值确实不同的结论,我们需要多少条推文?

换句话说:要将第二类错误率降低到某个阈值以下,需要多大的样本量。我们将选择 20%的阈值,这相当于 80%的能力(正确拒绝空值的能力)。

我们可以进行一个功率分析(细节我们不在此赘述),但是代码非常简单,并且利用了 Statsmodel 的 TTestIndPower 函数:

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

效果大小= 0.13 的功效分析

这表明我们的测试需要几乎 1000 条 tweets 的非常大的样本量来正确拒绝 80%的空值。

因此,即使一个商业实体(亚马逊)与所有其他关于商业实体的最多推文进行了相对大量的测试,仍然没有给我们足够的统计能力来区分他们的手段。

然而,我们从单样本测试中得知,我们相信对亚马逊的看法是积极的:

Ttest_1sampResult(statistic=4.298040028883434, pvalue=2.616546144158821e-05)

所以 2 个样本的测试没有足够的统计能力,而单独观察每个实体就可以了。

然后,我们如何在所有实体中呈现这种单样本视图,以查看哪些实体确实是赢家/输家,而不必单独对每个实体重新进行 t 检验?

频繁主义建模

为了做到这一点,我们可以把这个问题重新组织成一个监督学习问题。我们可以应用 Statsmodel 的逻辑回归分类器预测两个标签类别阳性或*阴性、*中的一个,其特征是由 SpaCy 识别的组织。

我使用 scikit-learn 的tfidf 矢量器将实体编码到一个 features 数组中,使用其 TF-IDF 方法获得权重。我还使用这个函数来删除停用词和其他不需要的词,并将其限制在前 70 个特性中。返回的结果是:

逻辑回归结果

整个模型,特别是当只限于 70 个顶级特征时,无法预测一条推文是正面还是负面的(看 R)。然而,我们可以在个体特征层面学到很多东西:我们可以看到哪些是净正的(因为 coef > 0),哪些是净负的(coef < 0).

The model results also show us the certainty of our sample statistic (the coefficient) using: the standard-error for that distribution (influenced by sample size), the z-score and the p-value which both show whether this sample statistic was statistically significant, and then the 95% confidence interval for the sample statistic.

Winners:

  • **科技公司。**正系数和接近 0 的 p 值让我们毫不怀疑,亚马逊、苹果、Whatsapp、Instagram 等公司在推特上获得了正面评价。
  • 英国政府的口号 stayhomesavelives ,也有一个非常积极的系数。沿着这些思路,自我隔离是另一个积极的故事,和社会距离。公众积极支持这些努力。

失败者:

  • 多米尼克·卡明斯。极化图有一个非常负的系数。在围绕他决定打破社会距离规则的争议期间,这种情况显著恶化。
  • 令人惊讶的是,Keir Starmer 的系数为负,这可能是由于对政府做法的批评吗?不,从数据来看,这实际上是因为人们批评他没有让政府承担足够大的责任。
  • 由于推特指出了 NHS 医院的短缺,PPE 也被负面描述。

其他注意事项:

  • 描述政府人物和部门的词通常具有较高的 p 值和跨越 0 阈值的宽置信区间,表明公众对其表现的看法不一。

结论:

我们已经使用频率统计创建了一个自上而下的方法来寻找好的和坏的情绪的组织驱动因素,但是这依赖于我们已经收集的 3 个月的数据。

在观察期开始时,情况发展很快,我们看到对一个实体的情绪波动很大,加上样本量较小,导致不确定性更大。这就是贝叶斯模型可以帮忙的地方…

贝叶斯的常客

在频率主义者的世界观中,我们有一个更广泛的人群,通过抽样,我们试图了解他们。因此,有一个真正的总体参数,通过抽样,我们可以通过我们的样本统计估计。

  • 用这种方法,我们仍然试图得出一个单一的估计数。
  • 通过这种方法,我们也允许我们的观点只被我们的观察期所了解,而不是被任何先验知识所了解。

在贝叶斯的世界观中,我们不认为有更广泛的人口。我们只有样品。然而,我们不得不承认,因为我们的样本量是有限的,所以我们的样本统计存在不确定性,所以我们应该将其建模为分布,而不是一个单一的数字。

  • 通过这种方法,我们采用了一个预先的假设,并使用贝叶斯定理用新的观察来更新这个假设,从而得出当前的世界观。

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

贝叶斯定理

其中:

  • =先验假设
  • P(data|p) =新的观察值(如在 Frequentist 方法中),也称为似然函数
  • P(p|data) =最新的(或:“后验”)假设,在我们用最新的观察结果更新了先验之后。

鉴于大多数数据收集的“实时”性质,特别是在新冠肺炎这样的独特事件之后,看看贝叶斯方法如何帮助我们回答这个问题是有意义的。

贝叶斯建模

让我们首先概述一下这种方法:

  1. 我们有两种选择来模拟贝叶斯定理的元素(如上):
  • 共轭(如果可能的话,更简单和优选):如果先验是似然函数之前的共轭,则后验将是与先验相同类型的分布。这有利于使贝叶斯定理代数可解,后验(未知)参数用先验和似然(已知)参数表示。
  • ***抽样技术(*例如马尔可夫链蒙特卡罗):有有限数量的共轭先验,如果我们的数据不符合其中任何一个,那么我们就需要使用抽样技术。

2.幸运的是,由于我们只对二元结果感兴趣(我们的推文要么是正面的,要么是负面的,因为我们将省略中性推文),我们可以使用最简单的共轭对来实现共轭:β二项式对

  • ***似然函数:*对一组推文进行采样,并将其标记为成功(正面)或失败(负面)是一种二项式分布:

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

二项分布

  • ***先验:*贝塔分布描述了两个二元结果的概率范围:

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

贝塔分布

  • 后验概率: …我们可以添加 n 次试验和 k 次成功来得出后验概率:

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

后验贝塔分布

这是一个漫长而复杂的等式,但从中可以得出一些重要的直觉:

  • 二项式分布可以被认为仅仅是连续贝塔分布的离散形式。我们在上面证明的贝叶斯更新模拟了实际发生的情况:当新数据进来时,这通过二项式似然函数被表示为离散的数据点,其用于更新平滑的先验分布。
  • α和β现在可以非常简单地用先验和似然性来表示:

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

应用

我们可以使用逻辑回归的输出来给出我们可以查看的最热门的实体列表。

为特定实体构建贝叶斯建模管道的过程可分为两个阶段:

  1. 先验:
  • 统计在封锁前这段时间有多少正面和负面的推文:

  • 使用此数据计算先验β分布的α和β:

2.后路:

  • 使用公式记录新数据出现时α和β参数的变化:

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

我还在 Matplotlib 中创建了一个动画,可以向我们展示这种演变:

让我们来看看几个感兴趣的实体的情绪演变:

亚马逊

在此期间有 183 条推文提到亚马逊,橙色分布显示了封锁前情绪的概率分布,即。在那之前的两周。这是我们对亚马逊情感概率分布的先验信念。

这种情况下的分布非常平坦和浅,反映了这样一个事实,即只有相对较少的推文告知我们之前的信念:只有 2 条正面推文和 1 条负面推文。

一旦我们进入一级防范禁闭状态,我们就会用从一级防范禁闭期间收集的推文更新先验信息。这使我们能够对后半部分(蓝色)进行建模。请注意,随着时间的推移,随着我们收集更多的推文来通知我们的后验分布,分布如何变窄并达到峰值(由滑块表示)。

  • 亚马逊的先验处于中性区域:0.5。但在封锁后几乎立即跳进了积极的领域,并停留在那里。
  • 最终最大后验概率估计,即其中 0.6 的后峰显示亚马逊的情绪更可能是积极的(由 x 轴上的 1.0 分表示),而不是消极的(x 轴上的 0 分),这是基于我们发现的数据平衡来更新我们之前的信念。

凯尔·斯塔默

在封锁之前,我没有关于凯尔·斯塔默的推文来告知任何关于他的预先信念。在这里,您可以将α和β都设置为 0.5,因此采用 Jeffreys 的先验模型来模拟未知分布。先验呈 U 形。

在封锁期间,我们收集了 66 条推文,在整个期间,斯塔默的地图一直处于负值,徘徊在 0.2 左右。

Dominic Cummings

我们为多米尼克·卡明斯(Dominic Cummings)收集了 1003 条推文,在封锁前,他在我的数据集中除了积极的推文什么也没有。

在进入锁定期大约 20 天后,后验分布已经向左移动,地图结束时略低于 0.5。

这种从积极情绪到消极情绪的转变,从看实际日期,与围绕他打破社交距离规则的争议相吻合。

结论/最终想法

在这个博客系列中:我们展示了从 Twitter 建立一个 feed,应用一些文本处理,进行情感评分,并以一种明确赢家和输家的方式分析每个实体的情感是可能的。

假设检验:

我广泛地用这个来理解我的发现带来了一些统计上的清晰,这教会了我一些需要谨慎对待的领域:

  • p 值:如果样本量足够大,可以确保足够低的标准误差,则可以很容易地使其具有统计显著性。问问自己你的测试是否具体到可以提出一个尖锐的问题?问问你自己你的过滤设置是否正确,确保你的样品没有膨胀。
  • 正态假设:由于中心极限定理,这通常在大多数情况下成立,但我们总是可以使用我们假设检验的非参数版本,如 Mann-Whitney 或 Wilcoxon 符号秩检验。
  • 均值回归/中和:对于任何足够大或不够具体的数据片段,情绪通常会聚集在 0 附近,没有意义。查看您的子样本的分布,如果它在 0 情绪有一个高峰,那么您可能需要更具体的过滤,以进行有意义的假设检验。

整体赢家/输家:

为了获得一个整体的观点,我使用逻辑回归来模拟正面和负面标签的推文,使用矢量化实体列作为预测矩阵。

这给出了一些有趣的结果:

  • 总体 R 很低,这表明我需要比我包括的几个特征更多的特征,才能准确地模拟一条推文是正面还是负面。
  • 然而,这不是我想要的…我感兴趣的是我包括的那些特征如何对积极或消极做出贡献,这可以从它们的系数中得到。与 scikit-learn 的软件包相比,使用 statsmodel 的软件包的好处是能够看到每个系数的统计置信度。
  • 因为我们实际上对情感有一个不断进化的观点,所以我们转向了贝叶斯方法…

贝叶斯赢家/输家:

在这里,我设置了一个动画滑块来显示先验分布,然后随着新数据的到来,后验分布如何演变,这可以根据选择的实体进行配置。

  • 这清楚地表明了卡明斯和 T2 的情绪是如何以及何时开始恶化的,并给出了一些很好的解释。如果我们在现场运行,我们的模型会给我们提供这种恶化的早期线索,我们就可以一条一条地跟踪推特了。
  • 通过将概率分布附加到每个阶段的情绪,它也清楚地显示了我们的后验信念的确定性。
  • 使用β-二项式模型极大地简化了参数,观察这种共轭性的一个好方法是二项式分布只是β分布的离散版本,因此简单地反映了单个新数据点到连续先验的增加。这在数学上被解决为通过添加二项式参数来更新β参数。

对于那些已经做到这一步的人,感谢您的阅读,当然欢迎并感谢所有的反馈,您可以在这里找到回购:

* [## 诺亚贝尔赫/新冠肺炎

NLP 应用于最近的冠状病毒/ COVID19 推文:最近几周情绪进展如何?刮刮伦敦总部…

github.com](https://github.com/noahberhe/COVID-19)*

新冠肺炎模拟器

原文:https://towardsdatascience.com/covid-19-simulator-da5be0067193?source=collection_archive---------51-----------------------

口罩如何有效减缓新冠肺炎的传播

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

我们设计了一个新冠肺炎模拟器,在戴口罩和不戴口罩的不同场景下可视化病毒的传播。据透露,在 Unsplash 时,R0(每个感染者通常导致的二次感染数)可能会下降到< 1 (each infected person will infect less than 1 person in average), which strongly indicates that the virus spread could be significantly reduced.

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

Ultrastructural morphology exhibited by coronaviruses. Photo by CDC

自从 12 月 31 日在中国武汉报道首例病例以来,一种易感染的动物源性病毒 ovid-19 迅速席卷全球。在过去的 6 个月里,美国有超过 200 万人被感染,导致经济下滑和全国性的社会焦虑。根据美国劳工部的失业数据,从二月到四月,失业率从 4%飙升到 14 %, 1500 万人失业。

我们如何降低在公共活动中被感染的风险?尤其是我们已经看到了各州重新开放后的第二波疫情

CDC(疾病控制和预防中心)建议采取非常常规的预防措施:洗手、戴口罩和保持社交距离。这是我们从小就学到的老知识,但是这些程序能在多大程度上减少我们被感染的机会呢?在这里,我们开发了一个新冠肺炎模拟器来模拟病毒在室内环境中的传播,并比较了不同场景下新感染人数和新感染所需的最短时间: 1)不戴口罩,2)部分戴口罩,3)全部戴口罩。

模拟器设计

方案

人们在室内市场购物。市场只有一个入口/出口。市场中的人数(市场中的人数)是恒定的:一旦人们到达进入/退出,他们将退出,不会回来。与此同时,同样数量的新人将进入市场。假设随机有一个人感染了新冠肺炎病毒,他/她在购物时间只咳嗽/打喷嚏一次。我们想知道有多少新的人(R0)被这种最初的新冠肺炎携带者感染,以及第一个新的感染多快出现,以便评估口罩的有效性。

假设/近似

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

图。简化市场空间设计

  1. 市场被设计成一个矩阵
  2. 矩阵大小
  • 每个细胞的大小是一个 6 英尺* 6 英尺的正方形(CDC 建议的社会距离)。整个市场有 10 * 10 个单元(总共 3600 平方英尺)。因此,市场可以模拟为一个 10 * 10 的矩阵(每个对代表一个单元)。
  • 如果人们在受感染的细胞内,不戴口罩的人将 100%被感染,而戴口罩的人被感染的几率会大大降低。

3。市场中的人数(市场容量)

  • 沃尔玛和山姆会员店现在任何时候每 1000 平方英尺只允许五名顾客进入,这大约是商店容量的 20%。因此,模型中的容量范围将从 10 到 100。

4。从一个单元到另一个单元的行进速度

  • 这是相当主观的,但是我们可以假设平均购物行程需要 40 分钟才能走完 0.5 英里,所以从一个单元走到另一个单元需要 0.1 分钟(6 英尺的距离)。换句话说,每一步/每一个动作需要 0.1 分钟。下一步有 8 个自由度:上,下,左,右,左上,直立,左下,垂直和停留。

5。新冠肺炎病毒变得无传染性所需的时间

  • 典型房间和建筑物的换气率为6–10(一个空间内的空气在 60 分钟的时间段内被过滤或被新空气替换的速率)。因此,我们可以假设 10 分钟后,新冠肺炎病毒没有传染性。如果我们用步数来计算时间,需要 100 步新冠肺炎才会变得无传染性

编程语言

模拟器设计使用 Java。Python 用于数据分析和可视化。

模拟器设计

我们设计了三大类(空间、位置、人)和一个随机数发生器来实现模拟器的基本功能:初始化模型,跟踪每一步人的健康状况。简而言之,

  1. 类空间

Space(int size,int numOfPeople,int initialSick,int maskPercent,int maskSickPercent,int unMaskSickPercent) {…}

类别空间由 1)矩阵的大小,2)矩阵中的人数(市场容量),3)矩阵中的初始感染人数,4)戴口罩的人的百分比,5)如果戴口罩被感染的概率,以及 6)如果不戴口罩被感染的概率来初始化。

空间有几大功能,包括**()getHealthyPeople**()跟踪感染和健康人的名单,以及next move**()更新每个人下一个位置的状态,如果有人到达出口,调用 离开

2。类别位置

Position(int row,int col) {…}

用行号和列号初始化类位置。每个职位都维护该职位的人员列表。它还具有 【添加人员】 (人员)离开 () 功能,用于从当前位置添加/删除人员。Helper 类定义了两个与位置相关的 helper 函数:getRandomPosition(int size)生成随机位置,以及get next Position****(Position[][]matrix,int row,int col)* 从当前位置基于随机方向得到下一个可能的位置。*

3。上课的人

Person(int id,boolean isSick,Mask mask) {…}

Person 类用 id (int,用于标识个人)、isSick (true 或 false)和 Mask status (enum YES 或 NO)初始化。它还有一个字段来记录一个人何时(在哪一步)生病(如果这个人是健康的,则为-1)。

4.枚举概率

枚举概率{是,否;…}

根据输入的概率,指定 1)戴口罩的人的概率,以及 2)当人们进入受影响的位置时被感染的概率。

数据分析和可视化

模拟输出

为了使输出更少偏差,对于每个数据点,我们重复模拟 1000 次,并使用中位数。我们通过调整空间模型的输入参数来评估不同场景中新感染的总人数和新感染所需的最少步骤:1)人数( numOfPeople )、2)最初感染的人数( initialSick )、3)戴口罩的人的百分比( maskPercent )、4)如果戴口罩被感染的概率( maskSickPercent )和 5)如果不戴口罩被感染的概率(

Space(int size,int numOfPeople,int initialSick,int maskPercent,int maskSickPercent,int unMaskSickPercent) {…}

输出文件是 csv 文件,“round”表示步数,“id”是人员 ID,“row”和“col”表示在矩阵中的位置,“timeStampIfSick”是此人被感染时的轮数(-1 表示此人未被感染),“stay”表示此人是否在市场中,“mask”表示此人是否戴口罩,颜色表示此人是否被感染(红色表示感染,绿色表示健康)。

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

图。模拟结果示例

新冠肺炎在市场上传播的可视化

如前所述,我们可以看到市场中人们的健康状况(感染和健康)。简而言之,我们将市场空间建模为一个 10 * 10 的矩阵,每个交叉点代表一个 6 英尺 6 英尺的区域。入口/出口位于(0,0),健康人用绿圈表示,感染者用红圈表示。受影响的区域被标记为一个更大的红色圆圈。在单个模拟中(市场容量为 50,初始感染人数为 1,屏蔽百分比为 0%,无屏蔽疾病为 100%),我们观察到在第 0 轮(第一轮指数为 0),只有 1 人被感染;而在 100 轮之后,20 人被感染,这表明 R0 是 19。换句话说,如果一个 3600 平方英尺的市场里有 50 个人,如果没有人戴口罩,仅仅 1 个人就会感染 19 个人*

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

图。从 1 名感染者开始的第 1 轮(左)和第 100 轮(右)市场人员的健康状况(市场容量为 50 人)

数字 19 本身看起来并不可怕,但如果疾病的 R0 是 19,那将是灾难性的

我们以 R0 等于 2 为例,表示疾病会感染两个人。假设 2 天后,被感染的人变得具有传染性。因此,每 2 天,患者人数就会增加一倍。如果这种疾病得不到控制,66 天后,在最坏的情况下,它将感染超过 80 亿人,这比目前世界上的人口要多得多!考虑到这一点,在我们的例子(19)中 R0 是一个可怕的数字,我们想知道口罩是否能有效地降低 R0,以及减缓新冠肺炎的传播。

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

图。R0 = 2 的指数增长模型

市场容量和初始感染人数对新冠肺炎传播的影响

原来新感染人数和市场容量之间是线性关系:增长速度相同。相比之下,随着初始感染人数的增加,新感染人数呈对数增长:从 1 名初始感染人数开始,病毒在市场容量为 50 人时会感染 19 人,如果初始感染人数分别增加到 2 人和 3 人,新感染人数会增加到 32 人和 43 人,在初始感染人数达到 4 人后会趋于平稳。

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

图。受市场容量影响的新感染人数(左)和初始感染人数(右)

就新冠肺炎的传播而言,市场容量和初始感染人数的增加都加速了病毒的传播(表现为对新感染采取的步骤减少)。如果在不同的市场容量下,初始感染人数被设置为 1,则新感染的最小步数将从容量为 10 时的 12 步指数下降到容量为 100 时的 0 步。如果市场容量设置为 50,初始感染人数不同,则新感染不会晚于第 1 步。

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

图。感染新人所需的最少步骤。如果在 100 步之后,没有新的感染,则感染新的人所采取的步骤被设置为 110。

无论是新增感染者还是新冠肺炎的传播速度,都会随着市场容量(市场更拥挤)和初始感染者(市场初始感染者更多)的增加而增加。但是哪个因素影响更大呢?

似乎减少市场上的初始感染者比减少市场容量更能有效地减缓新冠肺炎的传播。但不幸的是,与限制市场中的人数相比,在感染者进入市场之前识别他们要困难得多,尤其是在他们没有表现出任何症状的情况下。根据斯克里普斯研究转化研究所的研究, 40%-45%的感染者是无症状的。换句话说,即使一个人感染了新冠肺炎病毒,也有近 50%的可能性这个人没有表现出任何症状,比如发烧、咳嗽或气短,但这个人能够将病毒传播给他人。

面具对新冠肺炎教传播的影响

鉴于进入市场的初始感染人数难以控制的情况,口罩会显著减少新冠肺炎的传播吗?还是勉强?

下图显示了不同情况下新感染总人数的增长与市场容量和初始感染人数的关系:1)不戴口罩,2)部分戴口罩,50%的人戴口罩,3)所有人都戴防护等级为 80%的口罩,4)所有人都戴防护等级为 95%的口罩,以及 5)所有人都戴防护等级为 99%的口罩。说 99%的防护水平,意思是如果一个人戴着口罩去了受感染的区域,这个人有 1%的概率会被感染。

在这里,我们可以清楚地看到,随着越来越多的人戴上口罩和防护等级更高的口罩,新增感染者总数趋于“扁平化”(病毒传播减少)。在市场上只有 1 名初始感染者的情况下,如果所有人都佩戴 95%防护水平的口罩,即使容量从 10 到 100 增加 10 倍,新感染人数也只会增加到 4 人。当保护水平提高到 99%时,在市场容量为 100 时,只有 1 人会被感染(最拥挤的情况)。当最初有多名感染者时,也观察到类似的情况:当 50 人中有 20 人最初被感染时,如果所有人都戴口罩,只有 4 人被新感染,而如果没有人戴口罩,则有 41 人被新感染。

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

图。不同场景下受市场容量(左)和初始感染人数(右)影响的感染人数对比。

此外,口罩也将大大减缓新冠肺炎的传播,即使市场上有多个最初感染者。据观察,如果没有人戴口罩,随着市场容量和初始感染人数的增加,病毒几乎立即传播。相比之下,当人们戴上口罩和防护水平更高的口罩时,病毒形成新感染所需的时间越来越长。如果市场容量和初始感染人数控制得好,病毒甚至在其生命周期中找不到下一个宿主。这强烈表明,口罩将有助于减少甚至阻止新冠肺炎的大规模传播。

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

图。不同情景下受市场容量(左)和初始感染人数(右)影响的感染新人所需的最少步骤的比较。如果在 100 步之后,没有新的感染,则感染新的人所采取的步骤被设置为 110。

结论

该项目旨在定量评估口罩在不同情况下如何有效减少新冠肺炎的传播:1)不戴口罩,2)部分戴口罩,3)全部戴口罩。新冠肺炎模拟器旨在模拟真实市场,数据是根据我们的假设生成的。据透露,如果所有人都戴口罩,即使在市场非常拥挤、有多个初始感染者和/或难以保持社交距离的情况下,新感染人数也可能减少到 0。虽然感染率可能被夸大了,特别是考虑到即使没有人戴口罩,人们进入受影响区域时也不应该 100%被感染。然而,这里要传达的信息是在公共场合戴口罩不仅是保护自己的责任,也是保护他人的责任。****

感谢您阅读这篇文章。这项工作是由刘泳和维多利亚苏怡平等贡献。有关新冠肺炎模拟器设计和数据分析的更多信息,请访问 my Github

德国新冠肺炎社会距离模拟

原文:https://towardsdatascience.com/covid-19-social-distancing-simulation-f091a58732f9?source=collection_archive---------15-----------------------

我们什么时候能恢复正常生活(德国情景)?

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

图片来自 Pixabaykalhh

TL;博士

我使用 RKI 的基准模拟了 5 个场景(如果没有实施社交距离,到 2020 年 6 月中旬达到 1000 万活跃案例)。如果您只想查看结果,请滚动至第 5 部分

所有代码都发布在我的 GitHub 这里

目录

0。免责声明
1。简介
2。概述3
数据输入
3.1 MIDAS 研究网
3.2 JHU 和 RKI 知识库
3.3 社会人口统计数据
4 .车型
4.1 SIR
4.2 SEIR
4.3 SEIR+DH
5 .模拟
——5.1 无社交距离
——5.2 10%社交距离
——5.3 25%社交距离
——5.4 50%社交距离
——5.5 90%社交距离
6。致谢

更新 4 月 3 日从 2020 年 3 月 23 日(总理默克尔宣布国家紧急状态的那一天)开始的每个场景的预计死亡病例

0 免责声明

我不是流行病学家,所以我不能 100%保证上述情景会成为现实。我相信这种形象化将有助于解释“社会距离”的影响,通过这一点,我想强调的是,在这个疫情,每个人都扮演着重要的角色。

请记住,这是一个简单的 SEIR+DH 模型,在撰写本文时,用于训练该模型的可用数据有限。

您可以在我的 GitHub 上查看 Jupyter 笔记本中的代码

此外,我希望这将激励人们探索更多的数字和模型,而不仅仅局限于主流媒体和潜在的不那么可靠的新闻。

1 导言

这个分析的目的是对我们何时回到在德国的正常生活做出最好的“猜测”。

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

电晕表情符号(来源)

罗伯特·科赫研究所(RKI)对德国的“无社交距离场景”的估计在此用作本次模拟的基准。报告称,如果不采取干预措施,3 个月后(截至 2020 年 3 月 19 日),感染病例数将上升至**~ 1000 万**。

鉴于社会现在处于完全或完全“封锁”状态(取决于你住在哪里),我想在这次尝试中使用社会人口统计和疾病数据以及简单的流行病学模型来模拟 5 种不同的社交距离场景。

这 5 种情况如下:

  1. 没有社交距离
  2. 10%的社交距离
  3. 25%的社交距离
  4. 50%的社交距离
  5. 90%的社交距离

2 概述

整个项目可以很快总结在这张图表中:

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

项目一览

3 数据输入

3.1 MIDAS 研究网络:

我直接使用来自 MIDAS 新冠肺炎研究网络的估计参数进行分析:

  • 潜伏期 —从暴露到症状和体征首次出现之间所经过的时间
  • 痊愈率 —“从症状出现到痊愈的时间”,从新加坡和中国的研究期刊上获得(使用对数正态参数生存方法&在 t 时间累计痊愈/死亡人数与感染人数的比率)。
  • 基础繁殖率(R0) —从一个传染者身上传染疾病的平均人数。它特别适用于以前没有感染和没有接种疫苗的人群。如果一种疾病的 R0 为 18,那么只要没有人接种过疫苗或者在他们的社区中已经对其免疫,那么患有这种疾病的人平均会将这种疾病传播给其他 18 个人。

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

R0 值越大表示传染病越多(来源: 健康热线 )

  • 报告率 —置信区间高达 95%的最新研究表明,新冠肺炎病例的实际报告率为 75%(截至 2020 年 3 月 29 日)

为了计算每天的死亡案例,我使用以下参数:

截至 2020 年 3 月 29 日,收集的参数值如下:

Incubation period: 6.55
R0 - basic reproduction rate: 3.26
Time from hospitalization to death: 10
Recovery time: 21.02
Reporting rate: 0.75
Critical death rate - without hospitalization: 0.122
Probability of an infected case but asymptomatic: 0.179

3.2 JHU(约翰·霍普金斯大学)和 RKI(罗伯特·科赫研究所)存储库

*# Get total timeseries from JHU*
global_confirmed = pd.read_csv('https://github.com/CSSEGISandData/COVID-19/raw/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv')global_death = pd.read_csv('https://github.com/CSSEGISandData/COVID-19/raw/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_deaths_global.csv')global_recovered = pd.read_csv('https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_recovered_global.csv')

3.3 社会人口统计数据

  • 年龄分布为德国金字塔年龄。其他国家的数据也可以在此页面收集(某些国家截止到 2018 年)

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

德国的年龄金字塔—资料来源:人口金字塔

  • 经合组织数据库【https://data.oecd.org/healtheqt/hospital-beds.htm提供的医院床位和医护人员数量
  • 对于每个年龄组的死亡率,我使用了 2020 年 3 月 16 日“帝国理工学院新冠肺炎响应小组”报告中的数据。下表显示了每个年龄组的死亡率:

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

资料来源:帝国理工学院新冠肺炎应对小组

在收集了所有的社会人口统计数据后,以下是死亡率和住院率的结果:

  • 比例 _ 德 _2020 是德国人口的年龄分布

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

死亡率和住院率快照

4 款

4.1 先生

1927 年,Kermack 和 McKendrick 首次使用了 SIR 模型,随后该模型被应用于多种疾病,尤其是通过空气传播的儿童疾病,这些疾病在痊愈后具有终身免疫力,如麻疹、腮腺炎、风疹和百日咳。S、I、R 代表易感、感染、痊愈个体数, N = S + I + R 为总群体数。

该模型假设:

  • 人口规模是固定的(即不出生、不死于疾病或死于自然原因)
  • 传染原的潜伏期是瞬间的
  • 完全同质的群体,没有年龄、空间或社会结构

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

来源: EMOD 艾滋病毒建模

其中 N(群体)= S(易感)+ I(感染)+ R(康复)

控制疾病传播的关键因素是 R0(基本繁殖率),即患病者感染的平均人数。

参数β(β)和γ(γ)定义如下:

β =人群中的平均接触率。

γ =平均传染期的倒数(1/t _ 传染)。或通常称为“回收率”

可以通过计算 R0 来获得这些参数:

R0 = β/γ

4.2 SEIR

许多疾病有一个潜伏期,在此期间,个体被感染但还没有传染性。感染的获得和感染状态之间的这种延迟可以通过增加一个潜伏/暴露群体 E,并让感染(但还没有传染性)的个体从 S 移动到 E 和从 E 移动到 I,而包含在 SIR 模型中。

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

来源: EMOD HIV 建模

其中 N(人群)= S(易感)+ E(暴露)+ I(感染)+ R(康复)

暴露是指人群已经暴露于疾病,但没有表现出任何症状,也没有变得具有传染性(又名——仍处于潜伏期)。因此,第三个参数δ(δ)计算如下:

δ =潜伏期的倒数(1/t _ 孵育)

4.3 SEIR + DH

  • 另外两个因素 D & H 被加入到 SEIR 模型中,这两个因素分别说明了死亡病例数和住院病例数。

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

其中 N(人群)= S(易感)+ E(暴露)+ I(感染)+ R(康复)+ D(死亡)

这两个数字的计算方法如下:

*住院病例(第 t 天)=住院率(每年龄组)活跃感染病例(第 t 天)

为了计算死亡病例的数量,我使用从住院到死亡的时间来获得过去的住院病例(如果卫生保健系统没有超载)并估计第(t)天的总死亡病例。

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

死亡病例计算方法(h2d =“从住院到死亡的时间”)

社交距离因子(s_dist) 这是一个添加到(S)和(E)变量中的参数,它们乘以 β 。由于我使用 RKI 的报告作为基准,所以对于无干预的 s_dist 的估计值为 ~ 1.2

(1) S[t] = -(s_dist * β*S[t-1]*I[t-1])/N(2) E[t] = s_dist *S[t-1]*I[t-1] — δ*E[t-1]

5 模拟

在开始场景模拟之前,我们先来看看德国的历史数据。截至 2020 年 3 月 28 日,德国已有近 60k 确诊病例 ~ 9k 痊愈,接近 500 死亡。

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

让我们试着预测一下未来 180 天(6 个月)会发生什么。由于本模拟中使用的死亡率是根据目前可用的研究报告的,当我们有了更准确的数字时,动态可能会改变。以下是模型的输入:

# Define parameters
t_max = 180 # forecast next 180 days
dt = 1
t = np.linspace(0, t_max, int(t_max/dt) + 1)
N = population# Current exposed cases but yet show symptoms (infectious)
E_0 = round((no_c - no_r - no_d) * RR)
# Current recovered cases
R_0 = no_r
# Current hospitalized cases (part of current infected active cases)
H_0 = func.hospitalized_case(no_c - no_d - no_r, AGE_DATA)
# Current infected cases = confirmed - recovered - deaths
I_0 = no_c - no_r - no_d 
# Current deaths
D_0 = no_d
# Cummulative deaths
CD_0 = no_d# Current susceptible cases
S_0 = N - (I_0 + D_0 + R_0 + E_0)init_vals = (S_0, E_0, I_0, R_0, H_0, D_0, CD_0)# Parameters
# inverse of incubation period
delta = 1/IB
# Beta = gamma - (recovery rate =  1/infectious_day) * R0 
beta = 1/RT * R0 
# Recovery rate
gamma = 1/RT

5.1 没有社交距离

对于第一种没有社会联系的情况。由于 RKI 预测德国的总活跃感染病例将在未来 3 个月达到1000 万,让我们将这 1000 万作为“无社会距离”情景的基准。

这里对社会距离参数的估计是 1.2 ,这导致我们到2020 年6 月 19 日1000 万活跃感染病例

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

从 2020 年 3 月 23 日起没有社交距离

在这种情况下,该模型预测德国将在 7 月左右达到其入住率峰值,在此期间207 万活跃病例需要住院治疗,但其中只有一半得到治疗。因此,“总死亡数”曲线在这段时间后显著增加(从住院到死亡的平均时间为 10 天)。

到该预测期(6 个月)结束时,死亡总人数将达到 820 万(使用当前死亡率)

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

无社交距离情景—预计医院床位高峰占用率

从下面的图表来看,“没有社交距离”情景下的预计死亡案例相当高。50-59 岁年龄组的死亡病例总数最高,6 个月结束时死亡人数超过 110 万(使用当前住院率)。

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

2020 年 3 月 23 日无社会距离——预计死亡病例

如果没有干预,德国的医疗保健系统将从 7 月初开始超负荷运转,并在 7 月底达到高峰,预计 6 个月后总死亡人数将超过 800 万。

5.2 10%的社交距离

在这种情况下,德国从2020 年 3 月 23 日(默克尔总理演讲后)开始应用社交距离法。可以看出,与没有社交距离的情况相比,感染病例略有下降。而且预测死亡病例总数和第一个病例相差不大(~ 750 万例死亡)。

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

从 2020 年 3 月 23 日开始,10%的社交距离

同时,到 7 月底,德国的医疗保健能力将在同一时期超负荷运转,这一次将有 186 万病例需要住院治疗,但只有略多于 1/3 的人得到治疗。

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

10%的社交距离——预计医院床位高峰占用率

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

10%的社交距离——预计死亡案例

5.3 25%的社交距离

接下来,我们假设德国从 2020 年 3 月 23 日开始应用 25% 社交距离方法。

可以看出,与上面的其他两种情况相比,感染病例显著下降。在这种情况下,180 天后的死亡病例总数约为500 万(使用当前估计的病死率),国家医疗保健系统仍将超负荷运转(8 月中旬左右达到高峰,有 150 万病例需要住院治疗)

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

25%的社交距离

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

25%的社交距离——医院床位高峰占用率

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

25%的社交距离——预计死亡案例

5.4 50%的社交距离

我们已经“拉平了曲线”,但没有那么多。现在让我们看看是否每个人都遵守社交距离 50%的规则(从 2020 年 3 月 23 日起)

可以看出,与上述三种情况相比,感染病例显著下降。在这种情况下,180 天后的死亡病例总数仅为 184k ,国家医疗保健系统仍不会超负荷(9 月中旬左右为高峰)。

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

2020 年 3 月 23 日的 50%社交距离情景

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

50%的社交距离——预计医院床位高峰占用率

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

50%的社交距离——预计死亡案例

从 2020 年 3 月 23 日开始的 6 个月后,如果德国人遵循社交距离(90%社交距离),只有大约 4000 人死亡!

5.5 90%的社交距离

上面的场景看起来“足够好”,但如果我们真的将社交距离法则发挥到了极致呢?让我们试着模拟一下如果每个人都遵循社交距离到 90% 的情况。

正如你所看到的,如果每个人都真正遵守规则,180 天后的死亡总数将会降低到只有~4k,德国的医疗保健系统将不会超载!!

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

90%的社交距离

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

90%的社交距离——医院床位高峰占用率

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

90%的社交距离——预计死亡案例

6 次致谢

灵感来源于 Element AI 团队的corona-calculator(https://corona-calculator.herokuapp.com/)和 Christian Hubbs 的流行病学动态扩散模型(https://www.datahubbs.com/)

新冠肺炎测试。你的机会有多大?

原文:https://towardsdatascience.com/covid-19-testing-what-are-your-chances-33f0af5d2ae4?source=collection_archive---------10-----------------------

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

阿迪·萨瓦拉在 Unsplash 上拍摄的照片

统计思想在新冠肺炎检验中的应用

注意:我不是医学专业人士,这篇博客只是我对我认为与诊断测试相关的统计学观点的看法。

检测新冠肺炎 你不需要介绍新冠肺炎,这种冠状病毒现在已经蔓延到地球上的每个国家,正在对经济、卫生系统和人们的生活造成严重破坏。

除了社会距离之外,世界各国政府的首要任务之一是对尽可能多的公民进行测试,既看谁目前携带病毒(抗原测试),也看谁已经携带病毒(抗体测试)。请注意,在这篇博文中,我将使用“阳性”来表示检测到抗体,并且此人患有新冠肺炎。

到目前为止,一切顺利。你推出测试,评估人群,然后某些人可以返回工作岗位。

评估是/否诊断测试 当你低头看测试盒(通常是一种护理点侧流设备,类似于家庭妊娠测试的工作方式)并查看结果时,问题出现了。这些测试给出“阳性”或“阴性”结果,我们经常听说这种测试是通过它们的准确性来评估的。我们总是在新闻上听到它。你做了一个准确率为 99%的测试,得到了一个阳性结果,所以很容易假设你患新冠肺炎的概率是 99%,对吗?

不完全是。

准确性是在某种评估过程中,测试正确识别的案例数,无论是正面的还是负面的。这种引用阳性/阴性测试有多好的方式的问题是,它没有区分正确的阳性和正确的阴性。

想象一下,你有一个根本不起作用的测试。无论患者、病情等如何,每次运行时它都会显示“阳性”。你在一组随机的医务人员身上进行测试,其中 98 名已知患有新冠肺炎,2 名没有。你的假测试,把每个人都诊断为阳性,最终会有 98%的准确率!

谢天谢地,有更好的方法来总结这种测试的有效性,最常见的是灵敏度和特异性。这些定义如下:

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

注意分母。对于灵敏度,我们有“真阳性”,当然是阳性,还有“假阴性”,,也是阳性。因此,敏感性只处理阳性病例,而逻辑与阴性病例的特异性相同。结果是灵敏度是从所有阳性病例中获得阳性结果的概率的量度,而特异性是从所有阴性病例中获得阴性结果的概率的量度。

另一种表述方式是,敏感度是得到阳性结果的概率,假设你已经患病,写为 P(+ve result|Disease)

然而,在实践中,我们感兴趣的是与此相反的*,即在测试结果为阳性的情况下,患此疾病的概率,即 P(疾病|+ve 结果)。那么,在实践中,我们如何做这个翻转呢?*

托马斯·贝叶斯于 1701 年出生在英国。他一生的大部分时间都专注于教会,只出版了一本关于数学的著作。在晚年,他对概率产生了兴趣,这可能是因为他想反驳大卫·休谟反对将个人证明作为奇迹证据的论点。

在他死后,一个朋友找到了关于概率的手稿并交给了皇家学会,贝氏在 1742 年被选为该学会的会员。其中一篇题为《解决机会主义中的一个问题的论文》的论文,引出了今天所知的贝叶斯定理,定义为:

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

注意左边的第一个词和右边的第一个词。在这里,我们可以看到我们所追求的“翻转”,即当我们知道 P(+ve result|Disease) 时,获得 P(Disease|+ve result) ,以及其他几个我们很快会谈到的术语。这个定理反过来(经过皮埃尔·西蒙·拉普拉斯的提炼)导致了今天所知的贝叶斯统计。

流行的统计类型和在许多应用中使用的统计类型被称为频率统计。这种方法基于样本中事件发生的频率来分配概率。相比之下,在贝叶斯思维中,概率与我们当前对事件的知识水平有关。后一种方法允许引入所谓的先验预测试概率*(下面将更详细地解释),这是在收集关于事件的数据之前分配给的概率。这个预测试概率与新的证据相结合,给出一个后验概率后验概率***

在贝叶斯定理中, P(A) 是患过该病的概率, P(B) 是得到阳性结果的概率。这些价值观是什么?P(A)是预测试概率(如上所述),通常使用当地疾病流行率。或者,预测试概率也可以从详细的医学检查、对患者记录的回顾等中进行估计。P(B)是可以获得阳性结果的所有方式的组合,即患者可能患有该疾病并获得阳性结果,或者患者可能没有患有该疾病并获得阳性结果。具体来说,

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

在实践中,这样的计算通常是用一种叫做似然比的东西来完成的。这些被定义为,

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

其中 LR+是正似然比,LR-是负似然比。它们允许你使用一种叫做法甘诺模图的图形工具,从预测试概率到后测概率。或者,可以使用计算机快速进行计算。它们也给你一个测试有效性的指示,因为它们告诉你你的预测试概率会受到正面或负面结果的影响(见下表)。

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

似然比数值和后验概率的变化(来自维基百科)

精确的计算包括从概率到赔率的转换,

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

看看世界各地正在使用的一些新冠肺炎测试,灵敏度值似乎约为 91%,特异性约为 99%。这样我们的 LR+为 91,LR-为 0.09。相当令人印象深刻。

我们现在有了解决这个难题的所有方法,给定一个肯定的结果,对于一个给定的个体,患新冠肺炎的概率是多少。首先,让我们假设您在一个流行率为 1%的地区进行测试,并得到一个肯定的结果。考后概率是多少?

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

我们找到了。一个人在一次奇妙的测试中获得阳性结果后患上新冠肺炎病的概率小于 50%。

现在,想象一下如果汤姆·汉克斯怀疑新冠肺炎。不,不是真正的汤姆·汉克斯,他确实得到了新冠肺炎。我指的是查克·达拉,汤姆·汉克斯在电影《荒岛余生》中扮演的角色。如果通过一个非常复杂的事件转折,被困在荒岛上多年的查克·达拉发现了一种被冲上沙滩的新冠肺炎快速现场护理测试,并因为他有点咳嗽而决定进行它,如果它给了他一个阳性结果,这意味着什么?嗯,前测概率为零,也就是说后测概率也为零。运行测试完全是浪费时间!(当你被困在一个荒岛上时,这并不是什么大问题)。

现在让我们把它翻过来。你对医务人员进行了测试,他们在新冠肺炎的一个紧急避难所里长时间工作,却没有足够的个人防护装备。他们都有症状,但后来都康复了。他们治疗的病人都有严重的症状。他们都在艰难地呼吸。他们都发烧了。他们都与自己是确诊病例的家庭成员有过接触。现在是仲夏,普通感冒和流感的发病率很低。很难说患病率是多少,所以你用的是利用(过去)临床症状和患者病史的方法。您估计每位员工的预测试概率为 0.95。这是数字,

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

你已经从测试前的概率 0.95,变成了测试后的概率 1。并不特别意外。同样,这个测试可以说是浪费时间。

由此得出的结论是,考虑到你可能缺少测试,测试那些预测试概率极低或极高的人有意义吗?毕竟,在一天结束的时候,您在运行测试之后所做的事情可能不会改变。如果你非常确定某人已经感染了新冠肺炎病毒,并且计划让他们脱离隔离状态,那么用尽一项宝贵的检测结果呈阳性并不能改变什么。即使有人的预测试概率为 0.95,并且他们得到了否定的结果,这也不会显著改变事情(基于上面的 LR)。

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

我们得到 0.63 的后验概率。如果医生的想法是“如果他们的后验概率超过 0.5 或以上,我会允许团队成员返回工作”,这个负面结果不会改变任何事情。他们将被允许在测试前返回。之后他们也会被允许回来。

这种“治疗阈值”更容易通过图表看出。下面是一个 Python 函数,它根据给定的灵敏度和特异性值,计算出给定的预测试概率的预测试概率。

*def diagnostic_posttest(pretest,sens,spec):
    lr_pos = sens / (1 - spec) 
    lr_neg = (1 - sens) / spec 

    pretest_odds = pretest / (1-pretest)
    posttest_odds_pos = pretest_odds * lr_pos 
    posttest_odds_neg = pretest_odds * lr_neg 
    posttest_pos = posttest_odds_pos / (1+posttest_odds_pos)
    posttest_neg = posttest_odds_neg / (1+posttest_odds_neg)

    return(posttest_pos, posttest_neg)*

我们可以使用该函数以及类似于现实世界中的灵敏度和特异性值来创建预测试概率对预测试概率的图,

*import numpy as np
import matplotlib.pyplot as pltpost = list()
prev_options = np.arange(0.0, 1.0, 0.01)

for i in prev_options:
    post_temp = diagnostic_posttest(i,0.91,0.99)[0]
    post.append(post_temp)fig, ax = plt.subplots()
ax.plot(prev_options, post)
plt.xlim([0.0, 1.0])
plt.ylim([0.0, 1.0])
plt.rcParams['font.size'] = 12
plt.title('Pretest vs Posttest Probability (sens = 0.91, spec = 0.99)')
plt.xlabel('Pretest Probability')
plt.ylabel('Posttest Probability')*

这是我们得到的阳性测试结果,

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

对于阴性测试结果,

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

正如你看到的正面结果,随着测试前概率的增加,测试后概率迅速上升。对于一个否定的结果,你需要一个非常高的预测试概率,这样预测试概率也会很高。

有多自信?所有这些还有一个方面。新冠肺炎测试通常引用的数字通常不包括置信区间*。***

置信区间是围绕某个数字的值的范围,例如敏感度值,它向您显示与您的数据兼容的值的可能范围。它们是一种方法,如果你要重复你的实验,你可以在哪里找到你的结果。这样的信息是至关重要的,因为如果你将关键决策建立在一个特定的数字上,而这个数字实际上可能与现实中的不同,你可能会面临严重的问题。

我们举个例子。假设新冠肺炎测试的灵敏度和特异性分别为 88%和 90%。给定测试期间属于每个类别的案例数(真阳性、假阳性、真阴性和假阴性),我们可以计算置信区间。

假设我们这样做,最终灵敏度为 88% (85%至 92%,95%可信区间),特异性为 90% (84%至 95%,95%可信区间),其中“95%可信区间”表示其置信区间为 95%(详见这篇博文)。

本质上,这种 COVID–19可能具有低至 85%的灵敏度和低至 84%的特异性。这样我们的 LR+为 5.3,LR-为 0.18。这在实践中意味着什么?

假设你估计的预测试概率是 0.1。在这种情况下,一个阳性的测试结果会给你一个大约 0.38 的后验概率,这个概率仍然很低(见下图)。你以 0.38 的概率保持隔离吗?如果你有一份重要的工作呢?测试真的取得了什么成果吗?

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

同样,在前面处理一线医务人员的例子中,他们的预测试概率可能估计为 0.95。如果这个测试给你一个否定的结果,结果后测概率是 0.78(见下图)。还是很高的。

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

总结思路 我们已经看到,快速、即时的是/否诊断测试的结果从来都不是完美的,可以使用贝叶斯统计和预测试概率的概念将其置于有意义的环境中。阳性结果并不一定意味着这个人患有新冠肺炎,特别是如果他们在苏格兰突出部分的一个孤立的小村庄(为了这个说明的目的,请忽略人们正涌向高地自我隔离的事实)。同样,阴性结果并不一定意味着这个人没有感染新冠肺炎病毒,尤其是如果他们刚刚在前线花了 4 周时间治疗数百名感染病毒的患者。

背景很重要,在这个疯狂的测试时代,这些细节可能很重要。

如开头所述,本文只是一些统计观点的例子,并不意味着对新冠肺炎提供任何指导。

新冠肺炎:新加坡的第二次浪潮

原文:https://towardsdatascience.com/covid-19-the-second-wave-in-singapore-91e886b3d444?source=collection_archive---------12-----------------------

大约在 3 月 10 日,新加坡抗击新型冠状病毒的斗争进入了一个新阶段,当时输入病例的数量开始急剧增加。这个城市国家的经历可能是仍在努力应对疫情第一阶段的其他国家煤矿中的金丝雀。

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

T2 从 2020 年 3 月 27 日开始实施新的社交距离规则。照片:蔡展汉

在 1 月 23 日报告首例确诊新冠肺炎病例约两个月后,新加坡已进入疫情爆发的新阶段,其特征是来自更多国家的更大一波输入性病例。

根据新加坡卫生部每日新冠肺炎公告的分类,第二波开始于 3 月 10 日左右。就像第一阶段一样,在 1 月 23 日至 09 年 3 月之间,人们担心不断增加的输入性病例将引发新冠肺炎本地传播的更大高峰。

为此,新加坡当局推出了一系列严厉的新措施,以加强社会距离,限制人群,并对来自英国和美国等新冠肺炎热点地区的“海归”进行隔离。政府已经暗示,如果有必要,它准备出台更严厉的措施。

本帖将仔细观察新冠肺炎病毒在新加坡爆发的第一波和第二波有何不同。

1。数据和警告

本文涵盖了新加坡当局在 1 月 23 日至 3 月 27 日之间宣布的 732 例确诊病例(415 例输入性病例,317 例本地病例)。图表数据来自卫生部网站的每日新冠肺炎更新。你可以在这里下载数据集,或者通过我的 Github repo 下载。

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

卫生部的每日更新包括宣布当天确诊的新冠肺炎病例,以及前一天检测呈阳性的病例。例如,日期为 3 月 27 日的新闻发布会将有患者在 3 月 27 日和 3 月 26 日都检测为阳性。

为了避免混淆,本文中的图表仅参考官方确认感染的日期。这些确认日期是医疗记录,与更具管理性质的公告日期相比,将更加可靠和一致。

但是,请注意,新加坡的媒体报道是基于新加坡政府每天公布的新新冠肺炎数据。如果你将那些文章中报道的数字与图表中突出显示的数字进行比较,就会发现有出入,因为它们是从不同的日期引用的。

最后,声明:这不是医学研究,我也不是流行病学家。这是为了更好地理解公开信息的潜在趋势。已经特别注意避免过度解读不完整的新冠肺炎数据。

2.3 月 10 日:一个新阶段开始了

新感染的出现与当局检测和确认它们的能力之间显然有一个时间差。但根据现有数据的分类,新加坡的新冠肺炎疫情似乎在 3 月 10 日左右进入了一个新阶段。

从那时起,输入性病例的数量开始超过本地传播的病例——起初很慢,随后急剧增加,如下图所示。

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

图表中的日期是指官方确认新冠肺炎感染的日期,而不是卫生部宣布的日期。

在 3 月 10 日之前,绝大多数输入性病例都是来自 mainland China 的游客或从新冠肺炎疫情发源地武汉撤离的新加坡人。

第一例与中国没有关联的输入性病例——患者 113——直到 3 月 4 日才得到确诊,几乎是在新加坡 1 月 23 日报告首例新冠肺炎病例的 6 周之后。

第 113 号患者,一名 42 岁的法国国民,曾去过法国、葡萄牙、土耳其和英国,这是一个征兆,尽管当地病例继续超过输入病例达六天之久。

3 月 10 日,输入性病例数几周来首次略微领先于本地病例(4 例输入性病例对 3 例本地病例)。一周后的 3 月 17 日,输入病例激增至 31 例。一周后的 3 月 24 日,47 例输入性病例得到确认,这是迄今为止此类病例的最高单日记录。

第二波输入性新冠肺炎病例主要来自英国和美国,这与疫情第一阶段与中国相关的输入性病例形成鲜明对比。关于输入病例变化的更详细分类可在第 4 节中找到。

在疫情的第二阶段,本地传播的病例数量也相应增加。事实上,本地传播的病例在 3 月 24 日达到了目前 31 例阳性检测的最高纪录,同一天,新输入病例的确认也达到了最高纪录。

到目前为止,当局尚未披露第二阶段的输入性和本地病例之间的任何直接联系。但是我们已经从第一阶段的几个集群中看到,这是一种明显的可能性。

3.进口-本地多米诺效应

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

90 号病人是 T2 第一个死于新冠肺炎的新加坡人。

输入性新冠肺炎病例如何对当地传播产生“多米诺骨牌效应”的最著名的例子发生在一对受感染的武汉夫妇身上,他们分别是 8 号和 9 号患者。他们于 1 月 19 日抵达新加坡,并在同一天拜访了巴耶利巴的生命教会和传道会。

这对中国夫妇感染了六名去教堂做礼拜的人,这些人接着又感染了另外两群人中的大约 24 人(见上图)。这两名中国公民仅在 1 月 28 日和 29 日对新冠肺炎的检测呈阳性。从 2 月 6 日起,被他们感染的新加坡人新冠肺炎病毒检测呈阳性。

鉴于该病毒的高度传染性,首次接触感染者和确认新感染之间的巨大时间差令人担忧。尽管当局现在有了更快的检测试剂盒和更多应对新冠肺炎的经验,但全面追踪接触者和护理高危人群中的患者仍是一项极具挑战性的任务。

例证:90 号病人,第一个死于新冠肺炎的新加坡人。这名 75 岁的妇女有慢性心脏病和高血压病史,于 2 月 9 日开始报告症状。但她只是在 2 月 23 日的新冠肺炎检测中呈阳性。在重症监护 26 天后,她于 3 月 21 日去世。

距离疫苗问世还有几个月,甚至几年的时间,对新冠肺炎的多米诺骨牌效应最明显的应对措施就是人们减少社会交往,以最大限度地减少任何潜在的传播链。对于没有出过远门的新加坡人来说,这意味着要认真对待社交距离,避开人群。对于最近刚从海外回来的人来说,这意味着要严格遵守的自我检疫令

新加坡在这一新阶段控制新感染的能力,或者说是最近广为人知的“拉平曲线”的能力,将在很大程度上取决于这里的居民遵守这些新规则的程度。

4。新加坡输入性新冠肺炎病例的变化概况

在撰写本文时,新加坡的 415 例输入性新冠肺炎病例有旅行史,涉及 45 个不同的目的地。然而,卫生部在这方面发布的信息并不一致,一些输入病例的旅行史被公布为“东盟”、“欧洲”和“东欧”,但没有详细说明。卫生部还将 19 例输入病例的旅行记录标记为“待定”,但没有解释为什么没有这些信息。

如果我们排除这四个有问题的类别,输入性新冠肺炎病例前往(或来自)的 41 个国家是:英国、美国、印度尼西亚、中国、菲律宾、马来西亚、法国、泰国、西班牙、意大利、斯洛文尼亚、摩纳哥、台湾、爱尔兰、土耳其、阿联酋、加拿大、澳大利亚、波斯尼亚、挪威、日本、俄罗斯、冰岛、塞尔维亚、匈牙利、丹麦、瑞士、巴基斯坦、印度、荷兰、斯里兰卡、奥地利、比利时、克罗地亚、墨西哥、捷克共和国、葡萄牙、荷兰、南非、德国和瑞典。

至少有 60 例输入病例曾传播到上述两个或更多国家。在新加坡,绝大多数输入性新冠肺炎病例都有一个单一的来源,目前以英国为首:

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

这个图表不包括卫生部记录中的模糊类别,如“欧洲”、“东欧”、“东盟”和“待定”。

如果我们包括抵达新加坡前有多个旅行目的地的输入病例,那么与英国有关联的病例数将达到 155 例。对于这些病例,卫生部的新闻稿没有详细说明患者可能是在哪里感染的。

当我们根据迄今为止我们所看到的疫情的两个阶段来划分输入性病例时,输入性病例的地理分布更加惊人:第一波从 1 月 23 日到 3 月 9 日,第二波从 3 月 10 日起:

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

左图:2009 年 1 月 23 日至 3 月的输入病例。右图:3 月 10 日至 3 月 27 日输入病例。

中国在第一阶段的输入病例中占主导地位,在第二波中自然没有出现在图表中,因为新加坡当局在 1 月下旬针对中国游客和最近有过大陆旅行史的人实施了严格的旅行限制。

来自英国和美国的输入性病例激增,似乎主要是由于新加坡人(尤其是学生)因东道国对新冠肺炎疫情处理不当而回国。

对有英国旅行史的 155 例输入病例的分类显示:

  • 113 人(73%)是新加坡人,14 人是新加坡永久居民。
  • 大约一半,即 78 岁,年龄在 18 到 25 岁之间。

当局预计更多在英国和美国的新加坡学生和居民将在未来几周内回国,他们对此不抱任何希望。根据从疫情第一阶段吸取的教训,新加坡已经要求从这两个国家返回的居民直接从机场前往酒店,接受为期两周的隔离

5.越来越多的本地集群

检查本地案例最有趣的方式是通过网络图来查看集群是如何连接的。考虑到绘制集群所涉及的工作量,我将把这个问题放在另一篇文章中。

这里有一个我通过riche 的优秀调查模板得到的快速版本。你可以在这里访问它

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

这些集群中有几个仍在增长,所以这里的数字没有反映最新的计数。这张图表的数据取自新加坡卫生部 1 月 23 日至 3 月 27 日的新闻稿。

迄今为止最大的本地聚集性病例是 SAFRA 句容聚集性病例,涉及 47 例确诊病例,这些病例以各种方式与 2 月 15 日的一次晚宴活动有关。许多参加活动的人有共同的社交圈,并参加了可能加剧病毒传播的联合活动。

下面的图表有助于更好地了解本地传播中的峰值是如何跟踪这些集群的出现的:

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

从 3 月 24 日起本地病例的激增是由于大约同时出现了至少三个新的集群:

  • PCF 凤山丛(26 例及以上);第一例出现在 3 月 23 日。
  • 多佛法院国际学校集群(至少 8 起案件);第一例出现在 3 月 24 日
  • 新加坡邮政中心集群(至少 5 个案例);第一例出现在 3 月 24 日

在新聚集的第一个病例和随后所有本地病例的高峰之间通常有几天的间隔。按照全球标准,新加坡的接触者追踪制度已经相当激进。

但这里的目标是进一步减少建立新确诊病例近期活动史所需的时间,以便可以快速检测他或她的密切接触者,并将其与其社交圈子中的其他人隔离开来。我将在以后的文章中更详细地介绍本地集群。

6.比较第一波和第二波新冠肺炎病例的关键人口统计学指标

疫情仍在快速发展,因此在这一点上制作太多详细的图表没有多大意义。我再次在 fluore 上加载了一个单独的调查模板,供那些想要详细探索第一波和第二波人口统计数据的人使用。你可以在这里找到。

我将只关注几个引起我注意的关键领域。

6.1 本地输入病例组合的变化

我们已经从之前的图表中看到,在第二波期间,新加坡的输入性病例数量出现了急剧上升。如果把所有的数字放在一起,那就更令人吃惊了:

**Phase                Category    Total Confirmed Cases**
First Wave           Local                 131
                     Imported               32Second Wave          Imported              383
                     Local                 186

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

互动图表可用此处

从 3 月 10 日起,外来病例增加了 10 倍多。

6.2 性别混合

我们继续看到新冠肺炎病毒检测呈阳性的男性多于女性。

**Phase                 Gender**     **Total Confirmed Cases**
First Wave            M                    92
                      F                    71Second Wave           M                    328
                      F                    241

6.3 年龄范围的变化

在第二波中有一个明显的年轻新冠肺炎患者高峰,在 20-29 岁年龄组的 179 个病例中可以看到。这可能是因为从英国和美国回国的学生人数很多。

**Phase                Age Range**    **Total Confirmed Cases** 
First Wave           Ages 50-59           38
                     Ages 30-39           35
                     Ages 60-69           29
                     Ages 40-49           28
                     Ages 20-29           17
                     Ages 70-79           10
                     Ages 0-9              4
                     Ages 10-19            2Second Wave          Ages 20-29          179
                     Ages 30-39          101
                     Ages 50-59           86
                     Ages 40-49           82
                     Ages 60-69           64
                     Ages 10-19           23
                     Ages 70-79           22
                     Ages 0-9              6
                     Ages 80-89            6

我的笔记本里有这篇文章更详细的分析。在这一点上,我会避免走得太远。

结论

第一波和第二波新冠肺炎疫情之间的显著差异凸显了在全球化时代试图遏制疫情的复杂性。

在第一阶段,新加坡反应迅速,相对较快地控制了疫情,而疫情在很大程度上仍以中国为中心。

鉴于疫情现已席卷全球几乎所有角落,第二阶段将更难管理。其他国家政府如何应对本国的新冠肺炎病例,将对新加坡产生直接影响,正如我们从从英国和美国回国的难民人数激增中所看到的那样。

在可预见的未来,新加坡将不得不密切关注新输入病例的多种潜在来源,同时努力控制本地传播。

遏制疫情还将带来日益复杂的国内政策挑战。在疫情爆发的第一阶段,即 1 月 23 日至 09 年 3 月,输入性病例中只有 8 名新加坡人。

在第二阶段,从 3 月 10 日起,新加坡人至少占了 239 例输入性病例,在这一类别中占了绝大多数:

**Phase        Category  Nationality     Total Confirmed Cases**
First Wave   Imported  China                   17
                       **Singapore                8**
                       Indonesia                2
                       Singapore PR             2
                       France                   1
                       Italy                    1
                       UK                       1Second Wave  Imported  **Singapore              239**
                       Singapore PR            34
                       UK                      16
                       Indonesia               15
                       Australia               10
                       Malaysia                 9
                       Philippines              9

毫无疑问,在第二波输入病例中,新加坡人的激增与归国学生或没有多少选择的担忧家庭有关,但这个数字暗示了新加坡当局在说服本国公民不要出国旅行以避免疾病卷土重来方面面临的更大挑战。

这个信息可能会持续一段时间,但新加坡或其他国家在这方面的吊桥能抵挡第三次甚至第四次新冠肺炎疫情爆发多久呢?三个月?六个月?一年?

现在还不知道。

本帖图表的笔记本数据在我的 Github 回购里。如果你发现了错误或者对这个来自新加坡的小数据集做了一些有趣的事情,请告诉我。在以下时间 Ping 我:

推特:蔡振鸿

领英:www.linkedin.com/in/chuachinhon

我关于新加坡新冠肺炎疫情的其他帖子:

* 新冠肺炎:新加坡首批 100 名完全康复患者的视觉记录

* 恐慌性购买的背后:一个神秘的“泄露”和随着 S’pore 提高其病毒警戒级别 FB 的激增

* 病毒式传播:随着武汉冠状病毒疫情恶化,新加坡的食品安全反应如何激增

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值