拓端tecdat|在R语言中使用航空公司复杂网络对疫情进行建模

原文链接:http://tecdat.cn/?p=12537 原文出处:拓端数据部落公众号 在2014年的埃博拉疫情爆发期间,人们对该疾病蔓延的情况非常关注。我们决定使用航空公司的航班数据探讨这个问题。
该疾病起源于利比里亚,因此想探讨该疾病如何通过航空网络传播的问题。
可以在下面看到网络的可视化。每个节点都是一个国家,每个边代表从一个国家到另一个国家的现有航线。忽略同一国家起飞和降落的航班,避免混乱。

plot(g, vertex.size=5, edge.arrow.size=.1, edge.arrow.width=.1, vertex.label=ifelse(V(g)$name %in% c('Liberia','United States'),V(g)$name,''), vertex.label.color='black') bty='n')

拓端tecdat|在R语言中使用航空公司复杂网络对疫情进行建模
文章图片

每个节点都是一个国家,每个边代表两个国家之间的现有航线。为了清楚起见,未显示在同一国家/地区开始和结束的航班。
社区 我使用了算法来检测国家/地区的“社区”,即彼此之间有很多航班的国家/地区集,但是与集内的国家/地区之间的航班很少。粗略地讲,该算法倾向于将同一大陆上的国家/地区分组在一起。然而,这并非总是如此。例如,由于与前殖民地的密切关系,法国与几个非洲国家被置于同一社区。该网络似乎表现得很同质-同一大陆上的国家之间相互联系的趋势往往大于与该大陆以外国家的联系。
分布 国家的程度(与一个给定国家连接的国家数量)差异很大。美国与其他186个国家有联系,而利比里亚仅与12个国家有联系。完整的分布如下所示。它大致遵循幂定律。请注意,逼近是渐近的,这可能就是为什么此有限样本不可用的原因。根据程度分布,所有国家中有一半与其他27个国家相连。利比里亚远低于中位数,美国远低于中位数。
plot(dplot,type='l',xlab='Degree',ylab='Frequency',main='Degree Distribution of Airline Network',lty=1) lines((1:length(dplot))^(-.7),type='l',lty=2) legend('topright',lty=c(1,2),c('Degree Distribution','Power Law with x^(-.7)'),bty='n')

拓端tecdat|在R语言中使用航空公司复杂网络对疫情进行建模
文章图片

如果网络的分布大致遵循幂定律,则我们说它是“无标度”网络。
小世界 【拓端tecdat|在R语言中使用航空公司复杂网络对疫情进行建模】让我们放大并查看利比里亚的二级关系:
拓端tecdat|在R语言中使用航空公司复杂网络对疫情进行建模
文章图片

利比里亚的航空公司联系。塞拉利昂和科特迪瓦与美国没有直接联系,因此未显示它们的联系。
尽管他们位于两个不同的社区,但利比里亚和美国之间只有两个度的距离。所有国家通常都是这种情况。如果对于每个节点,我们计算出它与每个其他节点之间的最短路径,则平均最短距离将约为2(这被称为小世界现象。平均而言,每个国家/地区与每个其他国家/地区相距2。)。例如,可以想象法国的戴高乐机场是连接美国,东欧,亚洲和非洲国家的枢纽。这些枢纽的存在使得通过很少的转移就可以从一个国家到达另一个国家。
传染性 上面的特写网络显示,如果将病毒传播到美国,可能会通过尼日利亚,加纳,摩洛哥和比利时传播。如果我们知道从利比里亚到这些国家以及从每个国家到美国的航班的比例,我们可以估计埃博拉病毒在每条航线上扩散的可能性。
当然,由于许多原因,这是一个简化案例。例如,即使塞拉利昂(Sierra Leon)与美国没有直接联系,它也可以与美国有联系的其他国家/地区联系。这条航线可能有很大一部分航班降落在美国。
还有一些流行病学参数可以改变疾病传播的速度。例如,从感染到可检测到的症状的时间很重要。如果被感染者直到感染一周后才出现症状,那么就不能轻易地对其进行筛选和控制。在出现症状之前,他们可以感染许多其他人。
疾病的最后期限也很重要。如果患者在被感染的几个小时内死亡,那么这种疾病就不会传播到很远。极端地说,考虑患者在感染后一秒钟内死亡。然后,他几乎没有时间感染他人。

    推荐阅读