[英]Input to fit a power-law to degree distribution of a network
我想用R
来测试网络的度分布是否像具有无标度属性的幂律一样。 尽管如此,我已经阅读了不同的人以不同的方式做这件事,一个令人困惑的地方是应该在模型中使用的输入。
例如,Barabasi建议将幂律拟合到度数的“互补累积分布”( 参见第4章的高级主题3.B,图4.22 )。 然而,我已经看到人们对图的度数拟合幂律(用igraph::degree(g)
),我也看到其他人通过igraph::degree_distribution(g, cumulative = T)
得到幂律分布的幂律。 igraph::degree_distribution(g, cumulative = T)
正如您在下面的可重现示例中所看到的,这些选项会产生截然不同的结果。 哪一个是正确的? 如何从图形中获得“互补的度数累积分布”,这样我才能拟合幂律?
library(igraph)
# create a graph
set.seed(202)
g <- static.power.law.game(500, 1000, exponent.out= 2.2, exponent.in = 2.2, loops = FALSE, multiple = T)
# get input to fit power-law.
# 1) degrees of the nodes
d <- degree(g, v = V(g), mode ="all")
d <- d[ d > 0] # remove nodes with no connection
# OR ?
# 2) cumulative degree distribution
d <- degree_distribution(g, mode ="all", cumulative = T)
# Fit power law
fit <- fit_power_law(d, impelementation = "R.mle")
那么,这里的问题是你在这里有2个不同的统计数据。 节点的程度显示它与其他节点的连接数。 度分布是网络上这些度数的概率分布。
对我而言,将igraph::fit_power_law
应用于度数分布没有多大意义,因为度数分布在某种程度上已经是幂律。
但是,不要忘记igraph::fit_power_law
有比实现参数更多的选项,这将导致不同的东西,这取决于你“ igraph::fit_power_law
”的内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.