| Title: | Efficient Estimation of Bayesian SBMs & MLSBMs | 
| Version: | 0.99.2 | 
| Description: | Fit Bayesian stochastic block models (SBMs) and multi-level stochastic block models (MLSBMs) using efficient Gibbs sampling implemented in 'Rcpp'. The models assume symmetric, non-reflexive graphs (no self-loops) with unweighted, binary edges. Data are input as a symmetric binary adjacency matrix (SBMs), or list of such matrices (MLSBMs). | 
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] | 
| Encoding: | UTF-8 | 
| LazyData: | true | 
| RoxygenNote: | 7.1.1 | 
| LinkingTo: | Rcpp, RcppArmadillo | 
| Imports: | Rcpp | 
| Depends: | R (≥ 2.10) | 
| NeedsCompilation: | yes | 
| Packaged: | 2021-02-01 21:22:53 UTC; carterallen | 
| Author: | Carter Allen | 
| Maintainer: | Carter Allen <carter.allen12@gmail.com> | 
| Repository: | CRAN | 
| Date/Publication: | 2021-02-07 10:50:02 UTC | 
Simulated 3-layer network data
Description
A data set containing 3 layers of undirected, symmetric adjacency matrices simulated from an SBM with 3 true clusters
Usage
AL
Format
A list of length 3
The col_summarize function
Description
Function to quickly return credible intervals
Usage
col_summarize(MAT, dig = 2, level = 0.95)
Arguments
| MAT | A matrix | 
| dig | Number of digits to round estimates and CrIs to | 
| level | Confidence level | 
Value
A character vector of posterior estimates and intervals
Examples
M <- matrix(rnorm(1000),ncol = 4)
col_summarize(M)
R/Rcpp function for fitting multilevel stochastic block model
Description
This function allows you to fit multilevel stochastic block models.
Usage
fit_mlsbm(
  A,
  K,
  a0 = 0.5,
  b10 = 0.5,
  b20 = 0.5,
  n_iter = 1000,
  burn = 100,
  verbose = TRUE
)
Arguments
| A | An adjacency list of length L, the number of levels. Each level contains an n x n symmetric adjacency matrix. | 
| K | The number of clusters specified a priori. | 
| a0 | Dirichlet prior parameter for cluster sizes for clusters 1,...,K. | 
| b10 | Beta distribution prior paramter for community connectivity. | 
| b20 | Beta distribution prior parameter for community connectivity. | 
| n_iter | The number of total MCMC iterations to run. | 
| burn | The number of burn-in MCMC iterations to discard. The number of saved iterations will be n_iter - burn. | 
| verbose | Whether to print a progress bar to track MCMC progress. Defaults to true. | 
Value
A list of MCMC samples, including the MAP estimate of cluster indicators (z)
Examples
data(AL)
# increase n_iter in practice
fit <- fit_mlsbm(AL,3,n_iter = 100)
R/Rcpp function for fitting single level stochastic block model
Description
This function allows you to fit single level stochastic block models.
Usage
fit_sbm(
  A,
  K,
  a0 = 0.5,
  b10 = 0.5,
  b20 = 0.5,
  n_iter = 1000,
  burn = 100,
  verbose = TRUE
)
Arguments
| A | An n x n symmetric adjacency matrix. | 
| K | The number of clusters specified a priori. | 
| a0 | Dirichlet prior parameter for cluster sizes for clusters 1,...,K. | 
| b10 | Beta distribution prior paramter for community connectivity. | 
| b20 | Beta distribution prior parameter for community connectivity. | 
| n_iter | The number of total MCMC iterations to run. | 
| burn | The number of burn-in MCMC iterations to discard. The number of saved iterations will be n_iter - burn. | 
| verbose | Whether to print a progress bar to track MCMC progress. Defaults to true. | 
Value
A list of MCMC samples, including the MAP estimate of cluster indicators (z)
Examples
data(AL)
fit <- fit_sbm(AL[[1]],3)
The mean_CRI function
Description
Simple function to return the mean (95% CrI) for a vector
Usage
mean_CRI(y, dig = 2)
Arguments
| y | A numeric vector | 
| dig | The number of digits to round to | 
Value
A string of mean and 95% quantile interval rounded to 'dig'
Examples
mean_CRI(rnorm(1000))
mypackage: A package for fitting single and multilevel SBMs.
Description
This package fits Bayesian stochastic block models (SBMs)
mlsbm functions
The mlsbm functions ...
R/Rcpp function for sampling from a multilevel stochastic block model
Description
This function allows you to sample a multilevel stochastic block model.
Usage
sample_mlsbm(z, P, L)
Arguments
| z | An n x 1 vector of community labels for each node | 
| P | A K x K symmetric matrix of community connectivity probabilities | 
| L | The number of levels to sample | 
Value
A list of adjecency matrices – one for each level of the MLSBM
Examples
n = 100
K = 3
L = 2
pi = rep(1/K,K)
z = sample(1:K, size = n, replace = TRUE, prob = pi)
p_in = 0.50
p_out = 0.05
P = matrix(p_out, nrow = K, ncol = K)
diag(P) = p_in
AL = sample_mlsbm(z,P,L)
R/Rcpp function for sampling from a single level stochastic block model
Description
This function allows you to sample a single level stochastic block model.
Usage
sample_sbm(z, P)
Arguments
| z | An n x 1 vector of community labels for each node | 
| P | A K x K symmetric matrix of community connectivity probabilities | 
Value
An adjacency matrix
Examples
n = 100
K = 3
pi = rep(1/K,K)
z = sample(1:K, size = n, replace = TRUE, prob = pi)
p_in = 0.50
p_out = 0.05
P = matrix(p_out, nrow = K, ncol = K)
diag(P) = p_in
A = sample_sbm(z,P)