2014-10-20 46 views
2

我有一個真正的有向圖,我知道有多少個節點和邊。度分佈近似於冪律分佈。現在,我想創建一個隨機圖複製我的真實圖形的特點如下:創建定向隨機圖,指定冪律度分佈的alpha值

  • 節點數量
  • 邊數
  • (類似)冪律入度和出 分佈

假設g是我真正的10000個節點和30000個邊緣

exp.out = 2.2 
exp.in = 2.3 

set.seed(123) 
g <- static.power.law.game(10000, 30000, exp.out, exp.in, multiple=TRUE) 
的圖

但我不知道exp.outexp.in。然後,我嘗試用plfit功能(downloaded here)估計冪律指數:

plfit(degree(g, mode="in")+1) 

# $xmin 
# [1] 5 
# 
# $alpha 
# [1] 2.97 
# 
# $D 
# [1] 0.01735342 

plfit(degree(g, mode="out")+1) 

# $xmin 
# [1] 5 
# 
# $alpha 
# [1] 2.83 
# 
# $D 
# [1] 0.01589222 

從中我然後得出我的分佈函數(分別爲入度和出度):

  • P(X )〜X^-2.97對於x> = 5
  • p(X)〜X^-2.83對於x> = 5

根據的

遊戲只是簡單地使用static.fitness.game和適當的 構造的健身向量。特別地,頂點的適應度i是 I ^( - α),其中alpha = 1 /(γ-1)和γ是在參數

給出 指數據我所知,爲了複製我的alpha,我應該分別以1.3367(2.97 = 1 /(x-1))和1.35336(2.83 = 1 /(x-1))作爲gammas。然後

set.seed(321) 
random.g <- static.power.law.game(10000, 30000, 1.35336, 1.3367, multiple=TRUE) 
# Error in .Call("R_igraph_static_power_law_game", no.of.nodes, no.of.edges, : 
#     At games.c:3748 : out-degree exponent must be >= 2, Invalid value 

然而,這static.power.law.game只需要度指數高於或等於2讓我覺得,也許我失去了一些東西的事實...

回答

0

exp_outexp_in應該簡單地的所需指數出入度和入度分佈,則不需要對從plfit獲得的指數進行任何轉換。但是,請注意,由於有限的尺寸效應,您不太可能完全恢復您的「觀測」指數

+0

但是,我沒有得到'i ^( - alpha),其中alpha = 1 /(gamma-1) '來自文檔......它代表什麼? – CptNemo 2014-10-20 20:11:05

+1

'static.power.law.game'是'static.fitness.game'方便的包裝,'i^{ - alpha}'定義了'static.fitness.game'中頂點i的健身得分 - 但是你不應該擔心,因爲你應該指定所需的指數(gamma)作爲'static.power.law.game'的一個參數,並且將它們轉換爲正確的適應度(alpha)值。 – 2014-10-20 22:04:49