ergm.exact {ergm} | R Documentation |
ergm.exact
calculates the exact loglikelihood, evaluated at eta
,
for the
statnet
exponential-family random graph model represented by
formula
.
ergm.exact (eta, formula, statmat=NULL, weights=NULL, ...)
eta |
vector of canonical parameter values at which the loglikelihood should be evaluated. |
formula |
an R |
statmat |
if NULL, call |
weights |
In case |
... |
further arguments; not currently used. |
ergm.exact
should only be used for small networks, since the number of
possible networks grows extremely fast with the number of nodes.
An error results if it is used on a directed network of more than 6 nodes or
an undirected network of more than 8 nodes; use force=TRUE
to override
this error.
In case this function is to be called repeatedly, for instance by an
optimization routine, it is preferable to call ergm.allstats
first, then pass statmat
and weights
explicitly to avoid
repeatedly calculating these objects.
Returns the value of the
exact loglikelihood, evaluated at eta
,
for the
statnet
exponential-family random graph model represented by
formula
.
# Count by brute force all the edge statistics possible for a 7-node # undirected network mynw <- network(matrix(0,7,7),dir=FALSE) unix.time(a <- ergm.allstats(mynw~edges)) # Summarize results rbind(t(a$statmat),a$weights) # Each value of a$weights is equal to 21-choose-k, # where k is the corresponding statistic (and 21 is # the number of dyads in an 7-node undirected network). # Here's a check of that fact: as.vector(a$weights - choose(21, t(a$statmat))) # Simple ergm.exact outpuf for this network. # We know that the loglikelihood for my empty 7-node network # should simply be -21*log(1+exp(eta)), so we may check that # the following two values agree: -21*log(1+exp(.1234)) ergm.exact(.1234, mynw~edges, statmat=a$statmat, weights=a$weights)