Learn R Programming

sna (version 0.3)

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)

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

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. Iftprobcontains a single number, this number is used as the probability of all edges.
  2. Iftprobcontains 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. Iftprobcontains 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, iftprobcontains 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

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

See Also

rmperm

Examples

Run this code
#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