| simulate.ergm {ergm} | R Documentation |
simulate is used to draw from exponential family
random network models in their natural parameterizations.
See ergm for more information on these models.
## S3 method for class 'formula'
simulate(object, nsim=1, seed=NULL, theta0,
burnin=1000, interval=1000,
basis=NULL,
statsonly=FALSE,
sequential=TRUE,
constraints = ~.,
control = control.simulate.formula(),
verbose=FALSE, ...)
## S3 method for class 'ergm'
simulate(object, nsim=1, seed=NULL, theta0=object$coef,
burnin=1000, interval=1000,
statsonly=FALSE,
sequential=TRUE,
constraints = NULL,
control = control.simulate.ergm(),
verbose=FALSE, ...)
object |
an R object. Either
a |
nsim |
Number of networks to be randomly drawn from the given distribution on the set of all networks, returned by the Metropolis-Hastings algorithm. |
seed |
Random number integer seed.
The default is |
theta0 |
Vector of parameters for the model from which the sample is
to be drawn. If |
burnin |
The number of proposals before any MCMC sampling is done. If NULL in simulate.ergm, the value of object$burnin is used. |
interval |
The number of proposals between sampled statistics. If NULL in simulate.ergm, the value of object$interval is used. The program prints a warning if too few proposals are being accepted (if the number of proposals between sampled observations ever equals an integral multiple of 100(1+the number of proposals accepted)). |
basis |
An optional |
constraints |
A one-sided formula specifying one or more constraints
on the support of the distribution of the networks being
simulated. See the documentation for a similar argument for
|
control |
A list of control parameters for algorithm
tuning. Constructed using |
statsonly |
If TRUE, return only the network statistics (not the network(s) themselves) |
sequential |
If FALSE, each new simulation (of |
verbose |
If this is |
... |
further arguments passed to or used by methods. |
A sample of networks is randomly drawn from the specified model. The
model is specified by the first argument of the function. If
the first argument is a formula then this defines
the model. If the
first argument is the output of a call to ergm then the model
used for that call is the one fit - and unless theta0 is specified,
the sample is from the MLE of the parameters.
If neither of those are given as the
first argument then a Bernoulli network is generated with the probability
of ties defined by prob or theta0.
Note that the first network is sampled after burnin + interval
steps, and any subsequent networks are sampled each
interval steps after the first.
More information can be found by looking at the documentation of
ergm.
If nsim==1, simulate.ergm returns an object of
class network. If nsim>1, it returns an object of class
network.series that is a list with the following elements:
formula |
The |
networks |
A list of the generated networks. |
stats |
The n\times p matrix of network change statistics, where n is the sample size and p is the number of network change statistics specified in the model. |
ergm, network, print.network
#
# Let's draw from a Bernoulli model with 16 nodes
# and density 0.5 (i.e., theta0 = c(0,0))
#
g.sim <- simulate(network(16) ~ edges + mutual)
#
# What are the statistics like?
#
summary(g.sim ~ edges + mutual)
#
# Now simulate a network with higher mutuality
#
g.sim <- simulate(network(16) ~ edges + mutual, theta0=c(0,2))
#
# How do the statistics like?
#
summary(g.sim ~ edges + mutual)
#
# Let's draw from a Bernoulli model with 16 nodes
# and tie probability 0.1
#
g.use <- network(16,density=0.1,directed=FALSE)
#
# Starting from this network let's draw 5 realizations
# of a edges and 2-star network
#
g.sim <- simulate(~edges+kstar(2),nsim=5,theta0=c(-1.8,0.03),
basis=g.use,
burnin=100000,interval=1000)
g.sim
#
# attach the Florentine Marriage data
#
data(florentine)
#
# fit an edges and 2-star model using the ergm function
#
gest <- ergm(flomarriage ~ edges + kstar(2))
summary(gest)
#
# Draw from the fitted model
#
g.sim <- simulate(gest,nsim=100,burnin=1000,interval=1000)
g.sim