Dear all, We have a doubt about good practices in collecting vertex marginals during equilibration. In the howto, collection is done with an additional mcmc_equilibrate step with force_niter set to the desired "precision" but in principle this can be done during a single mcmc_equilibrate after mcmc_sweep. We observed some differences (especially when we collect the marginals for groups at each level of the NSBM), so we wonder which would be preferred. Thanks d
Am 19.02.20 um 11:09 schrieb Davide Cittaro:
Dear all, We have a doubt about good practices in collecting vertex marginals during equilibration. In the howto, collection is done with an additional mcmc_equilibrate step with force_niter set to the desired "precision" but in principle this can be done during a single mcmc_equilibrate after mcmc_sweep. We observed some differences (especially when we collect the marginals for groups at each level of the NSBM), so we wonder which would be preferred.
The only general recipe here is that one needs first to wait until the chain equilibrates, and then one needs to collect the marginal for enough time for the chain to explore the posterior distribution. It's hard to be more concrete than this, because the necessary times will vary for each case. Best, Tiago -- Tiago de Paula Peixoto <tiago@skewed.de>
Hello again,
On 20 Feb 2020, at 11:12, Tiago de Paula Peixoto <tiago@skewed.de> wrote:
Am 19.02.20 um 11:09 schrieb Davide Cittaro:
Dear all, We have a doubt about good practices in collecting vertex marginals during equilibration. In the howto, collection is done with an additional mcmc_equilibrate step with force_niter set to the desired "precision" but in principle this can be done during a single mcmc_equilibrate after mcmc_sweep. We observed some differences (especially when we collect the marginals for groups at each level of the NSBM), so we wonder which would be preferred.
The only general recipe here is that one needs first to wait until the chain equilibrates, and then one needs to collect the marginal for enough time for the chain to explore the posterior distribution. It's hard to be more concrete than this, because the necessary times will vary for each case.
I understand you point, but I have a doubt. Suppose I run mcmc_equilibrate on my data, setting a rng seed to account for reproducibility, and the results are convincing. Now, if I run an additional mcmc_equlibrate on the equilibrated state just to collect marginals it may result in a slightly different model, also (I believe) because I'm forcing an exact number of iterations and the last one is not guaranteed to be the optimal. Wouldn't it make more sense to collect the marginals for the first solution, then, so that I "track" what is happening during the first equilibration? Put this in another way: if I collect marginals while the chain equilibrates, the posterior distribution I explore would reflect the equilibration process, wouldn't it? Another related issue: following the recent discussions about the usage of multiflip, I'm now setting multiflip=True in gt.mcmc_equilibrate. I also set it True in the subsequent equilibration for collection of marginals; I've noticed that I get most of my vertex having the highest probability to be into the largest partition in my data, this doesn't happen if I disable multiflip while collecting marginals. Is this something expected or do you think it could be only related to my data? Sorry for being so annoying... Best, d
participants (2)
-
Davide Cittaro -
Tiago de Paula Peixoto