Learn R Programming

sna (version 2.5)

rgraph: Generate Bernoulli Random Graphs

Description

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

Usage

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?

Value

A graph stack

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.

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

Run this code
# NOT RUN {
#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)
# }

Run the code above in your browser using DataLab