gmodel.block function

Generate binary random graphs based on stochastic blockmodel

Generate binary random graphs based on stochastic blockmodel

Given a (K×K)(K\times K) stochastic blockmodel W, gmodel.block

generates an (n-by-n) binary random graphs. All K blocks have same number of nodes, or almost identical if n is not a multiple of K. Parameter noloop controls whether generated observations have an edge from a node to itself, called a loop.

gmodel.block(W, n, rep = 1, noloop = TRUE)

Arguments

  • W: a (K×K)(K\times K) blockmodel matrix.
  • n: the number of nodes for each observation.
  • rep: the number of observations to be generated.
  • noloop: a logical value; TRUE for graphs without self-loops, FALSE otherwise.

Returns

a named list containing

  • G: depending on rep value,

     - **(rep=1)**: an $(n\times n)$ observation, or
     - **(rep>1)**: a length-`rep` list where each element is an observation is an $(n\times n)$ realization from the model.
    
  • P: an (n×n)(n\times n) probability matrix of generating each edge.

Examples

## set inputs W = matrix(c(0.9,0.2,0.2,0.7),nr=2) n = 200 ## generate 2 observations without self-loops. out <- gmodel.block(W,n,rep=2,noloop=TRUE) ## visualize generated graphs opar = par(no.readonly=TRUE) par(mfrow=c(1,2), pty="s") image(out$G[[1]]); title("Observation 1") image(out$G[[2]]); title("Observation 2") par(opar)

See Also

gmodel.P

  • Maintainer: Kisung You
  • License: MIT + file LICENSE
  • Last published: 2021-08-13

Useful links