gof {ergm} | R Documentation |
Conduct Goodness-of-Fit Diagnostics on a Exponential Family Random Graph Model
Description
gof
calculates p
-values for geodesic distance, degree,
and reachability summaries to diagnose the goodness-of-fit of exponential
family random graph models. See ergm
for more information on
these models.
Usage
gof(object, ...)
## S3 method for class 'ergm'
gof(
object,
...,
coef = coefficients(object),
GOF = NULL,
constraints = object$constraints,
control = control.gof.ergm(),
verbose = FALSE
)
## S3 method for class 'formula'
gof(
object,
...,
coef = NULL,
GOF = NULL,
constraints = ~.,
basis = eval_lhs.formula(object),
control = NULL,
unconditional = TRUE,
verbose = FALSE
)
## S3 method for class 'gof'
print(x, ...)
## S3 method for class 'gof'
plot(
x,
...,
cex.axis = 0.7,
plotlogodds = FALSE,
main = "Goodness-of-fit diagnostics",
normalize.reachability = FALSE,
verbose = FALSE
)
Arguments
object |
Either a formula or an |
... |
Additional arguments, to be passed to lower-level functions. |
coef |
When given either a formula or an object of class ergm,
|
GOF |
formula; an formula object, of the form |
constraints |
A one-sided formula specifying one or more constraints on
the support of the distribution of the networks being modeled. See the help
for similarly-named argument in |
control |
A list of control parameters for algorithm tuning,
typically constructed with |
verbose |
A logical or an integer to control the amount of
progress and diagnostic information to be printed. |
basis |
a value (usually a |
unconditional |
logical; if |
x |
an object of class |
cex.axis |
Character expansion of the axis labels relative to that for the plot. |
plotlogodds |
Plot the odds of a dyad having given characteristics (e.g., reachability, minimum geodesic distance, shared partners). This is an alternative to the probability of a dyad having the same property. |
main |
Title for the goodness-of-fit plots. |
normalize.reachability |
Should the reachability proportion be normalized to make it more comparable with the other geodesic distance proportions. |
Details
A sample of graphs is randomly drawn from the specified model. The first
argument is typically the output of a call to ergm
and the
model used for that call is the one fit.
For GOF = ~model
, the model's observed sufficient statistics are
plotted as quantiles of the simulated sample. In a good fit, the observed
statistics should be near the sample median (0.5).
By default, the sample consists of 100 simulated networks, but this sample
size (and many other settings) can be changed using the control
argument described above.
Value
gof
, gof.ergm
, and
gof.formula
return an object of class gof.ergm
, which inherits from class gof
. This
is a list of the tables of statistics and p
-values. This is typically
plotted using plot.gof
.
Methods (by class)
-
gof(ergm)
: Perform simulation to evaluate goodness-of-fit for a specificergm()
fit. -
gof(formula)
: Perform simulation to evaluate goodness-of-fit for a model configuration specified by aformula
, coefficient, constraints, and other settings.
Methods (by generic)
-
print(gof)
:print.gof
summaries the diagnostics such as the degree distribution, geodesic distances, shared partner distributions, and reachability for the goodness-of-fit of exponential family random graph models. Seeergm
for more information on these models. (summary.gof
is a deprecated alias that may be repurposed in the future.) -
plot(gof)
:plot.gof
plots diagnostics such as the degree distribution, geodesic distances, shared partner distributions, and reachability for the goodness-of-fit of exponential family random graph models. Seeergm
for more information on these models.
Note
For gof.ergm
and gof.formula
, default behavior depends on the
directedness of the network involved; if undirected then degree, espartners,
and distance are used as default properties to examine. If the network in
question is directed, “degree” in the above is replaced by idegree
and odegree.
See Also
ergm()
, network()
, simulate.ergm()
, summary.ergm()
Examples
data(florentine)
gest <- ergm(flomarriage ~ edges + kstar(2))
gest
summary(gest)
# test the gof.ergm function
gofflo <- gof(gest)
gofflo
# Plot all three on the same page
# with nice margins
par(mfrow=c(1,3))
par(oma=c(0.5,2,1,0.5))
plot(gofflo)
# And now the log-odds
plot(gofflo, plotlogodds=TRUE)
# Use the formula version of gof
gofflo2 <-gof(flomarriage ~ edges + kstar(2), coef=c(-1.6339, 0.0049))
plot(gofflo2)