Do the networks have the same number of nodes? If so, you could
- define a variable which has a distinct value for each network in your series, - use this variable as a layer variable - see if this formulation is reducing overall description length, compared to modelling each network individually.
If description length is reduced, then the layer variable is informative in forming the blocks. This might not be what you want if you have a time series, though... Peter
On Fri, 24 Mar 2017 at 11:29 treinz email@example.com wrote:
Thank you for the info. Here's a follow-up question. If I have a series of networks and I'm expecting some clusters of networks in terms of their stochastic block structure, i.e., there exist networks that are similar to each other when compare their block models. I'm trying to compare them and then identify these clusters by using SBM. Is the layered SBM the appropriate way of doing this and if so how should I use the layered SBM to do so? I don't have enough background to fulling appreciate what's in the paper even after I read it thoroughly and I hope you can give me some idea.
At 2017-02-24 02:39:26, "Tiago de Paula Peixoto" firstname.lastname@example.org wrote:
On 23.02.2017 02:01, treinz wrote:
I'm new to the graph theory field and graph-tool package. Can anyone help me with the following questions on SBM of layered graph:
- In the example shown in
https://graph-tool.skewed.de/static/doc/demos/inference/inference.html#edge-..., the edge covariates for the Les Misérables network is passed via g.ep.value:
state = gt.minimize_blockmodel_dl(g, deg_corr=False, layers=True, state_args=dict(ec=g.ep.value, layers=False))
In this case, does the constructed layered model automatically detect how many layers there should be in order to obtain a best fit SBM? If so, how can one retrieve the layer membership of each edge? If not, is there a way to do so in graph-tool via other function calls?
Each layer corresponds to a particular value of the g.ep.value property map, which was passed as the `ec` parameter. There is no need to extract anything, since this information was provided to the function in the first place.
- There's a so called 'independent layers' model discussed in the
reference: Peixoto, T. P., Phys. Rev. E, 2015, 92, 042807 and it seems that setting state_args=dict(ec=g.ep.value, layers=True) in the example should use this model instead of the edge covariate model. But it seems from the paper that on is required to input the number of layers ('C' as in Fig. 3 of the reference). So how exactly should I use graph-tool to use the 'independent layers' model? Or is the algorithm capable of automatically detecting 'C' or the number of layers from the data?
The number of layers is determined automatically from the supplied `ec` parameter.
-- Tiago de Paula Peixoto email@example.com
graph-tool mailing list firstname.lastname@example.org https://lists.skewed.de/mailman/listinfo/graph-tool