上一篇博文中讨论了网络传播的数学模型,本文主要记录相关模拟实验,验证该理论。主要包括:
- 不同感染率率$\beta$对传播曲线的影响
- 不同初始点对传播曲线的影响,初始点根据亲密度,介数,度数区分。
- 不同类型图的传播速率比较,主要涉及小世界图与无标度图
使用R的igraph包实现整个过程,图均是无权无向图,点个数为1500。
模拟传播
每个节点可以传播给邻居,但是需要根据传播率$\beta$值判断是否感染。如果当前未感染节点有多个感染的邻居,有机会接受多次交互。传播时间由迭代次数模拟,每一轮迭代需要所有感染节点与邻居交互完毕(交互不一定感染,由感染率决定)。下面是模拟感染的代码:
不同感染率对传播的影响
实验采用小世界网络,社交网络中比较常见。随机选取节点作为初始点,使用了高中低三种传播率,每一种感染率计算10轮,计算平均传播曲线。实验代码如下:
实验结果
根据实验曲线,可以发现,$\beta$越大,感染越快,这一点与之前的理论一致。但是,如果感染率太低$\beta=0.2$,最后不会感染全部,就会停止传播,这一点传播模型不一致,应该是由于传播模型没有考图的结构,认为所有节点均可以接触到其他节点,所以传播模型最后总可以收敛,只需要多尝试几次。
不同初始点与传播曲线的关系
实验方法与上面类似,仍然采用了20轮,计算平均收敛曲线。不同的是,每一轮均在小世界网络与无标度网络中计算传播曲线,并且根据不同指标,选取了不同的初始点,
- 最大/最小介数(betweennss)
- 最大/最小亲密度(closeness)
- 最大度数
- 随机
实验代码如下:
实验结果
根据实验结果,整体而言,小世界网络(small world)的收敛明显快于无标度网络(scale free),可能是由于小世界网络聚集程度比较均匀,传播概率高,而无标度图聚集度过于集中在某几个点,导致传播概率低。
- 小世界网络 高介数,高亲密度,高度数的传播速率差异不大,随机节点中游,低介数高于低亲密度。
- 无标度网络 高介数与高亲密度的传播速率基本一致,但是最小介数的传播熟虑竟然快于随机点。
结论
根据上面的试验,对图的传播率有了感性认识,希望对后面工作有知道意义,实验结论总结如下:
- 在传播率较高的情况下,传播曲线与理论吻合比较好,呈现明显S形状,并且收敛
- 在传播率较低时,传播曲线不能收敛
- 小世界网络的传播速率明显高于无标度图
- 高介数,高亲密度和高度数的传播速率在小世界网络区别不明显,但是收敛较快,考虑到介数与亲密度的计算量,使用高度数作为初始点,更为经济实惠。