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