适用于网络度分布的幂律拟合输入

3
我想使用 R 测试网络的度分布是否像具有无标度特性的幂律。然而,我阅读了不同人以许多不同方式进行此操作,其中一个令人困惑的问题是模型中应该使用哪个输入。
例如,Barabasi 建议将幂律拟合到度的 '补充累积分布' (请参见第4章的高级主题3.B,图4.22)。但是,我看到有人将幂律拟合到图的度数(使用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")
1个回答

2

这里的问题在于你有两个不同的统计量。

节点的度数显示它与其他节点的连接数。

度分布是网络中度数的概率分布。

对我来说,在度分布上应用 igraph::fit_power_law 没有太多意义,因为度分布本身在某种程度上就是一个幂律分布。

但是,不要忘记 igraph::fit_power_law 有更多选项可供选择,这取决于你输入的内容,会产生不同的结果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接