Simulate Inverse Community Matrices for a Network
system.simulate(n.sims, edges, required.groups = c(0), sampler = community.sampler(edges, required.groups), validators = NULL)
| n.sims | number of matrices to simulate. |
|---|---|
| edges | an edge list. |
| required.groups | a vector of integers specifying which groups of edges must always occur in the community matrix. |
| sampler | the sampler object used to generate random weights
(see |
| validators | an (optional) list of validation functions
generated by |
Returns a list with elements
edgesThe edge list
AA list of inverse community matrices
wA matrix of the corresponding edge weights
totalThe total number of matrices generated
stableThe number of stable matrices generated
acceptedThe number of matrices accepted for the sample
Generate sets of edge weights and the inverse community matrices given a directed graph and validation criteria by rejection sampling. Matrices with a pattern of signs consistent with the given model are generated, and only the matrices that correspond to stable equilibria and consistent with the given validation criteria are retained. For matrices retained in the sample, the matrix is inverted, and the inverse community matrix, and the weights that define the community matrix are returned. The function also returns the total number of matrices generated, the number of these that are stable and the number that are ultimately accepted for the sample.
The output of this function may be passed to the interactive exploratory tools.
This function is a simple wrapper for community.sampler,
stable.community and the functions generated by
press.validate.
set.seed(32) ## Sample model edges <- parse.digraph(c( "E *-> D", "D *-> C", "C -> E", "E *-> B", "B *-> A", "A -> E", "D --> B")) edges <- enforce.limitation(edges) sims <- system.simulate(10,edges, validators=list( press.validate(edges, perturb=c(D=1), monitor=c(D=1)), press.validate(edges, perturb=c(D=1), monitor=c(B=-1,C=1))))