2013-10-04 53 views
0

我想構建一個具有與我已發佈的相同屬性(即頂點數)的隨機網絡並計算其聚類係數,但我有點新手。iGraph中的隨機生物網

我的問題是,我可以生成一個隨機網絡&指定單個頂點將形成一個鏈接的概率?例如,我的圖片中的某些頂點最多可以有4個鏈接,而其他頂點只能有1個。我想爲每個頂點指定這個概率。這可能在igraph

我做了什麼至今使用igraph我的數據網絡是:

library(igraph) 
net <- read.graph("FigureB.txt", format="edgelist") 
plot(trial) 
transitivity(trial) 

我得到了我想要的係數,但它是沒有意義的,除非它是相對於一個隨機網絡。

+0

你可以用'rewire'函數重新連接你的圖表:如果你做的時間足夠長,你會得到一個具有相同度分佈的隨機圖。您可以多次執行此操作,以瞭解您感興趣的統計信息的分佈情況。 –

回答

0

所以你基本上想要隨機化網絡,但保持(預期)學位分佈,對嗎?

有一個叫做degree.sequence.game()的函數來保持精確的度分佈。在手冊中看到它。

我不認爲只有預期的程度內置任何東西。編寫它並不難,所以你可以自己嘗試。一個簡單的模型是計算每個潛在邊緣條件對兩個頂點的度數和圖的密度的概率,然後N選擇2個伯努利試驗。這顯然只適用於小型網絡。

+1

實際上,'static.fitness.game()'應該適用於預期的度數;基本上,你必須指定你想要的邊的數量和每個節點的所謂的健身評分。每個節點的預期程度然後與其適應度成正比。 –

+0

然而,這看起來相當有用,關於fitness.out參數,這是如何指定每個節點的適應度的?你的意思是我找到整個網絡的學位分佈,這等於健身?非常感謝你的幫助。 – Workhorse

+1

@workhorse:是的,這是我的想法。 –