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

简介: 在R语言中使用航空公司复杂网络对疫情进行建模

在2014年的埃博拉疫情爆发期间,人们对该疾病蔓延至美国的情况非常关注。我们决定使用航空公司的航班数据探讨这个问题。

该疾病起源于利比里亚,因此想探讨该疾病如何通过航空网络传播的问题。

可以在下面看到网络的可视化。每个节点都是一个国家,每个边代表从一个国家到另一个国家的现有航线。避免在同一国家起飞和降落的航班,以避免混乱。

plot(g,
     main='Airline Routes Connecting Countries',
     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')
legend('bottomright',fill=c('darkgreen','darkblue', 'darkred', 'pink', 'purple'),
       c('Africa', 'Europe', 'Asia/Middle East', 'Kiribati, Marshall Islands, Nauru', 'Americas'),
       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)与美国没有直接联系,它也可以与与美国有联系的其他国家/地区联系。这条航线可能有很大一部分航班降落在美国。

还有一些流行病学参数可以改变疾病传播的速度。例如,从感染到可检测到的症状的时间很重要。如果被感染者直到感染一周后才出现症状,那么就不能轻易地对其进行筛选和控制。在出现症状之前,他们可以感染许多其他人。

疾病的最后期限也很重要。如果患者在被感染的几个小时内死亡,那么这种疾病就不会传播到很远。极端地说,考虑患者在感染后一秒钟内死亡。然后,他几乎没有时间感染他人。

最后,我们假设一个起源。如果该疾病已经在多个国家/地区存在,则我们需要调整分析。

相关文章
|
14天前
|
机器学习/深度学习 数据处理
用人工神经网络对混凝土的强度进行建模
用人工神经网络对混凝土的强度进行建模
|
14天前
|
存储 算法 Windows
课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例(下)
课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例
|
14天前
|
算法 数据可视化 数据挖掘
课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例(上)
课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例
|
14天前
|
数据可视化
【R语言实战】——金融时序ARIMA建模
【R语言实战】——金融时序ARIMA建模
|
14天前
|
机器学习/深度学习 数据可视化 算法
R语言神经网络与决策树的银行顾客信用评估模型对比可视化研究
R语言神经网络与决策树的银行顾客信用评估模型对比可视化研究
|
14天前
|
机器学习/深度学习 监控 数据可视化
R语言SOM神经网络聚类、多层感知机MLP、PCA主成分分析可视化银行客户信用数据实例2
R语言SOM神经网络聚类、多层感知机MLP、PCA主成分分析可视化银行客户信用数据实例
|
14天前
|
机器学习/深度学习 数据可视化 算法
R语言SOM神经网络聚类、多层感知机MLP、PCA主成分分析可视化银行客户信用数据实例1
R语言SOM神经网络聚类、多层感知机MLP、PCA主成分分析可视化银行客户信用数据实例
|
14天前
|
机器学习/深度学习 数据可视化 数据挖掘
R语言神经网络模型金融应用预测上证指数时间序列可视化
R语言神经网络模型金融应用预测上证指数时间序列可视化
|
14天前
|
机器学习/深度学习 数据可视化 数据挖掘
R语言软件对房屋价格预测:回归、LASSO、决策树、随机森林、GBM、神经网络和SVM可视化|数据分享
R语言软件对房屋价格预测:回归、LASSO、决策树、随机森林、GBM、神经网络和SVM可视化|数据分享
|
14天前
|
机器学习/深度学习 数据可视化 数据挖掘
R语言逻辑回归logistic对ST股票风险建模分类分析混淆矩阵、ROC曲线可视化
R语言逻辑回归logistic对ST股票风险建模分类分析混淆矩阵、ROC曲线可视化