我想使用R
来测试网络的度分布是否像具有无标度属性的幂律一样。尽管如此,我已经通过许多不同的方式阅读了不同的人,并且一个令人困惑的地方是模型中应该使用的输入。
igraph::degree(g)
获得),并且我也看到其他人在度数分布中拟合幂律,得到了通过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")
答案 0 :(得分:2)
嗯,这里的问题是你在这里有2个不同的统计数据。 节点的程度显示它与其他节点的连接数。 度分布是网络上这些度数的概率分布。
对我来说,将igraph::fit_power_law
应用于学位分布是没有多大意义的,因为学位分布在某种程度上已经是一部幂律。
但是,不要忘记igraph::fit_power_law
有比实施参数更多的选项,这将导致不同的事情,这取决于你提供的东西&#34;喂养它&#34;