关于算法:在R语言中使用航空公司复杂网络对疫情进行建模

41次阅读

共计 1685 个字符,预计需要花费 5 分钟才能阅读完成。

原文链接: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')

每个节点都是一个国家,每个边代表两个国家之间的现有航线。为了分明起见,未显示在同一国家 / 地区开始和完结的航班。

社区

我应用了算法来检测国家 / 地区的“社区”,即彼此之间有很多航班的国家 / 地区集,然而与集内的国家 / 地区之间的航班很少。粗略地讲,该算法偏向于将同一大陆上的国家 / 地区分组在一起。然而,这并非总是如此。例如,因为与前殖民地的密切关系,法国与几个非洲国家被置于同一社区。该网络仿佛体现得很 同质- 同一大陆上的国家之间互相分割的趋势往往大于与该大陆以外国家的分割。

散布

国家的水平(与一个给定国家连贯的国家数量)差别 很大。美国与其余 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')

如果 网络 的散布大抵遵循幂定律,则咱们说它是“无标度”网络。

小世界

让咱们放大并查看利比里亚的二级关系:

利比里亚的航空公司分割。塞拉利昂和科特迪瓦与美国没有间接分割,因而未显示它们的分割。

只管他们位于两个不同的社区,但利比里亚和美国之间只有两个度的间隔。所有国家通常都是这种状况。如果对于每个节点,咱们计算出它与每个其余节点之间的最短门路,则均匀最短距离将约为 2(这被称为 小世界景象。均匀而言,每个国家 / 地区与每个其余国家 / 地区相距 2。)。例如,能够设想法国的戴高乐机场是连贯美国,东欧,亚洲和非洲国家的枢纽。这些枢纽的存在使得通过很少的转移就能够从一个国家达到另一个国家。

传染性

下面的特写网络显示,如果将病毒传播到美国,可能会通过尼日利亚,加纳,摩洛哥和比利时流传。如果咱们晓得从利比里亚到这些国家以及从每个国家到美国的航班的比例,咱们能够预计埃博拉病毒在每条航线上扩散的可能性。

当然,因为许多起因,这是一个简化案例。例如,即便塞拉利昂(Sierra Leon)与美国没有间接分割,它也能够与美国有分割的其余国家 / 地区分割。这条航线可能有很大一部分航班起飞在美国。

还有一些流行病学参数能够扭转疾病流传的速度。例如,从感化到可检测到的症状的工夫很重要。如果被感染者直到感化一周后才呈现症状,那么就不能轻易地对其进行筛选和管制。在呈现症状之前,他们能够感化许多其他人。

疾病的最初期限也很重要。如果患者在被感化的几个小时内死亡,那么这种疾病就不会流传到很远。极其地说,思考患者在感化后一秒钟内死亡。而后,他简直没有工夫感化别人。

正文完
 0