Changelog
Source:NEWS.md
sbm 1.0.0 [2026-11-09]
Covariates on the nodes
-
estimateSimpleSBM()andestimateBipartiteSBM()gain an argumentnodesCovariates: covariates on the nodes, driving the block memberships (the block proportions depend on the covariates of each node through a multinomial logistic regression). New field$nbNodesCovariates - new vignette Stochastic Block Models with covariates on nodes
Missing data
- simple and bipartite SBM handle missing values (
NA) in the network: the missing dyads are not taken into account in the likelihood, nor in the penalty of the ICL - the help pages of
estimateSimpleSBM(),estimateBipartiteSBM(),estimateMultipartiteSBM()andestimateMultiplexSBM()describe how missing values are handled: they are ignored (missing at random) except for dependent multiplex SBM, where they are still replaced by zeros - requires blockmodels (>= 1.2.1)
Graphics: all the plot methods return ggplot2 objects
- the mesoscopic view (
type = 'meso') of simple, bipartite and multipartite SBM is now drawn with ggplot2 (instead of igraph): each block is a node whose area is proportional to its proportion, the edges (and loops) are colored and sized according to the connectivity. For multipartite SBM, the functional groups are distinguished by the colors of the nodes, with a free layout or one row per functional group (layout = 'groups'); the coordinates of the blocks are returned in the attributeblockLayoutand can be modified and given back with the optionlayout - new plot type
type = 'graphon'for simple, bipartite and multiplex SBM: the block connectivity drawn on the unit square, blocks sized by the block proportions (one panel per layer for multiplex SBM, the marginal connectivity of each layer in the dependent case) - new function
plotMyGraphon()to draw the graphon of an SBM from its parameters - matrix plots (
type = 'data'): each block gets a background whose opacity grows with its mean value (optionsblockBackground,block.color,blockAlpha.min,blockAlpha.max) - expected networks (
type = 'expected') drawn with the colors of the graphon (optiongraphonColors) - matrix plots: the labels of the dimensions are now the axis titles (instead of facet strips), missing values (diagonal of simple SBM) are drawn in white, the names of the nodes are aligned with their row/column (option
names.size) - multipartite and multiplex matrix plots share the block background and the color scale of simple and bipartite SBM; for multiplex SBM, the layers are written on top of the panels and the nodes at the bottom and on the right
-
plotAlluvial(): names of the axes kept, stripes colored by the first clustering, clusters reordered to limit the crossings, invisible return
Multiplex SBM
- the blocks of dependent multiplex fits are reordered as in the independent case (decreasing connectivity summed over the layers)
-
estimateMultiplexSBM(dependent = TRUE)accepts a named list of layers
Bug fixes
- the model is checked against the network data when fitting an SBM: the bernoulli model requires a binary network and the poisson model integer entries (error); fitting a poisson or gaussian model on a binary network gives a warning
-
predict()andfitted()of Bernoulli models with covariates on the edges (simple and bipartite SBM) now return the expected network under the block memberships, i.e. the sum over the blocks (q,l) of Z[i,q] Z[j,l] logistic(logit(mean[q,l]) + covariates effect). The previous formula, logistic(Z logit(mean) Z’ + covariates effect), was exact only for indicator memberships (#3). Consistent with blockmodels 1.2.1. -
predict()now uses its argumentcovarList; it was ignored and the covariates of the fit were always used.
Other changes
- new option
explorationDirectioninestimOptionsofestimateBipartiteSBM(), passed to blockmodels to drive the exploration of the numbers of blocks towards a given pair (row, col) (#20, Louis Lacoste) - Louis Lacoste joins the authors; Jean-Benoist Leger and Julie Aubert are credited as contributors
- no ICL plot in
$optimize()whenverbosity = 0 - vignettes rewritten with quarto: new vignette Stochastic Block Models: principle and illustration, the vignette SBM_with_covariates replaced by the fungus/tree case study, models recalled in callouts with a common notation; the fits are precomputed (scripts in
dev/) - pkgdown site with Bootstrap 5, README rewritten
sbm 0.4.7 [2024-09-16]
CRAN release: 2024-09-16
- remove spelling.out file causing NOTE on CRAN
- un-naming
$penaltyfor bipartite - updating arXiv links in DESCRIPTION
sbm 0.4.6 [2024-01-31]
CRAN release: 2024-01-31
- fixing use of in documentation
- remove warnings due to deprecated function in igraph
sbm 0.4.4 [2022-08-24]
CRAN release: 2022-08-24
- small bug fixes
- comply to new CRAN policy for HTML5 in documentation files
sbm 0.4.3 [2021-06-09]
CRAN release: 2021-06-09
- minor changes
- comply with new faceting scale checks in ggplot2
- avoid testing on Windows when multi-core is not available
- save output of multiplex vignette to save time during CRAN check
sbm 0.4.1
CRAN release: 2021-05-21
- advanced plotting functions for multilayer/multiplex SBM
- enhanced support for multiplex SBM
- simplification/restructuration of classes
- fix in prediction of Bipartite and Simple SBM (#7)
- fix in selectModels for Bipartite SBM
sbm 0.3.0 - major [unreleased]
- support for multipartite SBM
- improvement of the plot methods
- change of denomination for dataset fungusTreeNetwwork
- fix bug that made estimOptions not to be taken into account in optimize
- fix bug for displaying field covarArray in the absence of any covariate
sbm 0.2.2 - minor release
CRAN release: 2020-10-12
- added fields dimLabels and covarArray for class SBM
- added fields nbConnectParam, penalty and entropy for simple and bipartite SBM (sampler and fit)
- changing roundProduct function to work on list of covariates
sbm 0.2.1 - minor release
CRAN release: 2020-07-17
- various bug fixes, especially for directed network in Simple SBM, covariates for Bipartite LBM
- tests for consistency amended to hopefully avoid random errors on CRAN
- tests for covariates and directed networks
- tests for S3 methods (coef, fitted, predict)