2017-05-03 10 views
2

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") 

答えて

2

ここで問題となるのは、2つの統計情報があることです。 ノードの次数は、他のノードとの接続数を示します。 度数分布は、ネットワーク上のそれらの度数の確率分布です。

度数分布はすでにある程度のべき乗則であるため、igraph::fit_power_lawを度分布に当てはめるのはあまり意味がありません。

しかし、igraph::fit_power_lawには実装の引数よりも多くのオプションがあることを忘れないようにしてください。これは、あなたが何を "摂食しているか"によって異なるものになります。

関連する問題