# Distribution while fitting weighted SBM

Hi Tiago,

I have a short question regarding your implementation of the weighted SBM
described here:

Does your implementation fit one distribution to sample edges per block
combination or one global distribution? And how to retrieve the parameters
of the distribution from a fitted model?

We were trying to fit a model similar to the SBM in graspy used for
simulation:

https://graspy.neurodata.io/tutorials/simulations/sbm.html

There you can choose one distribution per block combination for simulation.
I was figuring that this should also be possible when fitting the model.

Hi Tiago,

I have a short question regarding your implementation of the weighted SBM
described here:

Does your implementation fit one distribution to sample edges per block
combination or one global distribution?

One distribution per pair of groups (otherwise the covariates and the
group structure would be completely decoupled, which would be the same
as ignoring them altogether.)

And how to retrieve the parameters
of the distribution from a fitted model?

The distributions are "microcanonical", i.e. the parameters are
quantities like the total sum of covariates, which is not allowed to
fluctuate. For example the "exponential" distribution for nonegative
covariates assumes that they are uniformly distributed among all
possibilities that have the exact same sum. This means that the
parameters need not be explicitly encoded. So, in this case, if you want
to extract the parameter of the distribution, you just get the sum of
covariates between any two pairs of groups.

We were trying to fit a model similar to the SBM in graspy used for
simulation:

https://graspy.neurodata.io/tutorials/simulations/sbm.html

There you can choose one distribution per block combination for simulation.
I was figuring that this should also be possible when fitting the model.

Yes, this exactly what is described in the above paper, and what is
implemented in graph-tool.

Best,
Tiago