R
を使用して、ネットワークの次数分布がスケールフリープロパティのべき乗則のように動作するかどうかをテストしたいと思います。それにもかかわらず、私はさまざまなやり方でこれをやっている人たちを読んできました。一つの混乱する点は、そのモデルで使うはずのものです。ネットワークの次数分布に適合する入力
私は、例えば、Barrabasiがべき乗則を「相補累積分布度」の度合い(see Advanced Topic 3.B of chapter 4, figure 4.22に適合させることを勧めました。しかし、私は人々がグラフの次数(で得られたもの)にべき乗則を当てているのを見てきました。次のように得られた次数分布にべき級数を当てはめる人もいます。igraph::degree_distribution(g, cumulative = T)
以下の再現可能な例でわかるように、これらの2つのオプションは非常に異なる結果をもたらします。どちらが正しいか?言い換えれば、「補完的な累積度数分布」をどのようにしてグラフから得ることができるので、私はべき乗則に適合することができますか?
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")