产生分层随机图

Produce Hierarchical Random Graph

我正在尝试将分层随机图模型拟合到边缘列表(表示未加权、无向大型网络中的交互),并测量模型的聚类和路径长度。我不太确定我所做的是否正确,因为我可能没有完全理解文档。

这是代码。

#Import Edgelist, convert to igraph
imported_g=read.csv('graph_edgelist.csv',header=FALSE,check.names=FALSE)
g=graph.data.frame(imported, directed=FALSE, vertices=NULL)

#Calculate parameters, make sure network is ok.
transitivity(g)
>0.3352213
average.path.length(g)
>3.6299


#Fit HRG model, convert back to igraph object to measure metrics.  
hrg_model = hrg.fit (g, hrg = g, start = FALSE, steps = 0)
igraph_hrg=as.igraph(hrg_model)

#Measure metrics of fit_hrg
average.path.length(igraph_hrg)
>50
transitivity(igraph_hrg)
>0

基本上,igraph 模型的指标与我导入的边缘列表有很大不同(它具有更短的路径长度和更高的聚类)。我认为这意味着该模型未能捕获边缘列表的属性,但后来我不确定我正在生成 HRG 模型。

将 HRG 模型拟合到图表与实际生成我可以从中测量有用参数的 HRG 之间有什么区别?会不会是igraph函数hrg.create?

igraph代码基于这里: http://tuvalu.santafe.edu/~aaronc/hierarchy/

希望我的问题有道理。

不要将 hrg=... 参数传递给 hrg.fit - 仅当您拥有要用作起点的 HRG 模型时才应使用它。 (无论如何它都会被忽略,除非你将 start 设置为 TRUE)。否则您的代码似乎是正确的 - 请注意 HRG 模型从未打算捕获原始图形的平均路径长度或传递性。前段时间我用几个随机图模型做了一些实验,看看它们重现某些生物网络的不同结构特性有多接近,我的结果表明,分层随机图模型在重现平均度和平均顶点方面往往做得很好- 网络的顶点距离,但在再现平均顶点传递性或图案出现方面存在不足 - 但公平地说,我还没有真正找到任何其他能够很好地完成这项工作的随机图模型。

What is the difference between fitting the HRG model to a graph, and actually generating a HRG from which I can measure useful parameters?

拟合 模型采用实际(真实)图并为分层随机图模型找到参数,该模型很好地(在某种意义上)逼近真实图。 generation 步骤采用参数化 HRG 模型(通常从先前的拟合步骤建立),然后创建 另一个 图。这是在 sample_hrg.

中实现的

Would it be the igraph function hrg.create?

不,hrg.create 采用二叉树表示 HRG 模型的结构(类似于您在 Aaron 的论文中看到的图),然后创建一个 HRG 模型对象,您可以将其传递给 sample_hrg稍后。