Calculate the exact loglikelihood for an ERGM
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 |
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) system.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)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.