R 使用“创建随机图”;“相同”;幂律度分布
我有一个无向图(蛋白质相互作用网络,PPi),我知道度分布近似于幂律分布。我想创建1000个随机图,复制节点数、边数和“相似”幂律分布 我的真实图形R 使用“创建随机图”;“相同”;幂律度分布,r,igraph,R,Igraph,我有一个无向图(蛋白质相互作用网络,PPi),我知道度分布近似于幂律分布。我想创建1000个随机图,复制节点数、边数和“相似”幂律分布 我的真实图形g.lcc具有: > g.lcc #IGRAPH UN-- 12551 166189 -- #+ attr: name (v/c), V3 (e/n) 到目前为止,我所做的是: #Calculate the alpha for my distribution alpha <- power.law.fit(degree(g.lcc, m
g.lcc
具有:
> g.lcc
#IGRAPH UN-- 12551 166189 --
#+ attr: name (v/c), V3 (e/n)
到目前为止,我所做的是:
#Calculate the alpha for my distribution
alpha <- power.law.fit(degree(g.lcc, mode="out"))
#$continuous
#[1] FALSE
#$alpha
#[1] 4.529602
#$xmin
#[1] 178
#$logLik
#[1] -1123.405
#$KS.stat
#[1] 0.0446421
#$KS.p
#[1] 0.7825008
然而,当我这样做时,这两个分布甚至不相似
有什么帮助吗
PS附上了两张带有real.ppi和random.g的图片
您如何知道PPI网络的度分布近似于幂律?它也可以是任何其他厚尾分布。此外,所得幂律拟合的
$xmin
值表明,最佳拟合是通过在度=178时的较低截止值实现的,并且在度低于178时发生的任何情况都不是由方法拟合的指数近似的
如果要创建与图形具有完全相同的度分布的随机网络,可以尝试使用degree.sequence.game
从头开始生成一个(如果要避免同一对节点之间的多条边,请确保使用method=“vl”
或method=“simple.no.multiple
),或使用重新布线.edges
重写图形的边
关于幂律,我建议阅读经验数据中类似幂律的分布。您如何知道PPI网络的度分布近似于幂律?它也可以是任何其他厚尾分布。此外,生成的幂律拟合的
$xmin
值表明,在by度=178时的下限,而在178度以下发生的任何事情都不能用该方法拟合的指数来近似。因此,不可能创建近似我的度分布的随机网络?我应该使用degree.sequence.game来创建随机图吗?最后一个问题,我如何知道我的PPI网络近似值tes是幂律分布,没有其他分布?非常感谢@Tamás必须使用degree.sequence.game
获得与图形具有完全相同的度分布的随机图形。或者使用rewre.edges
重新布线图形的边(尽管我会选择degree.sequence.game
)关于幂律,我建议你先读这篇文章:@Tamás,如果你写下你的评论作为答案,我会奖励你。我认为厚尾分布总是意味着渐进地遵循幂律。可能更好的词是重尾分布。
random.g <- static.power.law.game(12551, 166189, 4.53, exponent.in=-1, finite.size.correction=T)