输入以适应网络的程度分布的幂律

时间:2017-05-03 20:44:02

标签: r igraph ecdf power-law

我想使用R来测试网络的度分布是否像具有无标度属性的幂律一样。尽管如此,我已经通过许多不同的方式阅读了不同的人,并且一个令人困惑的地方是模型中应该使用的输入。

例如,Barabasi建议在“补充累积分布”中加入幂律。度(https://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html#copyOfRange(byte[],%20int,%20int))。然而,我已经看到人们对图的程度符合幂律(用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 个答案:

答案 0 :(得分:2)

嗯,这里的问题是你在这里有2个不同的统计数据。 节点的程度显示它与其他节点的连接数。 度分布是网络上这些度数的概率分布。

对我来说,将igraph::fit_power_law应用于学位分布是没有多大意义的,因为学位分布在某种程度上已经是一部幂律。

但是,不要忘记igraph::fit_power_law有比实施参数更多的选项,这将导致不同的事情,这取决于你提供的东西&#34;喂养它&#34;