Generate Bernoulli Random Graphs

Share:

Description

rgraph generates random draws from a Bernoulli graph distribution, with various parameters for controlling the nature of the data so generated.

Usage

1
2
rgraph(n, m=1, tprob=0.5, mode="digraph", diag=FALSE, replace=FALSE,
    tielist=NULL, return.as.edgelist=FALSE)

Arguments

n

The size of the vertex set (|V(G)|) for the random graphs

m

The number of graphs to generate

tprob

Information regarding tie (edge) probabilities; see below

mode

“digraph” for directed data, “graph” for undirected data

diag

Should the diagonal entries (loops) be set to zero?

replace

Sample with or without replacement from a tie list (ignored if tielist==NULL

tielist

A vector of edge values, from which the new graphs should be bootstrapped

return.as.edgelist

logical; should the resulting graphs be returned in edgelist form?

Details

rgraph is a reasonably versatile routine for generating random network data. The graphs so generated are either Bernoulli graphs (graphs in which each edge is a Bernoulli trial, independent conditional on the Bernoulli parameters), or are bootstrapped from a user-provided edge distribution (very handy for CUG tests). In the latter case, edge data should be provided using the tielist argument; the exact form taken by the data is irrelevant, so long as it can be coerced to a vector. In the former case, Bernoulli graph probabilities are set by the tprob argument as follows:

  1. If tprob contains a single number, this number is used as the probability of all edges.

  2. If tprob contains a vector, each entry is assumed to correspond to a separate graph (in order). Thus, each entry is used as the probability of all edges within its corresponding graph.

  3. If tprob contains a matrix, then each entry is assumed to correspond to a separate edge. Thus, each entry is used as the probability of its associated edge in each graph which is generated.

  4. Finally, if tprob contains a three-dimensional array, then each entry is assumed to correspond to a particular edge in a particular graph, and is used as the associated probability parameter.

Finally, note that rgraph will symmetrize all generated networks if mode is set to “graph” by copying down the upper triangle. The lower half of tprob, where applicable, must still be specified, however.

Value

A graph stack

Note

The famous mathematicians referenced in this man page now have misspelled names, due to R's difficulty with accent marks.

Author(s)

Carter T. Butts buttsc@uci.edu

References

Erdos, P. and Renyi, A. (1960). “On the Evolution of Random Graphs.” Public Mathematical Institute of Hungary Academy of Sciences, 5:17-61.

Wasserman, S., and Faust, K. (1994). Social Network Analysis: Methods and Applications. Cambridge: Cambridge University Press.

See Also

rmperm, rgnm, rguman

Examples

1
2
3
4
5
6
#Generate three graphs with different densities
g<-rgraph(10,3,tprob=c(0.1,0.9,0.5))

#Generate from a matrix of Bernoulli parameters
g.p<-matrix(runif(25,0,1),nrow=5)
g<-rgraph(5,2,tprob=g.p)

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.