Description Specifying models Terms included in the ergm package References See Also Examples
The function ergm
is used to fit exponential
random graph models, in which
the probability of a given network, y, on a set of nodes is
h(y) exp{eta(theta).g(y)} / c(theta),
where h(y) is the reference measure (for valued network models), g(y) is a vector of network statistics for y, η(θ) is a natural parameter vector of the same length (with eta(theta)=theta for most terms), . is the dot product, and c(θ) is the normalizing constant for the distribution.
The network statistics g(y) are entered as terms in the
function call to ergm
. This page describes
the possible terms (and hence network statistics)
included in ergm
package.
A cross-referenced HTML version of the term documentation is
available via vignette('ergm-term-crossRef')
and terms
can also be searched via search.ergmTerms
.
Terms to ergm
are specified by a formula to represent the network and
network statistics. This is done via a formula
, that is,
an R formula object, of the form
y ~ <term 1> + <term 2> ...
,
where y
is a network object or a matrix that can be coerced to a
network
object, and <term 1>
, <term 2>
, etc, are each terms chosen
from the list given below.
To create a network object in R, use the network
function,
then add nodal attributes to it using the %v%
operator if necessary.
Operator terms like B
and F
take
formulas with other ergm
terms as their arguments and
trnasform them by modifying their inputs (e.g., the network they
evaluate) and/or their outputs.
By convention, their names are capitalized and CamelCased.
For binary ERGMs, interactions between
ergm
terms can be specified in a manner similar to
lm
and others, as using the :
and *
operators. However, they must be interpreted carefully, especially
for dyad-dependent terms. (Interactions involving curved terms are
not supported at this time.)
Generally, if term a
has p[a] statistics and b
has p[b], a:b
will add p[a]*p[b] statistics
to the model, corresponding to each element of g[a](y)
interacted with each element of g[b](y).
The interaction is defined as follows. Dyad-independent terms can be expressed in the general form sum[i,j] x[i,j]*y[i,j] for some edge covariate matrix x,
g[a:b](y) = ∑[i,j] x[a,i,j]*x[b,i,j]*y[i,j].
In other words, rather than being a product of their sufficient statistics (g[a](y)*g[b](y)), it is a dyadwise product of their dyad-level effects.
This means that an interaction between two dyad-independent terms
can be interpreted the same way as it would be in the corresponding
logistic regression for each potential edge. However, for undirected
networks in particular, this may lead to somewhat counterintuitive
results. For example, given two nodal covariates "a"
and
"b"
(whose values for node i are denoted a[i] and
b[i], respectively), nodecov("a")
adds one statistic of
the form sum[i,j]
(a[i]+a[j])*y[i,j] and analogously for nodecov("b")
, so
nodecov("a"):nodecov("b")
produces
sum[i,j] (a[i]+a[j])*(b[i]+b[j])*y[i,j].
ergm
functions such as ergm
and simulate
(for ERGMs) may operate
in two modes: binary and weighted/valued, with the latter activated by
passing a non-NULL value as the response
argument, giving the
edge attribute name to be modeled/simulated.
Binary ERGM statistics cannot be used directly in valued mode and vice versa. However,
a substantial number of binary ERGM statistics — particularly the
ones with dyadic indepenence — have simple generalizations to valued
ERGMs, and have been adapted in
ergm
. They have the same form as their
binary ERGM counterparts, with an additional argument: form
, which, at
this time, has two possible values: "sum"
(the default) and
"nonzero"
. The former creates a statistic of the form
sum[i,j] x[i,j]*y[i,j], where y[i,j] is the value of
dyad (i,j) and x[i,j] is the term's covariate associated
with it. The latter computes the binary version, with the edge
considered to be present if its value is not 0.
Valued version of some binary ERGM terms have an argument
threshold
, which sets the value above which a dyad is conidered
to have a tie. (Value less than or equal to threshold
is
considered a nontie.)
The B()
operator term documented below can be used to pass
other binary terms to valued models, and is more flexible, at the
cost of being somewhat slower.
Terms taking a categorical nodal covariate also take the levels
argument. (There are analogous b1levels
and b2levels
arguments
for some terms that apply to bipartite networks, and the levels2
argument
for mixing terms.) The levels
argument can be used to control the set and the ordering of
attribute levels.
Terms that allow the selection of nodes do so with the nodes
argument, which is interpreted in the same way as the levels
argument, where the categories are the relevant nodal indices
themselves.
Both levels
and nodes
use the new level
selection UI. (See Specifying Vertex attributes and Levels (? nodal_attributes
) for details.)
The legacy base
and keep
arguments are
deprecated as of version 3.10, and replaced by the
levels
UI. The levels
argument provides consistent and flexible mechanisms for
specifying which attribute levels to exclude (previously
handled by base
) and include (previously
handled by keep
). If levels
or
nodes
argument is given, then base
and keep
arguments are ignored. The legacy arguments
will most likely be removed in a future version.
Note that this exact behavior is new in version 3.10, and it differs
slightly from older versions: previously if both levels
and
base
/keep
were given, levels
argument was
applied first and then applied the base
/keep
argument. Since version 3.10, base
/keep
would be
ignored, even if old term behavior is invoked (as described in the
next section).
When a term's behavior has changed from prior version, it is often possible to invoke the old behavior by setting and/or passing a version
term option, giving the verison (constructed by as.package_version
) desired.
ergm
termsUsers and other packages may build custom terms, and package
ergm.userterms
provides tools for implementing them.
The current recommendation for any package implementing additional
terms is to create a help file with a name or
alias ergm-terms
, so that help("ergm-terms")
will
list ERGM terms available from all loaded packages.
ergm
packageAs noted above, a cross-referenced HTML version of the
term documentation is
available via vignette('ergm-term-crossRef')
and terms
can also be searched via search.ergmTerms
.
B(formula, form)
(valued) (operator)Wraps binary ergm
terms for use in valued models, with formula
specifying which terms
are to be wrapped and form
specifying how they are to be
used and how the binary network they are evaluated on is to be constructed. More precisely,
formula
A one-sided formula whose RHS contains the
binary ergm
terms to be used. Which terms may be used
depends on the argument form
.
form
One of three values:
"sum"
see section “Generalizations of
binary terms” above; all terms in formula
must
be dyad-independent.
"nonzero"
section “Generalizations of
binary terms” above; any binary ergm
terms
may be used in formula
.
value-dependent
network. form
must contain one valued ergm
term, with
the following properties:
dyadic independence;
dyadwise contribution of either 0 or 1; and
dyadwise contribution of 0 for a 0-valued dyad.
Formally, this means that it is expressable as
sum[i,j] f[i,j] (y[i,j]),
, where for all i, j, and y, f_{i,j}(y_{i,j}) is either 0 or 1 and, in particular, f[i,j] (0)=0.
Examples of such terms include nonzero
,
ininterval()
, atleast()
, atmost()
,
greaterthan()
, lessthen()
, and equalto()
.
Then, the value of the statistic will be the value of the
statistics in formula
evaluated on a binary network that is
defined to have an edge if and only if the corresponding
dyad of the valued network adds 1 to the valued term in
form
.
For example, B(~nodecov("a"), form="sum")
is equivalent to
nodecov("a", form="sum")
and similarly with
form="nonzero"
.
When a valued implementation is available, it should be preferred, as it is likely to be faster.
Parametrize(formula, params, map, gradient=NULL, minpar=-Inf, maxpar=+Inf, cov=NULL)
(binary) (operator), Parametrise(formula, params, map, gradient=NULL, minpar=-Inf, maxpar=+Inf, cov=NULL)
(binary) (operator), Curve(formula, params, map, gradient=NULL, minpar=-Inf, maxpar=+Inf, cov=NULL)
(binary) (operator), Parametrize(formula, params, map, gradient=NULL, minpar=-Inf, maxpar=+Inf, cov=NULL)
(binary) (operator), Parametrise(formula, params, map, gradient=NULL, minpar=-Inf, maxpar=+Inf, cov=NULL)
(binary) (operator), Curve(formula, params, map, gradient=NULL, minpar=-Inf, maxpar=+Inf, cov=NULL)
(valued) (operator)Impose a curved structure on term parameters.
formula
is an arbitrary formula for a linear or curved ERGM. params
, map
, gradient
, minpar
, maxpar
, and cov
are the curved ERGM term API: a named list whose names are the curved parameter names, the mapping from curved to canonical, its gradient function, the minimum and the maximum allowed curved parameter values, and an optional “covariate” object.
Arguments may have the same forms as in the API, but for convenience, alternative forms are accepted.
params
may also be a character verctor with names.
minpar
and maxpar
will be recycled to appropriate length.
map
may have the following forms:
function(x, n, ...)
treated as in the API: called with x
set to the curved parameter vector, n
to the length of output expected, and cov
, if present, passed in ...
. The function must return a numeric vector of length n
.
to fix the output coefficients, like in an offset.
to select (partially-matched) one of predefined forms. Currently, the defined forms include:
"rep"
recycle the input vector to the length of the output vector as a rep
function would.
gradient
is optional if map
is constant or one of the predefined forms; otherwise, it must have one of the following forms:
function(x, n, ...)
treated as in the API: called with x
set to the curved parameter vector, n
to the length of output expected, and cov
, if present, passed in ...
. The function must return a numeric matrix with length(params)
rows and n
columns.
to fix the gradient; this is useful when map
is linear.
to select (partially-matched) one of predefined forms. Currently, the defined forms include:
"linear"
calculate the (constant) gradient matrix using finite differences. Note that this will be done only once at the initialization stage, so use only if you are certain map
is, in fact, linear.
If the model in formula
is curved, then the outputs of this operator term's map
argument will be used as inputs to the curved terms of the formula
model.
Curve
is an obsolete alias and may be deprecated and removed in a future release.
Exp(formula)
(binary) (operator), Exp(formula)
(valued) (operator)Exponentiate a network's statistic:
Evaluate the terms specified in formula
and exponentiates them with base e.
F(formula, filter)
(binary) (operator)Filtering on arbitrary one-term model.
filter
must contain one binary ergm
term, with
the following properties:
dyadic independence;
dyadwise contribution of 0 for a 0-valued dyad.
Formally, this means that it is expressable as
sum[i,j] f[i,j] (y[i,j]),
where for all i, j, and y, f_{i,j}(y_{i,j}) for which f[i,j] (0)=0.
Examples of such terms include nodemix
,
nodematch
, nodefactor
, and nodecov
and
edgecov
with appropriate covariates.
formula
will be evaluated on a network constructed by
taking y and removing any edges for which
f[i,j] (y[i,j])=0.
Log(formula, log0=-1/sqrt(.Machine$double.eps))
(binary) (operator), Log(formula, log0=-1/sqrt(.Machine$double.eps))
(valued) (operator)Take a natural logarithm of a network's statistic:
Evaluate the terms specified in formula
and takes a natural (base e) logarithm of them. Since an ERGM statistic must be finite, log0
specifies the value to be substituted for log(0)
. The default value seems reasonable for most purposes.
Prod(formulas, label)
(binary) (operator), Prod(formulas, label)
(valued) (operator)A product (or an arbitrary power combination) of one or more formulas:
formulas
is a list of formulas whose corresponding RHS
statistics will be multiplied elementwise. They are required to be nonnegative.
If a formula has an LHS, it is interpreted as follows:
Network statistics of this formula will be exponentiated by this.
Corresponding network statistics of this formula will be exponentiated by this.
Vector of network statistics will be exponentiated by this using the same pattern as matrix multiplication.
One of several predefined linear combinations. Currently supported presets are as follows:
"prod"
Network statistics of this formula will be multiplied together; equivalent to matrix(1,1,p)
, where p
is the length of the network statistic vector.
"geomean"
Network statistics of this formula will be geometrically averaged; equivalent to matrix(1/p,1,p)
, where p
is the length of the network statistic vector.
.
Note that each formula must either produce the same number of statistics or be mapped through a matrix to produce the same number of statistics.
A single formula is also permissible. This can be useful if one wishes to, say, multiply together the statistics returned by a formula.
Offsets are ignored unless there is only one formula and the transformation only exponentiates the statistics (i.e., the effective transformation matrix is diagonal).
label
is used to specify the names of the elements of the resulting term sum vector. If label
is a character vector of length 1, it will be recycled with indices appended. If label
is a function, formulas
' parameter names are extracted and their list of character vectors is passed label
. (For convenience, if only one formula is given, just a character vector is passed. Lastly, if label
or result of its function call is an AsIs
object, it is not wrapped in Sum~...
.
Curved models are supported, subject to some limitations. In particular, the first model's etamap will be used, overwriting the others. If label
is not of length 1, it should have an attr
-style attribute "curved"
specifying the names for the curved parameters.
Note that the current implementation piggybacks on the Log
, Exp
, and Sum
operators, essentially Exp(~Sum(~Log(formula), label))
. This may result in loss of precision, particularly for extremely large or small statistics. The implementation may change in the future.
S(formula, attrs)
(binary) (operator)Evaluation on an induced subgraph:
attrs
is a two-sided formula whose LHS gives the attribute or attribute function (see Specifying Vertex Attributes and Levels) for which tails and heads will be used to construct the induced subgraph. A one-sided formula (e.g., ~A
) is symmetrized (e.g., A~A
).
It should evaluate either to a logical vector equal in length to the number of tails (for LHS) and heads (for RHS) indicating which nodes are to be used to induce the subgraph or a numeric vector giving their indices. (As with indexing vectors, the logical vector will be recycled to the size of the network or the size of the appropriate bipartition, and negative indices will deselect vertices.)
When the two sets are identical, the induced subgraph retains the directedness of the original graph. Otherwise, an undirected bipartite graph is induced.
Sum(formulas, label)
(binary) (operator), Sum(formulas, label)
(valued) (operator)A sum (or an arbitrary linear combination) of one or more formulas:
formulas
is a list of formulas whose corresponding RHS
statistics will be summed elementwise.
If a formula has an LHS, it is interpreted as follows:
Network statistics of this formula will be multiplied by this.
Corresponding network statistics of this formula will be multiplied by this.
Vector of network statistics will be pre-multiplied by this.
One of several predefined linear combinations. Currently supported presets are as follows:
"sum"
Network statistics of this formula will be summed up; equivalent to matrix(1,1,p)
, where p
is the length of the network statistic vector.
"mean"
Network statistics of this formula will be averaged; equivalent to matrix(1/p,1,p)
, where p
is the length of the network statistic vector.
.
Note that each formula must either produce the same number of statistics or be mapped through a matrix to produce the same number of statistics.
A single formula is also permitted. This can be useful if one wishes to, say, scale or sum up the statistics returned by a formula.
Offsets are ignored unless there is only one formula and the transformation only scales the statistics (i.e., the effective transformation matrix is diagonal).
label
is used to specify the names of the elements of the resulting term sum vector. If label
is a character vector of length 1, it will be recycled with indices appended. If label
is a function, formulas
' parameter names are extracted and their list of character vectors is passed label
. (For convenience, if only one formula is given, just a character vector is passed. Lastly, if label
or result of its function call is an AsIs
object, it is not wrapped in Sum~...
.
Curved models are supported, subject to some limitations. In particular, the first model's etamap will be used, overwriting the others. If label
is not of length 1, it should have an attr
-style attribute "curved"
specifying the names for the curved parameters.
Symmetrize(formula, rule="weak")
(binary) (directed) (operator)Evaluation on symmetrized (undirected) network:
Evaluates the terms in formula
on an undirected network
constructed by symmetrizing the LHS network using one of four rules:
"weak"
A tie (i,j) is present in the constructed network if the LHS network has either tie (i,j) or (j,i) (or both).
"strong"
A tie (i,j) is present in the constructed network if the LHS network has both tie (i,j) and tie (j,i).
"upper"
A tie (i,j) is present in the constructed network if the LHS network has tie (\min(i,j),\max(i,j)): the upper triangle of the LHS network.
"upper"
A tie (i,j) is present in the constructed network if the LHS network has tie (\max(i,j),\min(i,j)): the lower triangle of the LHS network.
Label(formula, label, pos)
(binary) (operator), Label(formula, label, pos)
(valued) (operator)Modify terms' coefficient names:
The Label
operator evaluates formula
without modification, but modifies its coefficient and/or parameter names based on label
and pos
. label
is either a character vector specifying the label for the terms or a function through which term names are mapped (or a as_mapper
-style formula). If it is a character vector, the pos
argument controls how it modifies the term naes: one of "prepend"
, "replace"
, "append"
, or "("
, with the latter wrapping the term names in parentheses like a function call with name specified by label
.
NodematchFilter(formula, attrname)
(binary) (operator)Filtering on nodematch
:
evaluates the terms specified in formula
on a network
constructed by taking y and removing any edges for which
attrname(i)!=attrname(j)
. The attrname
argument is a character vector giving one or
more names of attributes in the network's vertex attribute
list.
Offset(formula, coef, which)
(binary) (operator)Terms
with fixed coefficients:
This operator is analogous to the offset()
wrapper, but the
coefficients are specified within the term and the curved ERGM
mechanism is used internally. In addition, the which
argument can be used to specify which of the parameters in
the formula are fixed. It can be a logical vector (recycled as
needed), a numeric vector of indices of parameters to be fixed, or
a character vector of parameter names.
absdiff(attr, pow=1)
(binary) (dyad-independent) (frequently-used) (directed) (undirected) (quantitative nodal attribute),
absdiff(attr, pow=1, form ="sum")
(valued) (dyad-independent) (directed) (undirected) (quantitative nodal attribute)Absolute difference:
The attr
argument specifies a quantitative attribute (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details). This term adds one network statistic to the model equaling the
sum of abs(attr[i]-attr[j])^pow
for all edges (i,j)
in the network.
Note that ergm
versions 3.9.4 and earlier used different arguments for this term. See the above section on versioning for invoking the old behavior.
absdiffcat(attr, base=NULL, levels=NULL)
(binary) (dyad-independent) (directed) (undirected) (categorical nodal attribute),
absdiffcat(attr, base=NULL, levels=NULL, form="sum")
(valued) (dyad-independent) (directed) (undirected) (categorical nodal attribute)Categorical absolute
difference:
The attr
argument specifies a quantitative attribute (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details). This term
adds one statistic for every possible nonzero distinct value of
abs(attr[i]-attr[j])
in the network; the value of each such
statistic is the number of edges in the network with the corresponding
absolute difference. The optional argument levels
specifies which
nonzero differences to include in or exclude from the model (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details). For example, if the possible values of
abs(attr[i]-attr[j])
are 0, 0.5, 3, 3.5, and 10, then to omit
0.5 and 10 one could set levels=2:3
(we wish to retain the second and third nonzero difference,
when differences are sorted in increasing order). Note that this term should
generally be used only when the quantitative attribute has a limited number
of possible values; an example is the "Grade"
attribute of the
faux.mesa.high
or faux.magnolia.high
datasets.
The argument base
is retained for backwards compatibility and may be removed in a future version. When both base
and levels
are passed, levels
overrides base
.
altkstar(lambda, fixed=FALSE)
(binary) (undirected) (curved) (categorical nodal attribute)
Alternating k-star:
This term adds one network statistic to the model equal to a weighted
alternating sequence of k-star statistics with weight parameter
lambda
. This is the version given in Snijders et al. (2006). The
gwdegree
and altkstar
produce mathematically equivalent
models, as long as they are used together with the edges
(or
kstar(1)
) term, yet the interpretation of the gwdegree
parameters is slightly more straightforward than the interpretation of the
altkstar
parameters. For this reason, we recommend the use of the
gwdegree
instead of altkstar
. See Section 3 and especially
equation (13) of Hunter (2007) for details. The optional argument
fixed
indicates whether the decay
parameter is fixed at the given value, or is to be
fit as a curved exponential family model (see Hunter and Handcock, 2006).
The default is FALSE
, which means the scale parameter is not fixed
and thus the model is a CEF model. This term can only be used with undirected networks.
asymmetric(attr=NULL, diff=FALSE, keep=NULL, levels=NULL)
(binary) (directed) (dyad-independent) (triad-related)Asymmetric
dyads: This term adds one network statistic to the model equal to the
number of pairs of actors for which exactly one of
(i,j) or (j,i) exists.
This term can only be used with directed networks. The optional argument
attr
specifies a vertex attribute (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details). If attr
is specified, only asymmetric pairs that match on the
vertex attribute attr
are counted. The optional modifiers
diff
and levels
are used in the same way as for the nodematch
term; refer
to this term for details and an example.
The argument keep
is retained for backwards compatibility and may be removed in a future version. When both keep
and levels
are passed, levels
overrides keep
.
atleast(threshold=0)
(valued) (directed) (undirected) (dyad-independent)Number of dyads with values
greater than or equal to a threshold Adds the number of
statistics equal to the length of threshold
equaling to the number of dyads whose values equal or exceed the
corresponding element of
threshold
.
atmost(threshold=0)
(valued) (directed) (undirected) (dyad-independent)Number of dyads with values
less than or equal to a threshold Adds the number of
statistics equal to the length of threshold
equaling to the number of dyads whose values equal or are exceeded by the
corresponding element of
threshold
.
attrcov(attr, mat)
(binary) (dyad-independent) (directed) (undirected)Edge covariate by attribute
pairing: The attr
argument specifies a vertex attribute (see Specifying Vertex
Attributes and Levels for details), and the mat
argument is a matrix of covariates with the same dimensions
as a mixing matrix for attr
. This term adds one statistic to the model, equal to the sum of the covariate values
for each edge appearing in the network, where the covariate value for a given edge is determined by its mixing type on
attr
. Undirected networks are regarded as having undirected mixing, and it is assumed that mat
is symmetric
in that case.
This term can be useful for simulating large networks with many mixing types, where nodemix
would be slow due to
the large number of statistics, and edgecov
cannot be used because an adjacency matrix would be too big.
b1concurrent(by=NULL, levels=NULL)
(binary) (bipartite) (undirected) (categorical nodal attribute)
Concurrent node count for the
first mode in a bipartite (aka two-mode) network: This term adds one
network statistic to the model, equal to the number of nodes in the first
mode of the network with degree 2 or higher. The first mode of a bipartite
network object is sometimes known as the "actor" mode. The optional argument
by
specifies a vertex attribute (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details);
it functions just like the by
argument of the b1degree
term.
Without the optional argument, this statistic is equivalent to b1mindegree(2)
.
This term can only be
used with undirected bipartite networks.
b1cov(attr)
(binary) (undirected) (bipartite) (dyad-independent) (quantitative nodal attribute) (frequently-used),
b1cov(attr, form="sum")
(valued) (undirected) (bipartite) (dyad-independent) (quantitative nodal attribute) (frequently-used)
Main effect of a covariate for
the first mode in a bipartite (aka two-mode) network:
The attr
argument specifies one or more quantitative attributes (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details). This term adds a single network statistic for each quantitative attribute or matrix column to the model equaling the total
value of attr(i)
for all edges (i,j) in the network. This
term may only be used with bipartite networks. For categorical attributes,
see b1factor
.
Note that ergm
versions 3.9.4 and earlier used different arguments for this term. See the above section on versioning for invoking the old behavior.
b1degrange(from, to=+Inf, by=NULL, homophily=FALSE, levels=NULL)
(binary) (bipartite) (undirected)
Degree range for the first mode in a bipartite
(a.k.a. two-mode) network:
The from
and to
arguments are vectors of distinct
integers (or +Inf
, for to
(its default)). If one of the vectors has
length 1, it is recycled to the length of the other. Otherwise, they
must have the same length. This term adds one
network statistic to the model for each element of from
(or to
); the ith
such statistic equals the number of nodes of the first mode
("actors") in the network of degree
greater than or equal to
from[i]
but strictly less than to[i]
, i.e. with
edge count
in semiopen interval [from,to)
. The optional argument
by
specifies a vertex attribute (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details).
If this is specified and homophily
is TRUE
,
then degrees are calculated using the subnetwork consisting of only
edges whose endpoints have the same value of the by
attribute.
If by
is specified and
homophily
is FALSE
(the default), then separate degree range
statistics are calculated for nodes having each separate
value of the attribute.
This term can only be used with bipartite networks; for directed networks
see idegrange
and odegrange
. For undirected networks,
see degrange
, and see b2degrange
for degrees of the second mode ("events").
b1degree(d, by=NULL, levels=NULL)
(binary) (bipartite) (undirected) (categorical nodal attribute) (frequently-used)
Degree for the first mode in a
bipartite (aka two-mode) network: The d
argument is a vector of
distinct integers. This term adds one network statistic to the model for
each element in d
; the ith such statistic equals the number of
nodes of degree d[i]
in the first mode of a bipartite network, i.e.
with exactly d[i]
edges. The first mode of a bipartite network object
is sometimes known as the "actor" mode. The optional argument by
specifies
a vertex attribute (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details). If this is specified
then each node's degree is tabulated only with other nodes having the same
value of the by
attribute.
This term can only be used with undirected bipartite networks.
b1dsp(d)
(binary) (bipartite) (undirected)Dyadwise shared partners for dyads in the first bipartition:
The d
argument is a vector of distinct integers. This term adds one
network statistic to the model for each element in d
; the ith
such statistic equals the number of dyads in the first bipartition with exactly
d[i]
shared partners. (Those shared partners, of course, must be members
of the second bipartition.) This term can only be used with bipartite networks.
b1factor(attr, base=1, levels=-1)
(binary) (bipartite) (undirected) (dyad-independent) (frequently-used) (categorical nodal attribute),
b1factor(attr, base=1, levels=-1, form="sum")
(valued) (bipartite) (undirected) (dyad-independent) (frequently-used) (categorical nodal attribute)
Factor attribute effect for
the first mode in a bipartite (aka two-mode) network:
The attr
argument specifies a categorical vertex attribute (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details). This term adds
multiple network statistics to the model, one for each of (a subset of) the
unique values of the attr
attribute. Each of these statistics
gives the number of times a node with that attribute in the first mode of
the network appears in an edge. The first mode of a bipartite network object
is sometimes known as the "actor" mode.
The optional levels
argument controls which levels of the attribute should be included and which should be excluded. (See Specifying Vertex attributes and Levels (? nodal_attributes
) for details.) For example, if the “fruit” attribute has levels “orange”, “apple”, “banana”, and “pear”, then to include just two levels, one for “apple” and one for “pear”, use any of b1factor("fruit", levels=-(2:3))
, b1factor("fruit", levels=c(1,4))
, and b1factor("fruit", levels=c("apple", "pear"))
. Note: if you are using numeric values to specify the levels of a character variable, the levels will correspond to the alphabetically sorted character levels.
To include all attribute values is usually not a good idea, because the sum of all such statistics equals the number of edges and hence a linear dependency would arise in any model also including edges
. The default, levels=-1
, is therefore to omit the first (in lexicographic order) attribute level. To include all levels, pass either levels=TRUE
(i.e., keep all levels) or levels=NULL
(i.e., do not filter levels).
The argument base
is retained for backwards compatibility and may be removed in a future version. When both base
and levels
are passed, levels
overrides base
.
This term can only be used with undirected bipartite networks.
b1mindegree(d)
(binary) (bipartite) (undirected)Minimum degree for the first mode in a
bipartite (aka two-mode) network: The d
argument is a vector of
distinct integers. This term adds one network statistic to the model for
each element in d
; the ith such statistic equals the number of
nodes in the first mode of a bipartite network with at least degree d[i]
.
The first mode of a bipartite network object is sometimes known as the "actor" mode.
This term can only be used with undirected bipartite networks.
b1nodematch(attr, diff=FALSE, keep=NULL, alpha=1, beta=1,
byb2attr=NULL, levels=NULL)
(binary) (bipartite) (undirected) (dyad-independent) (categorical nodal attribute) (frequently-used)
Nodal attribute-based homophily effect for
the first mode in a bipartite (aka two-mode) network: This term is introduced
in Bomiriya et al (2014).
The attr
argument specifies a categorical vertex attribute (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details). Out of the two arguments
(discount parameters) alpha
and beta
, both of which take values from [0,1],
only one should be set at a time. If none is set to a value other than 1, this term will
simply be a homophily based two-star statistic. This term adds one statistic to the model
unless diff
is set to TRUE
, in which case the term adds multiple network
statistics to the model, one for each of (a subset of) the unique values of the attr
attribute. To include only the attribute values you wish, use the levels
arguments.
The argument keep
is retained for backwards compatibility and may be removed in a future version. When both keep
and levels
are passed, levels
overrides keep
.
If an alpha
discount parameter is used, each of these statistics gives the sum of
the number of common second-mode nodes raised to the power alpha
for each pair of
first-mode nodes with that attribute. If a beta
discount parameter is used, each
of these statistics gives half the sum of the number of two-paths with two first-mode nodes
with that attribute as the two ends of the two path raised to the power beta
for each
edge in the network. The byb2attr
argument specifies a
second mode categorical attribute. Setting this argument
will separate the orginal statistics based on the values of the set second mode attribute—
i.e. for example, if diff
is FALSE
, then the sum of all the statistics for
each level of this second-mode attribute will be equal to the original b1nodematch
statistic where byb2attr
set to NULL
. This term can only be used with undirected bipartite networks.
b1sociality(nodes=-1)
(binary) (bipartite) (undirected) (dyad-independent)
,
b1sociality(nodes=-1, form="sum")
(valued) (bipartite) (undirected) (dyad-independent)
Degree:
This term adds one network statistic for each node in the first bipartition, equal to the number of
ties of that node. By default, nodes=-1
means that the statistic for the
first node will be omitted, but this argument may be changed to control
which statistics are included. The nodes
argument is interpreted using the new UI for level specification
(see Specifying Vertex Attributes and Levels for details), where both the attribute and the sorted
unique values are the vector of vertex indices 1:nb1
, where
nb1
is the size of the first bipartition. This term can only be used with
bipartite networks. For directed networks, see sender
and
receiver
. For unipartite networks, see sociality
.
b1star(k, attr=NULL, levels=NULL)
(binary) (bipartite) (undirected) (categorical nodal attribute)
k-Stars for the first mode in a
bipartite (aka two-mode) network: The k
argument is a vector of
distinct integers. This term adds one network statistic to the model for
each element in k
. The ith such statistic counts the number of
distinct k[i]
-stars whose center node is in the first mode of the
network. The first mode of a bipartite network object is sometimes known as
the "actor" mode. A k-star is defined to be a center node N and
a set of k different nodes {O[1], ..., O[k]} such that the
ties {N, O[i]} exist for i=1, …, k. The optional argument
attr
specifies a vertex attribute (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details). If this is specified then the count is over
the number of k-stars (with center node in the first mode) where all
nodes have the same value of the attribute. This term can only be used for
undirected bipartite networks. Note that b1star(1)
is equal to
b2star(1)
and to edges
.
b1starmix(k, attr, base=NULL, diff=TRUE)
(binary) (bipartite) (undirected) (categorical nodal attribute)
Mixing
matrix for k-stars centered on the first mode of a bipartite network: Only
a single value of k is allowed. This term counts all k-stars in which
the b2 nodes (called events in some contexts) are homophilous in the sense
that they all share the same value of attr
. However, the b1 node
(in some contexts, the actor) at the center of the k-star does NOT have to
have the same value as the b2 nodes; indeed, the values taken by the b1
nodes may be completely distinct from those of the b2 nodes, which allows
for the use of this term in cases where there are two separate nodal
attributes, one for the b1 nodes and another for the b2 nodes (in this case,
however, these two attributes should be combined to form a single nodal
attribute, attr
). A different statistic is created for each
value of attr
seen in a b1 node, even if no k-stars are observed
with this value. Whether a different statistic is created for each value
seen in a b2 node depends on the value of the diff
argument: When
diff=TRUE
, the default, a different statistic is created for each
value and thus the behavior of this term is reminiscent of the
nodemix
term, from which it takes its name; when diff=FALSE
,
all homophilous k-stars are counted together, though these k-stars are still
categorized according to the value of the central b1 node.
b1twostar(b1attr, b2attr, base=NULL, b1levels=NULL, b2levels=NULL, levels2=NULL)
(binary) (bipartite) (undirected) (categorical nodal attribute)
Two-star
census for central nodes centered on the first mode of a bipartite network:
This term takes two nodal attributes (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details), one for b1 nodes (actors in some
contexts) and one for b2 nodes (events in some contexts). Only
b1attr
is required; if b2attr
is not passed, it is
assumed to be the same as b1attr
. Assuming that there are
n_1 values of b1attr
among the b1 nodes and n_2
values of b2attr
among the b2 nodes, then the total number of
distinct categories of two stars according to these two attributes is
n_1(n_2)(n_2+1)/2. By default, this model term creates a distinct statistic
counting each of these categories. The b1levels
, b2levels
, base
, and levels2
arguments
may be used to leave some of these categories out (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details).
The argument base
is retained for backwards compatibility and may be removed in a future version. When both base
and levels
are passed, levels
overrides base
. The argument base
is retained for backwards compatibility and may be removed in a future version. When both base
and levels2
are passed, levels2
overrides base
.
b2concurrent(by=NULL)
(binary) (bipartite) (undirected) (frequently-used)
Concurrent node count for the
second mode in a bipartite (aka two-mode) network: This term adds one
network statistic to the model, equal to the number of nodes in the second
mode of the network with degree 2 or higher. The second mode of a bipartite
network object is sometimes known as the "event" mode. The optional argument
by
specifies a vertex attribute (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details);
it functions just like the by
argument of the b2degree
term.
Without the optional argument, this statistic is equivalent to b2mindegree(2)
.
This term can only be used with undirected bipartite networks.
b2cov(attr)
(binary) (undirected) (bipartite) (dyad-independent) (quantitative nodal attribute) (frequently-used),
b2cov(attr, form="sum")
(valued) (undirected) (bipartite) (dyad-independent) (quantitative nodal attribute) (frequently-used)
Main effect of a covariate for
the second mode in a bipartite (aka two-mode) network:
The attr
argument specifies one or more quantitative attributes (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details). This term adds a single network statistic for each quantitative attribute or matrix column to the model equaling the total
value of attr(j)
for all edges (i,j) in the network. This
term may only be used with bipartite networks. For categorical attributes,
see b2factor
.
Note that ergm
versions 3.9.4 and earlier used different arguments for this term. See the above section on versioning for invoking the old behavior.
b2degrange(from, to=+Inf, by=NULL, homophily=FALSE, levels=NULL)
(binary) (bipartite) (undirected)
Degree range for the second mode in a bipartite
(a.k.a. two-mode) network:
The from
and to
arguments are vectors of distinct
integers (or +Inf
, for to
(its default)). If one of the vectors has
length 1, it is recycled to the length of the other. Otherwise, they
must have the same length. This term adds one
network statistic to the model for each element of from
(or to
); the ith
such statistic equals the number of nodes of the second mode
("events") in the network of degree
greater than or equal to
from[i]
but strictly less than to[i]
, i.e. with
edge count
in semiopen interval [from,to)
. The optional argument
by
specifies
a vertex attribute (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details).
If this is specified and homophily
is TRUE
,
then degrees are calculated using the subnetwork consisting of only
edges whose endpoints have the same value of the by
attribute.
If by
is specified and
homophily
is FALSE
(the default), then separate degree range
statistics are calculated for nodes having each separate
value of the attribute.
This term can only be used with bipartite networks; for directed networks
see idegrange
and odegrange
. For undirected networks,
see degrange
, and see b1degrange
for degrees of the first mode ("actors").
b2degree(d, by=NULL)
(binary) (bipartite) (undirected) (categorical nodal attribute) (frequently-used)
Degree for the second mode in a
bipartite (aka two-mode) network: The d
argument is a vector of
distinct integers. This term adds one network statistic to the model for
each element in d
; the ith such statistic equals the number of
nodes of degree d[i]
in the second mode of a bipartite network, i.e.
with exactly d[i]
edges. The second mode of a bipartite network
object is sometimes known as the "event" mode. The optional term
by
specifies
a vertex attribute (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details). If this is specified
then each node's degree is tabulated only with other nodes having the same
value of the by
attribute.
This term can only be used with undirected bipartite networks.
b2dsp(d)
(binary) (bipartite) (undirected)Dyadwise shared partners for dyads in the second bipartition:
The d
argument is a vector of distinct integers. This term adds one
network statistic to the model for each element in d
; the ith
such statistic equals the number of dyads in the second bipartition with exactly
d[i]
shared partners. (Those shared partners, of course, must be members
of the first bipartition.) This term can only be used with bipartite networks.
b2factor(attr, base=1, levels=-1)
(binary) (bipartite) (undirected) (dyad-independent) (categorical nodal attribute) (frequently-used),
b2factor(attr, base=1, levels=-1, form="sum")
(valued) (bipartite) (undirected) (dyad-independent) (categorical nodal attribute) (frequently-used)
Factor attribute effect for
the second mode in a bipartite (aka two-mode) network :
The attr
argument specifies
a categorical vertex attribute (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details). This term adds
multiple network statistics to the model, one for each of (a subset of) the
unique values of the attr
attribute. Each of these statistics
gives the number of times a node with that attribute in the second mode of
the network appears in an edge. The second mode of a bipartite network
object is sometimes known as the "event" mode.
The optional levels
argument controls which levels of the attribute should be included and which should be excluded. (See Specifying Vertex attributes and Levels (? nodal_attributes
) for details.) For example, if the “fruit” attribute has levels “orange”, “apple”, “banana”, and “pear”, then to include just two levels, one for “apple” and one for “pear”, use any of b2factor("fruit", levels=-(2:3))
, b2factor("fruit", levels=c(1,4))
, and b2factor("fruit", levels=c("apple", "pear"))
. Note: if you are using numeric values to specify the levels of a character variable, the levels will correspond to the alphabetically sorted character levels.
To include all attribute values is usually not a good idea, because the sum of all such statistics equals the number of edges and hence a linear dependency would arise in any model also including edges
. The default, levels=-1
, is therefore to omit the first (in lexicographic order) attribute level. To include all levels, pass either levels=TRUE
(i.e., keep all levels) or levels=NULL
(i.e., do not filter levels).
The argument base
is retained for backwards compatibility and may be removed in a future version. When both base
and levels
are passed, levels
overrides base
.
This term can only be used with undirected bipartite networks.
b2mindegree(d)
(binary) (bipartite) (undirected)
Minimum degree for the second mode in a
bipartite (aka two-mode) network: The d
argument is a vector of
distinct integers. This term adds one network statistic to the model for
each element in d
; the ith such statistic equals the number of
nodes in the second mode of a bipartite network with at least degree d[i]
.
The second mode of a bipartite network object is sometimes known as the "event" mode.
This term can only be used with undirected bipartite networks.
b2nodematch(attr, diff=FALSE, keep=NULL, alpha=1, beta=1,
byb1attr=NULL, levels=NULL)
(binary) (bipartite) (undirected) (dyad-independent) (categorical nodal attribute) (frequently-used)
Nodal attribute-based homophily effect for
the second mode in a bipartite (aka two-mode) network: This term is introduced
in Bomiriya et al (2014).
The attr
argument specifies a categorical vertex attribute (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details). Out of the two arguments
(discount parameters) alpha
and beta
, both which takes values from [0,1],
only one should be set at a time. If none is set to a value other than 1, this term will
simply be a homophily based two-star statistic. This term adds one statistic to the model
unless diff
is set to TRUE
, in which case the term adds multiple network
statistics to the model, one for each of (a subset of) the unique values of the attr
attribute. To include only the attribute values you wish, use the levels
argument.
The argument keep
is retained for backwards compatibility and may be removed in a future version. When both keep
and levels
are passed, levels
overrides keep
.
If an alpha
discount parameter is used, each of these statistics gives the sum of
the number of common first-mode nodes raised to the power alpha
for each pair of
second-mode nodes with that attribute. If a beta
discount parameter is used, each
of these statistics gives half the sum of the number of two-paths with two second-mode nodes
with that attribute as the two ends of the two path raised to the power beta
for each
edge in the network. The byb1attr
argument specifies a
first mode categorical attribute. Setting this argument
will separate the orginal statistics based on the values of the set first mode attribute—
i.e. for example, if diff
is FALSE
, then the sum of all the statistics for
each level of this first-mode attribute will be equal to the original b2nodematch
statistic where byb1attr
set to NULL
.
This term can only be used with undirected bipartite networks.
b2sociality(nodes=-1)
(binary) (bipartite) (undirected) (dyad-independent)
,
b2sociality(nodes=-1, form="sum")
(valued) (bipartite) (undirected) (dyad-independent)
Degree:
This term adds one network statistic for each node in the second bipartition, equal to the number of
ties of that node. By default, nodes=-1
means that the statistic for the
first node (in the second bipartition) will be omitted, but this argument may be changed to control
which statistics are included. The nodes
argument is interpreted using the new UI for level specification
(see Specifying Vertex Attributes and Levels for details), where both the attribute and the sorted
unique values are the vector of vertex indices (nb1 + 1):n
, where
nb1
is the size of the first bipartition and n
is the total number of nodes in the network. Thus nodes=120
will include only the statistic
for the 120th node in the second biparition, while nodes=I(120)
will include only the statistic for the 120th node in the entire network. This term can only be used with undirected bipartite networks. For directed networks, see sender
and
receiver
. For unipartite networks, see sociality
.
b2star(k, attr=NULL, levels=NULL)
(binary) (bipartite) (undirected) (categorical nodal attribute)
k-Stars for the second mode in a
bipartite (aka two-mode) network: The k
argument is a vector of
distinct integers. This term adds one network statistic to the model for
each element in k
. The ith such statistic counts the number of
distinct k[i]
-stars whose center node is in the second mode of the
network. The second mode of a bipartite network object is sometimes known as
the "event" mode. A k-star is defined to be a center node N and
a set of k different nodes {O[1], ..., O[k]} such that the
ties {N, O[i]} exist for i=1, …, k. The optional argument
attr
specifies
a vertex attribute (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details). If this is specified then the count is over
the number of k-stars (with center node in the second mode) where all
nodes have the same value of the attribute. This term can only be used for
undirected bipartite networks. Note that b2star(1)
is equal to
b1star(1)
and to edges
.
b2starmix(k, attr, base=NULL, diff=TRUE)
(binary) (bipartite) (undirected) (categorical nodal attribute)
Mixing
matrix for k-stars centered on the second mode of a bipartite network:
This term is exactly the same as b1starmix
except that the roles of
b1 and b2 are reversed.
b2twostar(b1attr, b2attr, base=NULL, b1levels=NULL, b2levels=NULL, levels2=NULL)
(binary) (bipartite) (undirected) (categorical nodal attribute)
Two-star
census for central nodes centered on the second mode of a bipartite
network: This term is exactly the same as b1twostar
except that the
roles of b1 and b2 are reversed.
balance
(binary) (triad-related) (directed) (undirected)Balanced triads:
This term adds one network statistic to the model equal to the number of
triads in the network that are balanced. The balanced triads are those of
type 102
or 300
in the categorization of Davis and Leinhardt (1972). For details on the 16 possible triad types, see
?triad.classify
in the {sna}
package. For an undirected
network, the balanced triads are those with an odd number of ties (i.e., 1
and 3).
coincidence(levels=NULL,active=0)
(binary) (bipartite) (undirected)
Coincident node count for the
second mode in a bipartite (aka two-mode) network: By default this term adds one
network statistic to the model for each pair of nodes of mode two. It is
equal to the number of (first mode) mutual partners of that pair.
The first mode of a bipartite
network object is sometimes known as the "actor" mode and the seconds as the "event" mode. So this is the number of actors going to both events in the pair. The optional argument
levels
specifies which pairs of nodes in mode two to include (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details). The second optional argument, active
, selects pairs for which the observed count is at least active
. If both levels
and active
are
specified, then active
is ignored. (Thus, indices passed as levels
should correspond to indices when levels
= NULL and active
= 0.) This term can only be
used with undirected bipartite networks.
Note that ergm
versions 3.9.4 and earlier used different arguments for this term. See the above section on versioning for invoking the old behavior.
concurrent(by=NULL, levels=NULL)
(binary) (undirected) (categorical nodal attribute)
Concurrent node count:
This term adds one network statistic to the model, equal to the number of
nodes in the network with degree 2 or higher. The optional argument
by
specifies a vertex attribute (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details);
it functions just like the by
argument of the degree
term.
This term can only be used with undirected
networks.
concurrentties(by=NULL, levels=NULL)
(binary) (undirected) (categorical nodal attribute)
Concurrent tie count:
This term adds one network statistic to the model, equal to the number of
ties incident on each actor beyond the first. The optional argument
by
specifies a vertex attribute (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details);
it functions just like the by
argument of the degree
term.
This term can only be used with undirected
networks.
ctriple(attr=NULL, diff=FALSE, levels=NULL)
(binary) (directed) (triad-related) (categorical nodal attribute)
,
a.k.a. ctriad
(binary) (directed) (triad-related) (categorical nodal attribute)
Cyclic triples: By default, this term adds one
statistic to the model, equal to the number of cyclic triples in the
network, defined as a set of edges of the form {(i,j), (j,k), (k,i)}. Note that
for all directed networks, triangle
is equal to
ttriple+ctriple
, so at most two of these three terms can be in a
model. The optional argument attr
specifies a vertex attribute (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details). If attr
is
specified and diff
is FALSE
, then the statistic is the number of cyclic triples where all
three nodes have the same value of the attribute. If attr
is specified and diff
is TRUE
, then one statistic is added to the model for each value of attr
(or each
value of attr
specified by levels
if that argument is passed), equal to the number of cyclic triples where all
three nodes have that value of the attribute. This term can only be used with directed networks.
cycle(k, semi=FALSE)
(binary) (directed) (undirected)k-Cycle Census:
The k
argument must be a vector of integers giving the cycle lengths to count.
Directed cycle lengths may range from 2
to N
(the network size); undirected
cycle lengths and semicycle lengths may range from 3
to N
; length 2 semicycles
are not currently supported. Note that directed 2-cycles are equivalent to mutual
dyads.
This term adds one network statistic to the model for each value of k
,
corresponding to the number of k
-cycles (or, alternately, semicycles)
in the graph.
The optional argument semi
is a logical indicating whether semicycles
(rather than directed cycles) should be counted; this is ignored in the
undirected case.
This term can be used with either directed or undirected networks.
cyclicalties(attr=NULL, levels=NULL)
(binary) (directed) (undirected), cyclicalties(threshold=0)
(valued) (directed) (undirected)Cyclical ties:
This term adds one statistic, equal to the number of ties
i-->j such that there exists a two-path from
j to i. (Related to the ttriple
term.)
The binary version takes a nodal attribute attr
, and, if
given, all three nodes
involved (i, j, and the node on the two-path) must match
on this attribute in order for i-->j to be counted.
cyclicalweights(twopath="min",combine="max",affect="min")
(valued) (directed) (undirected)Cyclical
weights: This statistic implements the cyclical weights
statistic, like that defined by Krivitsky (2012), Equation 13,
but with the focus dyad being y_{j,i} rather than
y_{i,j}. The
currently implemented options for twopath
is the minimum
of the constituent dyads ("min"
) or their geometric mean
("geomean"
); for combine
, the maximum of the
2-path strengths ("max"
) or their sum ("sum"
); and
for affect
, the minimum of the focus dyad and the
combined strength of the two paths ("min"
) or their
geometric mean ("geomean"
). For each of these options,
the first (and the default) is more stable but also more
conservative, while the second is more sensitive but more likely
to induce a multimodal distribution of networks.
ddsp(d, type="OTP")
(binary) (directed)Directed dyadwise shared partners: This term adds one network statistic to the model for each element in d
where the ith such statistic equals the number of dyads in the network with exactly d[i]
shared partners. This term can only be used with directed networks.
While there is only one shared partner configuration in the undirected case, nine distinct configurations are possible for directed graphs, selected using the type
argument. Currently, terms may be defined with respect to five of these configurations; they are defined here as follows (using terminology from Butts (2008) and the relevent
package):
"OTP"
)vertex k is an OTP shared partner of ordered pair (i,j) iff i->k->j. Also known as "transitive shared partner".
"ITP"
)vertex k is an ITP shared partner of ordered pair (i,j) iff j->k->i. Also known as "cyclical shared partner"
"RTP"
)vertex k is an RTP shared partner of ordered pair (i,j) iff i<->k<->j.
"OSP"
)vertex k is an OSP shared partner of ordered pair (i,j) iff i->k, j->k.
"ISP"
)vertex k is an ISP shared partner of ordered pair (i,j) iff k->i, k->j.
By default, outgoing two-paths ("OTP"
) are calculated. Note that Robins et al. (2009) define closely related statistics to several of the above, using slightly different terminology.
degrange(from, to=+Inf, by=NULL, homophily=FALSE, levels=NULL)
(binary) (undirected) (categorical nodal attribute)
Degree range:
The from
and to
arguments are vectors of distinct
integers (or +Inf
, for to
(its default)). If one of the vectors has
length 1, it is recycled to the length of the other. Otherwise, they
must have the same length. This term adds one
network statistic to the model for each element of from
(or to
); the ith
such statistic equals the number of nodes in the network of degree
greater than or equal to
from[i]
but strictly less than to[i]
, i.e. with edges
in semiopen interval [from,to)
. The optional argument
by
specifies a vertex attribute (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details).
If this is specified and homophily
is TRUE
,
then degrees are calculated using the subnetwork consisting of only
edges whose endpoints have the same value of the by
attribute.
If by
is specified and
homophily
is FALSE
(the default), then separate degree range
statistics are calculated for nodes having each separate
value of the attribute.
This term can only be used with undirected networks; for directed networks
see idegrange
and odegrange
. This term can be used
with bipartite networks, and will count nodes of both first and second mode in
the specified degree range. To count only nodes of the first mode ("actors"), use b1degrange
and to count only those fo the second mode ("events"), use b2degrange
.
degree(d, by=NULL, homophily=FALSE, levels=NULL)
(binary) (undirected) (categorical nodal attribute) (frequently-used)Degree:
The d
argument is a vector of distinct integers. This term adds one
network statistic to the model for each element in d
; the ith
such statistic equals the number of nodes in the network of degree
d[i]
, i.e. with exactly d[i]
edges. The optional argument
by
specifies a vertex attribute (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details).
If this is specified and homophily
is TRUE
,
then degrees are calculated using the subnetwork consisting of only
edges whose endpoints have the same value of the by
attribute.
If by
is specified and
homophily
is FALSE
(the default), then separate degree
statistics are calculated for nodes having each separate
value of the attribute.
This term can only be used with undirected networks; for directed networks
see idegree
and odegree
.
degree1.5
(binary) (undirected)
Degree to the 3/2 power: This term adds one network statistic to the model equaling the sum over the actors of each actor's degree taken to the 3/2 power (or, equivalently, multiplied by its square root). This term is an undirected analog to the terms of Snijders et al. (2010), equations (11) and (12). This term can only be used with undirected networks.
degreepopularity
(binary) (undirected) (deprecated)
Degree popularity (deprecated): see degree1.5
.
degcrossprod
(binary) (undirected)Degree Cross-Product: This term adds one network statistic equal to the mean of the cross-products of the degrees of all pairs of nodes in the network which are tied. Only coded for undirected networks.
degcor
(binary) (undirected)Degree Correlation: This term adds one network statistic equal to the correlation of the degrees of all pairs of nodes in the network which are tied. Only coded for undirected networks.
density
(binary) (dyad-independent) (directed) (undirected)Density:
This term adds one network statistic equal to the density of the network.
For undirected networks, density
equals kstar(1)
or
edges
divided by n(n-1)/2; for directed networks,
density
equals edges
or istar(1)
or ostar(1)
divided by n(n-1).
diff(attr, pow=1, dir="t-h", sign.action="identity")
(binary) (dyad-independent) (frequently-used) (directed) (undirected) (quantitative nodal attribute), diff(attr, pow=1, dir="t-h", sign.action="identity", form ="sum")
(valued) (dyad-independent) (directed) (undirected) (bipartite) (quantitative nodal attribute)Difference:
The attr
argument specifies a quantitative vertex attribute (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details). For values of pow
other than
0
, this term adds one network statistic to the model,
equaling the sum, over directed edges (i,j), of
sign.action(attr[i]-attr[j])^pow
if dir
is
"t-h"
(the default), "tail-head"
, or "b1-b2"
and of sign.action(attr[j]-attr[i])^pow
if
"h-t"
, "head-tail"
, or "b2-b1"
. That is, the
argument dir
determines which vertex's attribute is
subtracted from which, with tail being the origin of a directed edge
and head being its destination, and bipartite networks' edges being
treated as going from the first part (b1) to the second (b2).
If pow==0
, the exponentiation is replaced by the signum
function: +1
if the difference is positive, 0
if there
is no difference, and -1
if the difference is negative. Note
that this function is applied after the
sign.action
. The comparison is exact, so when using
calculated values of attr
, ensure that values that you
want to be considered equal are, in fact, equal.
The following sign.actions
are possible:
"identity"
(the default)no transformation of the difference regardless of sign
"abs"
absolute value of the difference: equivalent
to the absdiff
term
"posonly"
positive differences are kept, negative differences are replaced by 0
"negonly"
negative differences are kept, positive differences are replaced by 0
Note that this term may not be meaningful for unipartite undirected
networks unless sign.action=="abs"
. When used on such a
network, it behaves as if all edges were directed, going from the
lower-indexed vertex to the higher-indexed vertex.
desp(d, type="OTP")
(binary) (directed)Directed edgewise shared partners: This term adds one network statistic to the model for each element in d
where the ith such statistic equals the number of edges in the network with exactly d[i]
shared partners. This term can only be used with directed networks.
While there is only one shared partner configuration in the undirected case, nine distinct configurations are possible for directed graphs, selected using the type
argument. Currently, terms may be defined with respect to five of these configurations; they are defined here as follows (using terminology from Butts (2008) and the relevent
package):
"OTP"
)vertex k is an OTP shared partner of ordered pair (i,j) iff i->k->j. Also known as "transitive shared partner".
"ITP"
)vertex k is an ITP shared partner of ordered pair (i,j) iff j->k->i. Also known as "cyclical shared partner"
"RTP"
)vertex k is an RTP shared partner of ordered pair (i,j) iff i<->k<->j.
"OSP"
)vertex k is an OSP shared partner of ordered pair (i,j) iff i->k, j->k.
"ISP"
)vertex k is an ISP shared partner of ordered pair (i,j) iff k->i, k->j.
By default, outgoing two-paths ("OTP"
) are calculated. Note that Robins et al. (2009) define closely related statistics to several of the above, using slightly different terminology.
dgwdsp(decay, fixed=FALSE, cutoff=30, type="OTP")
(binary) (directed)Geometrically weighted dyadwise shared partner distribution: This term adds one network statistic to the model equal to the geometrically weighted dyadwise shared partner distribution with decay parameter decay
parameter, which should be non-negative. (this parameter was called alpha
prior to ergm 3.7
). The value supplied for this parameter may be fixed (if fixed=TRUE
), or it may be used instead as the starting value for the estimation of decay
in a curved exponential family model (when fixed=FALSE
, the default) (see Hunter and Handcock, 2006). Note that the GWDSP statistic is equal to the sum of GWNSP plus GWESP.
While there is only one shared partner configuration in the undirected case, nine distinct configurations are possible for directed graphs, selected using the type
argument. Currently, terms may be defined with respect to five of these configurations; they are defined here as follows (using terminology from Butts (2008) and the relevent
package):
"OTP"
)vertex k is an OTP shared partner of ordered pair (i,j) iff i->k->j. Also known as "transitive shared partner".
"ITP"
)vertex k is an ITP shared partner of ordered pair (i,j) iff j->k->i. Also known as "cyclical shared partner"
"RTP"
)vertex k is an RTP shared partner of ordered pair (i,j) iff i<->k<->j.
"OSP"
)vertex k is an OSP shared partner of ordered pair (i,j) iff i->k, j->k.
"ISP"
)vertex k is an ISP shared partner of ordered pair (i,j) iff k->i, k->j.
By default, outgoing two-paths ("OTP"
) are calculated. Note that Robins et al. (2009) define closely related statistics to several of the above, using slightly different terminology.
The optional argument cutoff
sets the number of underlying DSP terms to use in computing the statistics when fixed=FALSE
, in order to reduce the computational burden. Its default value can also be controlled by the gw.cutoff
term option control parameter. (See control.ergm
.)
dgwesp(decay, fixed=FALSE, cutoff=30, type="OTP")
(binary) (directed)Geometrically weighted edgewise shared partner distribution: This term adds a statistic equal to the geometrically weighted edgewise (not dyadwise) shared partner distribution with decay parameter decay
parameter, which should be non-negative. (this parameter was called alpha
prior to ergm 3.7
). The value supplied for this parameter may be fixed (if fixed=TRUE
), or it may be used instead as the starting value for the estimation of decay
in a curved exponential family model (when fixed=FALSE
, the default) (see Hunter and Handcock, 2006).
While there is only one shared partner configuration in the undirected case, nine distinct configurations are possible for directed graphs, selected using the type
argument. Currently, terms may be defined with respect to five of these configurations; they are defined here as follows (using terminology from Butts (2008) and the relevent
package):
"OTP"
)vertex k is an OTP shared partner of ordered pair (i,j) iff i->k->j. Also known as "transitive shared partner".
"ITP"
)vertex k is an ITP shared partner of ordered pair (i,j) iff j->k->i. Also known as "cyclical shared partner"
"RTP"
)vertex k is an RTP shared partner of ordered pair (i,j) iff i<->k<->j.
"OSP"
)vertex k is an OSP shared partner of ordered pair (i,j) iff i->k, j->k.
"ISP"
)vertex k is an ISP shared partner of ordered pair (i,j) iff k->i, k->j.
By default, outgoing two-paths ("OTP"
) are calculated. Note that Robins et al. (2009) define closely related statistics to several of the above, using slightly different terminology.
The optional argument cutoff
sets the number of underlying ESP terms to use in computing the statistics when fixed=FALSE
, in order to reduce the computational burden. Its default value can also be controlled by the gw.cutoff
term option control parameter. (See control.ergm
.)
dgwnsp(decay, fixed=FALSE, cutoff=30, type="OTP")
(binary) (directed)Geometrically weighted non-edgewise shared partner distribution: This term is just like gwesp and gwdsp except it adds a statistic equal to the geometrically weighted nonedgewise (that is, over dyads that do not have an edge) shared partner distribution with decay parameter decay
parameter, which should be non-negative. (this parameter was called alpha
prior to ergm 3.7
). The value supplied for this parameter may be fixed (if fixed=TRUE
), or it may be used instead as the starting value for the estimation of decay
in a curved exponential family model (when fixed=FALSE
, the default) (see Hunter and Handcock, 2006).
While there is only one shared partner configuration in the undirected case, nine distinct configurations are possible for directed graphs, selected using the type
argument. Currently, terms may be defined with respect to five of these configurations; they are defined here as follows (using terminology from Butts (2008) and the relevent
package):
"OTP"
)vertex k is an OTP shared partner of ordered pair (i,j) iff i->k->j. Also known as "transitive shared partner".
"ITP"
)vertex k is an ITP shared partner of ordered pair (i,j) iff j->k->i. Also known as "cyclical shared partner"
"RTP"
)vertex k is an RTP shared partner of ordered pair (i,j) iff i<->k<->j.
"OSP"
)vertex k is an OSP shared partner of ordered pair (i,j) iff i->k, j->k.
"ISP"
)vertex k is an ISP shared partner of ordered pair (i,j) iff k->i, k->j.
By default, outgoing two-paths ("OTP"
) are calculated. Note that Robins et al. (2009) define closely related statistics to several of the above, using slightly different terminology.
The optional argument cutoff
sets the number of underlying NSP terms to use in computing the statistics when fixed=FALSE
, in order to reduce the computational burden. Its default value can also be controlled by the gw.cutoff
term option control parameter. (See control.ergm
.)
dnsp(d, type="OTP")
(binary) (directed)Directed non-edgewise shared partners: This term adds one network statistic to the model for each element in d
where the ith such statistic equals the number of non-edges in the network with exactly d[i]
shared partners. This term can only be used with directed networks.
While there is only one shared partner configuration in the undirected case, nine distinct configurations are possible for directed graphs, selected using the type
argument. Currently, terms may be defined with respect to five of these configurations; they are defined here as follows (using terminology from Butts (2008) and the relevent
package):
"OTP"
)vertex k is an OTP shared partner of ordered pair (i,j) iff i->k->j. Also known as "transitive shared partner".
"ITP"
)vertex k is an ITP shared partner of ordered pair (i,j) iff j->k->i. Also known as "cyclical shared partner"
"RTP"
)vertex k is an RTP shared partner of ordered pair (i,j) iff i<->k<->j.
"OSP"
)vertex k is an OSP shared partner of ordered pair (i,j) iff i->k, j->k.
"ISP"
)vertex k is an ISP shared partner of ordered pair (i,j) iff k->i, k->j.
By default, outgoing two-paths ("OTP"
) are calculated. Note that Robins et al. (2009) define closely related statistics to several of the above, using slightly different terminology.
dsp(d)
(binary) (directed) (undirected)Dyadwise shared partners:
The d
argument is a vector of distinct integers. This term adds one
network statistic to the model for each element in d
; the ith
such statistic equals the number of dyads in the network with exactly
d[i]
shared partners. This term can be used with directed and
undirected networks.
For directed networks, only outgoing two-path ("OTP") shared partners are counted. In other words, for a (directed) dyad (i,j)
in a directed graph, the number of shared partners counted by dsp
is the number of nodes k
that have edges i -> k -> j
. (These may also be called homogeneous shared partners.) To count other types of shared partners instead, see ddsp
.
dyadcov(x, attrname=NULL)
(binary) (dyad-independent) (directed) (undirected) (categorical nodal attribute)
Dyadic covariate: The x
argument is either a square matrix of covariates, one for each possible
edge in the network, the name of a network attribute of covariates,
or a network; if the latter, optional argument attrname
provides
the name of the quantitative edge attribute to use for covariate values
(in this case, missing edges in x
are assigned a covariate value
of zero).
This term adds three statistics to the model, each equal to the sum of the
covariate values for all dyads occupying one of the three possible non-empty
dyad states (mutual, upper-triangular asymmetric, and lower-triangular
asymmetric dyads, respectively), with the empty or null state serving as a
reference category. If the network is undirected, x
is either a
matrix of edgewise covariates, or a network; if the latter, optional
argument attrname
provides the name of the edge attribute to use for
edge values. This term adds one statistic to the model, equal to the sum of
the covariate values for each edge appearing in the network. The
edgecov
and dyadcov
terms are equivalent for undirected
networks.
edgecov(x, attrname=NULL)
(binary) (dyad-independent) (directed) (undirected) (frequently-used)
, edgecov(x,
attrname=NULL, form="sum")
(valued) (directed) (undirected) (dyad-independent)Edge covariate: The x
argument is either a square matrix of covariates, one for each possible
edge in the network, the name of a network attribute of covariates,
or a network; if the latter, optional argument attrname
provides
the name of the quantitative edge attribute to use for covariate values
(in this case, missing edges in x
are assigned a covariate value
of zero). This term adds one statistic to the model, equal to the sum
of the covariate values for each edge appearing in the network. The
edgecov
term applies to both directed and undirected networks. For
undirected networks the covariates are also assumed to be undirected. The
edgecov
and dyadcov
terms are equivalent for undirected
networks.
edges
(binary) (valued) (dyad-independent) (directed) (undirected) (frequently-used)
, a.k.a nonzero
(valued) (directed) (undirected) (dyad-independent)
Edges: This term adds one network statistic equal
to the number of edges (i.e. nonzero values) in the network. For undirected networks, edges
is equal to kstar(1)
; for directed networks, edges
is equal to
both ostar(1)
and istar(1)
.
esp(d)
(binary) (directed) (undirected)Edgewise shared partners:
This is just like the dsp
term, except this term adds one network
statistic to the model for each element in d
where the ith such
statistic equals the number of edges (rather than dyads) in the
network with exactly d[i]
shared partners. This term can be used with
directed and undirected networks.
For directed networks, only outgoing two-path ("OTP") shared partners are counted. In other words, for a (directed) edge i -> j
in a directed graph, the number of shared partners counted by esp
is the number of nodes k
that have edges i -> k -> j
. (These may also be called homogeneous shared partners.) To count other types of shared partners instead, see desp
.
equalto(value=0, tolerance=0)
(valued) (directed) (undirected) (dyad-independent)Number of dyads with
values equal to a specific value (within tolerance):
Adds one statistic equal to the number of dyads whose values
are within tolerance
of value
, i.e., between
value-tolerance
and value+tolerance
, inclusive.
greaterthan(threshold=0)
(valued) (directed) (undirected) (dyad-independent)Number of dyads with
values strictly greater than a threshold:
Adds the number of
statistics equal to the length of threshold
equaling to the number of dyads whose values exceed the
corresponding element of threshold
.
gwb1degree(decay, fixed=FALSE, attr=NULL, cutoff=30, levels=NULL)
(binary) (bipartite) (undirected) (curved)Geometrically weighted
degree distribution for the first mode in a bipartite (aka two-mode)
network:
This term adds one network statistic to the model equal to the weighted
degree distribution with decay controlled by the decay
parameter, which should be non-negative,
for nodes in the
first mode of a bipartite network. The first mode of a bipartite network
object is sometimes known as the "actor" mode.
The decay
parameter is the same as theta_s in
equation (14) in Hunter (2007). The value supplied for
this parameter may be fixed (if fixed=TRUE
),
or it may be used as merely the starting value for the estimation
in a curved exponential family model (the default).
The optional argument cutoff
sets the number of underlying degree terms to use in computing the statistics when fixed=FALSE
, in order to reduce the computational burden. Its default value can also be controlled by the gw.cutoff
term option control parameter. (See control.ergm
.)
If attr
is specified (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details) then separate degree
statistics are calculated for nodes having each separate
value of the attribute.
This term can only be used with undirected bipartite
networks.
gwb1dsp(decay=0, fixed=FALSE, cutoff=30)
(binary) (bipartite) (undirected) (curved)Geometrically weighted
dyadwise shared partner distribution for dyads in the first bipartition:
This term adds one network statistic to the model equal to the geometrically
weighted dyadwise shared partner distribution for dyads in the first bipartition,
with decay parameter decay
parameter, which should be non-negative. The value supplied for
this parameter may be fixed (if fixed=TRUE
),
or it may be used instead as the starting value for the estimation of decay
in a curved exponential family model (when fixed=FALSE
, the default) (see Hunter and Handcock, 2006).
This term can only be used with bipartite networks.
The optional argument cutoff
sets the number of underlying b1dsp terms to use in computing the statistics when fixed=FALSE
, in order to reduce the computational burden. Its default value can also be controlled by the gw.cutoff
term option control parameter. (See control.ergm
.)
gwb2degree(decay, fixed=FALSE, attr=NULL, cutoff=30, levels=NULL)
(binary) (bipartite) (undirected) (curved)Geometrically weighted
degree distribution for the second mode in a bipartite (aka two-mode)
network:
This term adds one network statistic to the model equal to the weighted
degree distribution with decay controlled by the which should be non-negative,
for nodes in the
second mode of a bipartite network. The second mode of a bipartite network
object is sometimes known as the "event" mode.
The decay
parameter is the same as theta_s in
equation (14) in Hunter (2007). The value supplied for
this parameter may be fixed (if fixed=TRUE
),
or it may be used as merely the starting value for the estimation
in a curved exponential family model (the default).
The optional argument cutoff
sets the number of underlying degree terms to use in computing the statistics when fixed=FALSE
, in order to reduce the computational burden. Its default value can also be controlled by the gw.cutoff
term option control parameter. (See control.ergm
.)
If attr
is specified (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details) then separate degree
statistics are calculated for nodes having each separate
value of the attribute.
This term can only be used with undirected bipartite
networks.
gwb2dsp(decay=0, fixed=FALSE, cutoff=30)
(binary) (bipartite) (undirected) (curved)Geometrically weighted
dyadwise shared partner distribution for dyads in the second bipartition:
This term adds one network statistic to the model equal to the geometrically
weighted dyadwise shared partner distribution for dyads in the second bipartition,
with decay parameter decay
parameter, which should be non-negative. The value supplied for
this parameter may be fixed (if fixed=TRUE
),
or it may be used instead as the starting value for the estimation of decay
in a curved exponential family model (when fixed=FALSE
, the default) (see Hunter and Handcock, 2006).
This term can only be used with bipartite networks.
The optional argument cutoff
sets the number of underlying b2dsp terms to use in computing the statistics when fixed=FALSE
, in order to reduce the computational burden. Its default value can also be controlled by the gw.cutoff
term option control parameter. (See control.ergm
.)
gwdegree(decay, fixed=FALSE, attr=NULL, cutoff=30, levels=NULL)
(binary) (undirected) (curved) (frequently-used)
Geometrically weighted
degree distribution:
This term adds one network statistic to the model equal to the weighted
degree distribution with decay controlled by the decay
parameter.
The decay
parameter is the same as theta_s in
equation (14) in Hunter (2007). The value supplied for
this parameter may be fixed (if fixed=TRUE
),
or it may be used instead as the starting value for the estimation of decay
in a curved exponential family model (when fixed=FALSE
, the default) (see Hunter and Handcock, 2006).
The optional argument cutoff
sets the number of underlying degree terms to use in computing the statistics when fixed=FALSE
, in order to reduce the computational burden. Its default value can also be controlled by the gw.cutoff
term option control parameter. (See control.ergm
.)
If attr
is specified (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details) then separate degree
statistics are calculated for nodes having each separate
value of the attribute. This term can only be used with undirected networks.
gwdsp(decay, fixed=FALSE, cutoff=30)
(binary) (directed) (undirected) (curved)Geometrically weighted
dyadwise shared partner distribution:
This term adds one network statistic to the model equal to the geometrically
weighted dyadwise shared partner distribution with decay parameter
decay
parameter, which should be non-negative. The value supplied for
this parameter may be fixed (if fixed=TRUE
),
or it may be used instead as the starting value for the estimation of decay
in a curved exponential family model (when fixed=FALSE
, the default) (see Hunter and Handcock, 2006).
This term can be used with directed and
undirected networks.
For directed networks, only outgoing two-path ("OTP") shared partners are counted. In other words, for a (directed) dyad (i,j)
in a directed graph, the number of shared partners counted by gwdsp
is the number of nodes k
that have edges i -> k -> j
. (These may also be called homogeneous shared partners.) To count other types of shared partners instead, see dgwdsp
.
The optional argument cutoff
sets the number of underlying DSP terms to use in computing the statistics when fixed=FALSE
, in order to reduce the computational burden. Its default value can also be controlled by the gw.cutoff
term option control parameter. (See control.ergm
.)
gwesp(decay, fixed=FALSE, cutoff=30)
(binary) (frequently-used) (directed) (undirected) (curved)Geometrically weighted
edgewise shared partner distribution:
This term is just like gwdsp
except it adds a statistic equal to the
geometrically weighted edgewise (not dyadwise) shared partner
distribution with decay parameter
decay
parameter, which should be non-negative. The value supplied for
this parameter may be fixed (if fixed=TRUE
),
or it may be used instead as the starting value for the estimation of decay
in a curved exponential family model (when fixed=FALSE
, the default) (see Hunter and Handcock, 2006). This term can be used with directed and
undirected networks.
For directed networks, only outgoing two-path ("OTP") shared partners are counted. In other words, for a (directed) edge i -> j
in a directed graph, the number of shared partners counted by gwesp
is the number of nodes k
that have edges i -> k -> j
. (These may also be called homogeneous shared partners.) To count other types of shared partners instead, see dgwesp
.
The optional argument cutoff
sets the number of underlying ESP terms to use in computing the statistics when fixed=FALSE
, in order to reduce the computational burden. Its default value can also be controlled by the gw.cutoff
term option control parameter. (See control.ergm
.)
gwidegree(decay, fixed=FALSE, attr=NULL, cutoff=30, levels=NULL)
(binary) (directed) (curved)Geometrically weighted
in-degree distribution: This term adds one network statistic to the model
equal to the weighted in-degree distribution with decay parameter
decay
parameter, which should be non-negative. (this parameter was called alpha
prior to ergm 3.7
). The value supplied for
this parameter may be fixed (if fixed=TRUE
),
or it may be used instead as the starting value for the estimation of decay
in a curved exponential family model (when fixed=FALSE
, the default) (see Hunter and Handcock, 2006). This
term can only be used with directed networks.
The optional argument cutoff
sets the number of underlying degree terms to use in computing the statistics when fixed=FALSE
, in order to reduce the computational burden. Its default value can also be controlled by the gw.cutoff
term option control parameter. (See control.ergm
.)
If attr
is specified (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details) then separate degree
statistics are calculated for nodes having each separate
value of the attribute.
gwnsp(decay, fixed=FALSE, cutoff=30)
(binary) (directed) (undirected) (curved)Geometrically weighted
nonedgewise shared partner distribution: This term is just like
gwesp
and gwdsp
except it adds a statistic equal to
the geometrically weighted nonedgewise (that is, over dyads
that do not have an edge) shared partner distribution with weight
parameter decay
parameter, which should be non-negative. (this parameter was called alpha
prior to ergm 3.7
). The optional argument fixed
indicates
whether the decay
parameter is fixed at the given value, or is to be fit as a curved
exponential-family model (see Hunter and Handcock, 2006). The
default is FALSE
, which means the scale parameter is not
fixed and thus the model is a CEF model. This term can be used with
directed and undirected networks.
For directed networks, only outgoing two-path ("OTP") shared partners are counted. In other words, for a (directed) non-edge (i,j)
in a directed graph, the number of shared partners counted by gwnsp
is the number of nodes k
that have edges i -> k -> j
. (These may also be called homogeneous shared partners.) To count other types of shared partners instead, see dgwnsp
.
The optional argument cutoff
sets the number of underlying NSP terms to use in computing the statistics when fixed=FALSE
, in order to reduce the computational burden. Its default value can also be controlled by the gw.cutoff
term option control parameter. (See control.ergm
.)
gwodegree(decay, fixed=FALSE, attr=NULL, cutoff=30, levels=NULL)
(binary) (directed) (curved)Geometrically weighted
out-degree distribution: This term adds one network statistic to the model
equal to the weighted out-degree distribution with decay parameter
decay
parameter, which should be non-negative. (this parameter was called alpha
prior to ergm 3.7
). The value supplied for
this parameter may be fixed (if fixed=TRUE
),
or it may be used instead as the starting value for the estimation of decay
in a curved exponential family model (when fixed=FALSE
, the default) (see Hunter and Handcock, 2006). This
term can only be used with directed networks.
The optional argument cutoff
sets the number of underlying degree terms to use in computing the statistics when fixed=FALSE
, in order to reduce the computational burden. Its default value can also be controlled by the gw.cutoff
term option control parameter. (See control.ergm
.)
If attr
is specified (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details) then separate degree
statistics are calculated for nodes having each separate
value of the attribute.
hamming(x, cov, attrname=NULL)
(binary) (dyad-independent) (directed) (undirected)Hamming distance:
This term adds one statistic to the model equal to the weighted or
unweighted Hamming distance of the network from the network specified by
x
. (If no argument is given, x
is taken to be the observed
network, i.e., the network on the left side of the ~ in the formula
that defines the ERGM.) Unweighted Hamming distance is defined as the total
number of pairs (i,j) (ordered or unordered, depending on whether the
network is directed or undirected) on which the two networks differ. If the
optional argument cov
is specified, then the weighted Hamming
distance is computed instead, where each pair (i,j) contributes a
pre-specified weight toward the distance when the two networks differ on
that pair. The argument cov
is either a matrix of edgewise weights or
a network; if the latter, the optional argument attrname
provides the
name of the edge attribute to use for weight values.
idegrange(from, to=+Inf, by=NULL, homophily=FALSE, levels=NULL)
(binary) (directed) (categorical nodal attribute)
In-degree range:
The from
and to
arguments are vectors of distinct
integers (or +Inf
, for to
(its default)). If one of the vectors has
length 1, it is recycled to the length of the other. Otherwise, they
must have the same length. This term adds one
network statistic to the model for each element of from
(or to
); the ith
such statistic equals the number of nodes in the network of in-degree
greater than or equal to
from[i]
but strictly less than to[i]
, i.e. with
in-edge count
in semiopen interval [from,to)
. The optional argument
by
specifies a vertex attribute (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details).
If this is specified and homophily
is TRUE
,
then degrees are calculated using the subnetwork consisting of only
edges whose endpoints have the same value of the by
attribute.
If by
is specified and
homophily
is FALSE
(the default), then separate degree range
statistics are calculated for nodes having each separate
value of the attribute.
This term can only be used with directed networks; for undirected
networks (bipartite and not)
see degrange
. For degrees of specific modes of bipartite
networks, see b1degrange
and b2degrange
. For
in-degrees, see idegrange
.
idegree(d, by=NULL, homophily=FALSE, levels=NULL)
(binary) (directed) (categorical nodal attribute) (frequently-used)In-degree: The d
argument
is a vector of distinct integers. This term adds one network statistic to
the model for each element in d
; the ith such statistic equals
the number of nodes in the network of in-degree d[i]
, i.e. the number
of nodes with exactly d[i]
in-edges. The optional term
by
specifies a vertex attribute (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details).
If this is specified and homophily
is TRUE
,
then degrees are calculated using the subnetwork consisting of only
edges whose endpoints have the same value of the by
attribute.
If by
is specified and
homophily
is FALSE
(the default), then separate degree
statistics are calculated for nodes having each separate
value of the attribute.
This term can only be used with directed networks; for undirected networks
see degree
.
idegree1.5
(binary) (directed)
In-degree to the 3/2 power: This term adds one network statistic to the model equaling the sum over the actors of each actor's indegree taken to the 3/2 power (or, equivalently, multiplied by its square root). This term is analogous to the term of Snijders et al. (2010), equation (12). This term can only be used with directed networks.
idegreepopularity
(binary) (directed) (deprecated)
In-degree popularity (deprecated): see idegree1.5
.
ininterval(lower=-Inf, upper=+Inf, open=c(TRUE,TRUE))
(valued) (directed) (undirected) (dyad-independent)
Number of dyads
whose values are in an interval
Adds one statistic equaling to the number of dyads whose values
are between lower
and
upper
. Argument open
is a logical
vector of length 2 that controls whether
the interval is open (exclusive) on the lower and on the upper
end, respectively. open
can also be specified as one of
"[]"
, "(]"
, "[)"
, and "()"
.
intransitive
(binary) (directed) (triad-related)Intransitive triads:
This term adds one statistic to the model, equal to the number of triads in
the network that are intransitive. The intransitive triads are those of type
111D
, 201
, 111U
, 021C
, or 030C
in the
categorization of Davis and Leinhardt (1972). For details on the 16 possible
triad types, see triad.classify
in the
sna
package. Note the distinction from the ctriple
term. This term can only be used with directed networks.
intransitive
(binary) (directed) (triad-related)Intransitive triads:
This term adds one statistic to the model, equal to the number of triads in
the network that are intransitive. The intransitive triads are those of type
111D
, 201
, 111U
, 021C
, or 030C
in the
categorization of Davis and Leinhardt (1972). For details on the 16 possible
triad types, see triad.classify
in the
sna
package. Note the distinction from the ctriple
term. This term can only be used with directed networks.
isolatededges
(binary) (undirected) (bipartite)
Isolated edges: This term adds one statistic to the model equal to the number of isolated edges in the network, i.e., the number of edges each of whose endpoints has degree 1. This term can only be used with undirected networks.
isolates
(binary) (directed) (undirected) (frequently-used)
Isolates: This term adds one statistic to the model equal to the number of isolates in the network. For an undirected network, an isolate is defined to be any node with degree zero. For a directed network, an isolate is any node with both in-degree and out-degree equal to zero.
istar(k, attr=NULL, levels=NULL)
(binary) (directed) (categorical nodal attribute)
In-stars: The k
argument is a
vector of distinct integers. This term adds one network statistic to the
model for each element in k
. The ith such statistic counts the
number of distinct k[i]
-instars in the network, where a
k-instar is defined to be a node N and a set of k
different nodes {O[1], ..., O[k]} such that the ties
(O_j, N) exist for j=1, …, k. The
optional argument attr
specifies a vertex attribute (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details). If this is specified
then the count is over the number of k-instars where all nodes have
the same value of the attribute. This term can only be used for directed
networks; for undirected networks see kstar
. Note that
istar(1)
is equal to both ostar(1)
and edges
.
kstar(k, attr=NULL, levels=NULL)
(binary) (undirected) (categorical nodal attribute)
k-Stars:
The k
argument is a vector of distinct integers. This term adds one
network statistic to the model for each element in k
. The ith
such statistic counts the number of distinct k[i]
-stars in the
network, where a k-star is defined to be a node N and a set of
k different nodes {O[1], ..., O[k]} such that the ties
{N, O[i]} exist for i=1, …, k. The optional argument
attr
specifies a vertex attribute (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details). If this is specified then the count is over
the number of k-stars where all nodes have the same value of the
attribute. This term can only be used for undirected networks; for directed
networks, see istar
, ostar
, twopath
and m2star
.
Note that kstar(1)
is equal to edges
.
smallerthan(threshold=0)
(valued) (directed) (undirected) (dyad-independent)Number of dyads with
values strictly smaller than a threshold:
Adds the number of
statistics equal to the length of threshold
equaling to the number of dyads whose values are exceeded by the
corresponding element of threshold
.
localtriangle(x)
(binary) (triad-related) (directed) (undirected)Triangles within neighborhoods:
This term adds one statistic to the model equal to the number of triangles
in the network between nodes “close to” each other. For an undirected
network, a local triangle is defined to be any set of three edges between
nodal pairs \{(i,j), (j,k), (k,i)\} that are in the same neighborhood.
For a directed network, a triangle is defined as any set of three edges
(i,j), (j,k) and either
(k{\rightarrow}i) or (k{≤ftarrow}i) where again all nodes are
within the same neighborhood. The argument x
is an undirected
network or an symmetric adjacency matrix that specifies whether the two nodes
are in the same neighborhood. Note that triangle
, with or without an argument, is a
special case of localtriangle
.
m2star
(binary) (directed)Mixed 2-stars, a.k.a 2-paths:
This term adds one statistic to the model, equal to the number of mixed
2-stars in the network, where a mixed 2-star is a pair of distinct edges
(i,j), (j,k). A mixed 2-star is
sometimes called a 2-path because it is a directed path of length 2 from
i to k via j. However, in the case of a 2-path the focus
is usually on the endpoints i and k, whereas for a mixed 2-star
the focus is usually on the midpoint j. This term can only be used
with directed networks; for undirected networks see kstar(2)
. See
also twopath
.
meandeg
(binary) (dyad-independent) (directed) (undirected)Mean vertex degree:
This term adds one network statistic to the model equal to the
average degree of a node. Note that this term is a constant multiple of
both edges
and density
.
mm(attrs, levels=NULL, levels2=-1)
(binary) (dyad-independent) (frequently-used) (directed) (undirected) (categorical nodal attribute), mm(attrs, levels=NULL, levels2=-1, form="sum")
(valued) (dyad-independent) (frequently-used) (directed) (undirected) (categorical nodal attribute)Mixing matrix cells and margins:
attrs
is a two-sided formula whose LHS gives the attribute or
attribute function (see Specifying Vertex attributes and Levels (? nodal_attributes
)) for the rows of the mixing matrix and whose RHS gives
that for its columns. A one-sided formula (e.g.,
~A
) is symmetrized (e.g., A~A
). levels
similarly specifies the subset of rows and columns to be
used. levels2
can then be used to filter which specific cells
of the matrix to include. A two-sided formula with a dot on one side
calculates the margins of the mixing matrix, analogously to nodefactor
, with
A~.
calculating the row/sender/b1 margins and .~A
calculating the column/receiver/b2 margins.
mutual(same=NULL, by=NULL, diff=FALSE, keep=NULL, levels=NULL)
(binary) (directed) (frequently-used), mutual(form="min",threshold=0)
(valued) (directed)
Mutuality:
In binary ERGMs, equal to the number of
pairs of actors i and j for which (i,j)
and (j,i) both exist. For valued ERGMs, equal to ∑_{i<j} m(y_{i,j},y_{j,i}),
where m is determined by form
argument: "min"
for \min(y_{i,j},y_{j,i}), "nabsdiff"
for
-|y_{i,j},y_{j,i}|, "product"
for
y_{i,j}y_{j,i}, and "geometric"
for
√{y_{i,j}}√{y_{j,i}}. See Krivitsky (2012) for a
discussion of these statistics. form="threshold"
simply
computes the binary mutuality
after
thresholding at threshold
.
This term can only be used
with directed networks. The binary version also has the following capabilities: if the optional same
argument is passed
(see Specifying Vertex Attributes and Levels for details),
only mutual pairs that match on the attribute are counted;
separate counts for each unique matching value can be obtained by using
diff=TRUE
with same
; and if by
is passed (again, see Specifying Vertex Attributes and Levels),
then each node is counted separately for each mutual pair in which it
occurs and the counts are tabulated by unique values of the attribute.
This means that the sum of the mutual statistics when by
is used
will equal twice the standard mutual statistic. Only one of same
or by
may be used, and only the former is affected by diff
;
if both same
and by
are passed, by
is ignored.
Finally, if levels
is passed, this tells which statistics should be kept
whenever the mutual
term would ordinarily result in multiple statistics (see Specifying Vertex Attributes and Levels).
The argument keep
is retained for backwards compatibility and may be removed in a future version. When both keep
and levels
are passed, levels
overrides keep
.
nearsimmelian
(binary) (directed) (triad-related)Near simmelian triads: This term adds one statistic to the model equal to the number of near Simmelian triads, as defined by Krackhardt and Handcock (2007). This is a sub-graph of size three which is exactly one tie short of being complete. This term can only be used with directed networks.
nodecov(attr)
(binary) (dyad-independent) (frequently-used) (directed) (undirected) (quantitative nodal attribute), nodecov(attr, form="sum")
(valued) (dyad-independent) (directed) (undirected) (quantitative nodal attribute), a.k.a. nodemain
(binary) (directed) (undirected)Main effect of a covariate:
The attr
argument specifies one or more quantitative attributes (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details).
This term adds a single network statistic for each quantitative attribute or matrix column to the model equaling the sum of
attr(i)
and attr(j)
for all edges (i,j) in the
network. For categorical attributes, see nodefactor
. Note that for
directed networks, nodecov
equals nodeicov
plus
nodeocov
.
Note that ergm
versions 3.9.4 and earlier used different arguments for this term. See the above section on versioning for invoking the old behavior.
nodecovar(center, transform)
(valued) (directed)Covariance of undirected dyad values
incident on each actor: This term adds one statistic equal to
∑_{i,j<k} y_{i,j}y_{i,k}/(n-2). This can be
viewed as a valued analog of the star(2)
statistic. If center=TRUE
, the y_{\cdot,\cdot}s are
centered by their mean over the whole network before the
calculation. Note that this makes the model non-local, but it may
alleviate multimodailty. If transform="sqrt"
,
y_{\cdot,\cdot}s are repaced by their square roots before the
calculation. This makes sense for counts in particular. If
center=TRUE
as well, they are centered by the mean of the
square roots.
Note that this term replaces nodesqrtcovar
, which has been
deprecated in favor of nodecovar(transform="sqrt")
.
nodecovar
(valued) (directed) (undirected) (quantitative nodal attribute)
Uncentered covariance of dyad values
incident on each actor: This term adds one statistic equal to
∑_{i,j,k} (y_{i,j}y_{i,k}+y_{k,j}y_{k,j}). This can be
viewed as a valued analog of the kstar(2)
statistic.
nodefactor(attr, base=1, levels=-1)
(binary) (dyad-independent) (directed) (undirected) (categorical nodal attribute) (frequently-used)
,
nodefactor(attr, base=1, levels=-1, form="sum")
(dyad-independent) (valued) (directed) (undirected) (categorical nodal attribute)
Factor attribute
effect: The attr
argument specifies one or more categorical attributes (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details). This term adds multiple network statistics to the
model, one for each of (a subset of) the unique values of the
attr
attribute (or each combination of the attributes
given). Each of these statistics gives the number of times a node
with that attribute or those attributes appears in an edge in the
network.
The optional levels
argument controls which levels of the attribute should be included and which should be excluded. (See Specifying Vertex attributes and Levels (? nodal_attributes
) for details.) For example, if the “fruit” attribute has levels “orange”, “apple”, “banana”, and “pear”, then to include just two levels, one for “apple” and one for “pear”, use any of nodefactor("fruit", levels=-(2:3))
, nodefactor("fruit", levels=c(1,4))
, and nodefactor("fruit", levels=c("apple", "pear"))
. Note: if you are using numeric values to specify the levels of a character variable, the levels will correspond to the alphabetically sorted character levels.
To include all attribute values is usually not a good idea, because the sum of all such statistics equals the number of edges and hence a linear dependency would arise in any model also including edges
. The default, levels=-1
, is therefore to omit the first (in lexicographic order) attribute level. To include all levels, pass either levels=TRUE
(i.e., keep all levels) or levels=NULL
(i.e., do not filter levels).
The argument base
is retained for backwards compatibility and may be removed in a future version. When both base
and levels
are passed, levels
overrides base
.
nodeicov(attr)
(binary) (directed) (quantitative nodal attribute) (frequently-used)
, nodeicov(attr, form="sum")
(valued) (directed) (quantitative nodal attribute)
Main effect of a covariate for
in-edges:
The attr
argument specifies one or more quantitative attributes (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details). This term adds a single network statistic for each quantitative attribute or matrix column to the model equaling the total
value of attr(j)
for all edges (i,j) in the network. This
term may only be used with directed networks. For categorical attributes,
see nodeifactor
.
Note that ergm
versions 3.9.4 and earlier used different arguments for this term. See the above section on versioning for invoking the old behavior.
nodeicovar(center, transform)
(valued) (directed)Covariance of in-dyad values
incident on each actor: This term adds one statistic equal to
∑_{i,j,k} y_{j,i}y_{k,i}/(n-2). This can be
viewed as a valued analog of the istar(2)
statistic. If center=TRUE
, the y_{\cdot,\cdot}s are
centered by their mean over the whole network before the
calculation. Note that this makes the model non-local, but it may
alleviate multimodailty. If transform="sqrt"
,
y_{\cdot,\cdot}s are repaced by their square roots before the
calculation. This makes sense for counts in particular. If
center=TRUE
as well, they are centered by the mean of the
square roots.
Note that this term replaces nodeisqrtcovar
, which has been
deprecated in favor of nodeicovar(transform="sqrt")
.
nodeifactor(attr, base=1, levels=-1)
(binary) (dyad-independent) (directed) (categorical nodal attribute) (frequently-used)
,
nodeifactor(attr, base=1, levels=-1, form="sum")
(valued) (dyad-independent) (directed) (categorical nodal attribute)
Factor attribute
effect for in-edges: The attr
argument specifies one or more categorical attributes (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details). This term adds multiple network
statistics to the model, one for each of (a subset of) the unique
values of the attr
attribute (or each combination of the
attributes given). Each of these statistics gives the number of
times a node with that attribute or those attributes appears as the
terminal node of a directed tie.
The optional levels
argument controls which levels of the attribute should be included and which should be excluded. (See Specifying Vertex attributes and Levels (? nodal_attributes
) for details.) For example, if the “fruit” attribute has levels “orange”, “apple”, “banana”, and “pear”, then to include just two levels, one for “apple” and one for “pear”, use any of nodeifactor("fruit", levels=-(2:3))
, nodeifactor("fruit", levels=c(1,4))
, and nodeifactor("fruit", levels=c("apple", "pear"))
. Note: if you are using numeric values to specify the levels of a character variable, the levels will correspond to the alphabetically sorted character levels.
To include all attribute values is usually not a good idea, because the sum of all such statistics equals the number of edges and hence a linear dependency would arise in any model also including edges
. The default, levels=-1
, is therefore to omit the first (in lexicographic order) attribute level. To include all levels, pass either levels=TRUE
(i.e., keep all levels) or levels=NULL
(i.e., do not filter levels).
The argument base
is retained for backwards compatibility and may be removed in a future version. When both base
and levels
are passed, levels
overrides base
.
For an analogous term for quantitative vertex attributes, see nodeicov
.
nodematch(attr, diff=FALSE, keep=NULL, levels=NULL)
(binary) (dyad-independent) (frequently-used) (directed) (undirected) (categorical nodal attribute)
, nodematch(attr, diff=FALSE, keep=NULL, levels=NULL, form="sum")
(valued) (dyad-independent) (directed) (undirected) (categorical nodal attribute)
a.k.a. match
(binary) (directed) (dyad-independent) (undirected) (categorical nodal attribute)
Uniform homophily and differential homophily:
The attr
argument specifies one or more attributes (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details). When diff=FALSE
, this term adds one network statistic
to the model, which counts the number of edges (i,j) for which
attr(i)==attr(j)
. This is also called ”uniform homophily,” because each group is assumed to have the same propensity for within-group ties. When multiple attribute names are given, the
statistic counts only ties for which all of the attributes
match. When diff=TRUE
, p network statistics are added
to the model, where p is the number of unique values of the
attr
attribute. The kth such statistic counts the
number of edges (i,j) for which attr(i) ==
attr(j) == value(k)
, where value(k)
is the kth
smallest unique value of the attr
attribute. This is also called ”differential homophily,” because each group is allowed to have a unique propensity for within-group ties. Note that a statistical test of uniform vs. differential homophily should be conducted using the ANOVA function.
By default, matches on all levels k are
counted. The optional levels
argument controls which levels of the attribute should be included and which should be excluded. (See Specifying Vertex attributes and Levels (? nodal_attributes
) for details.) For example, if the “fruit” attribute has levels “orange”, “apple”, “banana”, and “pear”, then to include just two levels, one for “apple” and one for “pear”, use any of nodematch("fruit", levels=-(2:3))
, nodematch("fruit", levels=c(1,4))
, and nodematch("fruit", levels=c("apple", "pear"))
. Note: if you are using numeric values to specify the levels of a character variable, the levels will correspond to the alphabetically sorted character levels. This works for both
diff=TRUE
and diff=FALSE
.
The argument keep
is retained for backwards compatibility and may be removed in a future version. When both keep
and levels
are passed, levels
overrides keep
.
nodemix(attr, base=NULL, b1levels=NULL, b2levels=NULL, levels=NULL, levels2=-1)
(binary) (dyad-independent) (frequently-used) (directed) (undirected) (categorical nodal attribute)
,
nodemix(attr, base=NULL, b1levels=NULL, b2levels=NULL, levels=NULL, levels2=-1, form="sum")
(valued) (dyad-independent) (directed) (undirected) (categorical nodal attribute)
Nodal attribute
mixing: The attr
argument specifies one or more categorical vertex attributes
(see Specifying Vertex Attributes and Levels for details). By default, this term adds one network statistic to
the model for each possible pairing of attribute values. The
statistic equals the number of edges in the network in which the
nodes have that pairing of values. (When multiple attributes are specified, a
statistic is added for each combination of attribute values for
those attributes.) In other words, this term produces one statistic for
every entry in the mixing matrix for the attribute(s). By default, the ordering of
the attribute values is lexicographic: alphabetical (for nominal categories) or
numerical (for ordered categories), but this can be overridden using
the levels
arguments.
The optional arguments levels
, levels2
,
b1levels
, and b2levels
control what statistics are included in the model, and the order in which they appear.
levels2
apply to all networks; levels
applies to unipartite networks; b1levels
and b2levels
apply to
bipartite networks (see Specifying Vertex attributes and Levels (? nodal_attributes
)).
The argument base
is retained for backwards compatibility and may be removed in a future version. When both base
and levels2
are passed, levels2
overrides base
.
nodeocov(attr)
(binary) (directed) (dyad-independent)(quantitative nodal attribute)
, nodeocov(attr, form="sum")
(valued) (directed) (dyad-independent)
(quantitative nodal attribute)
Main effect of a covariate for
out-edges:
The attr
argument specifies one or more quantitative attributes (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details). This term adds a single network statistic for each quantitative attribute or matrix column to the model equaling the total
value of attr(i)
for all edges (i,j) in the network. This
term may only be used with directed networks. For categorical attributes,
see nodeofactor
.
Note that ergm
versions 3.9.4 and earlier used different arguments for this term. See the above section on versioning for invoking the old behavior.
nodeocovar(center, transform)
(valued) (directed)Covariance of out-dyad values
incident on each actor: This term adds one statistic equal to
∑_{i,j,k} y_{i,j}y_{i,k}/(n-2). This can be
viewed as a valued analog of the ostar(2)
statistic. If center=TRUE
, the y_{\cdot,\cdot}s are
centered by their mean over the whole network before the
calculation. Note that this makes the model non-local, but it may
alleviate multimodailty. If transform="sqrt"
,
y_{\cdot,\cdot}s are repaced by their square roots before the
calculation. This makes sense for counts in particular. If
center=TRUE
as well, they are centered by the mean of the
square roots.
Note that this term replaces nodeosqrtcovar
, which has been
deprecated in favor of nodeocovar(transform="sqrt")
.
nodeofactor(attr, base=1, levels=-1)
(binary) (dyad-independent) (directed) (categorical nodal attribute)
,
nodeofactor(attr, base=1, levels=-1, form="sum")
(valued) (dyad-independent) (categorical nodal attribute) (directed)Factor attribute
effect for out-edges: The attr
argument specifies one or more categorical attributes (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details). This term adds multiple network
statistics to the model, one for each of (a subset of) the unique
values of the attr
attribute (or each combination of the
attributes given). Each of these statistics gives the number of
times a node with that attribute or those attributes appears as the
node of origin of a directed tie.
The optional levels
argument controls which levels of the attribute should be included and which should be excluded. (See Specifying Vertex attributes and Levels (? nodal_attributes
) for details.) For example, if the “fruit” attribute has levels “orange”, “apple”, “banana”, and “pear”, then to include just two levels, one for “apple” and one for “pear”, use any of nodeofactor("fruit", levels=-(2:3))
, nodeofactor("fruit", levels=c(1,4))
, and nodeofactor("fruit", levels=c("apple", "pear"))
. Note: if you are using numeric values to specify the levels of a character variable, the levels will correspond to the alphabetically sorted character levels.
To include all attribute values is usually not a good idea, because the sum of all such statistics equals the number of edges and hence a linear dependency would arise in any model also including edges
. The default, levels=-1
, is therefore to omit the first (in lexicographic order) attribute level. To include all levels, pass either levels=TRUE
(i.e., keep all levels) or levels=NULL
(i.e., do not filter levels).
The argument base
is retained for backwards compatibility and may be removed in a future version. When both base
and levels
are passed, levels
overrides base
.
This term can only be used with directed networks.
nsp(d)
(binary) (directed) (undirected)Nonedgewise shared partners: This is
just like the dsp
and esp
terms, except this term adds
one network statistic to the model for each element in d
where the ith such statistic equals the number of
non-edges (that is, dyads that do not have an edge) in the network
with exactly d[i]
shared partners. This term can be used with
directed and undirected networks.
For directed networks, only outgoing two-path ("OTP") shared partners are counted. In other words, for a (directed) non-edge (i,j)
in a directed graph, the number of shared partners counted by nsp
is the number of nodes k
that have edges i -> k -> j
. (These may also be called homogeneous shared partners.) To count other types of shared partners instead, see dnsp
.
odegrange(from, to=+Inf, by=NULL, homophily=FALSE, levels=NULL)
(binary) (directed) (categorical nodal attribute)
Out-degree range:
The from
and to
arguments are vectors of distinct
integers (or +Inf
, for to
(its default)). If one of the vectors has
length 1, it is recycled to the length of the other. Otherwise, they
must have the same length. This term adds one
network statistic to the model for each element of from
(or to
); the ith
such statistic equals the number of nodes in the network of out-degree
greater than or equal to
from[i]
but strictly less than to[i]
, i.e. with
out-edge count
in semiopen interval [from,to)
. The optional argument
by
specifies a vertex attribute (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details).
If this is specified and homophily
is TRUE
,
then degrees are calculated using the subnetwork consisting of only
edges whose endpoints have the same value of the by
attribute.
If by
is specified and
homophily
is FALSE
(the default), then separate degree range
statistics are calculated for nodes having each separate
value of the attribute.
This term can only be used with directed networks; for undirected
networks (bipartite and not)
see degrange
. For degrees of specific modes of bipartite
networks, see b1degrange
and b2degrange
. For
in-degrees, see idegrange
.
odegree(d, by=NULL, homophily=FALSE, levels=NULL)
(binary) (directed) (categorical nodal attribute) (frequently-used)Out-degree: The d
argument
is a vector of distinct integers. This term adds one network statistic to
the model for each element in d
; the ith such statistic equals
the number of nodes in the network of out-degree d[i]
, i.e. the
number of nodes with exactly d[i]
out-edges. The optional argument
by
specifies a vertex attribute (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details).
If this is specified and homophily
is TRUE
,
then degrees are calculated using the subnetwork consisting of only
edges whose endpoints have the same value of the by
attribute.
If by
is specified and
homophily
is FALSE
(the default), then separate degree
statistics are calculated for nodes having each separate
value of the attribute.
This term can only be used with directed networks; for undirected networks
see degree
.
odegree1.5
(binary) (directed)
Out-degree to the 3/2 power: This term adds one network statistic to the model equaling the sum over the actors of each actor's outdegree taken to the 3/2 power (or, equivalently, multiplied by its square root). This term is analogous to the term of Snijders et al. (2010), equation (12). This term can only be used with directed networks.
odegreepopularity
(binary) (directed) (deprecated)
Out-degree popularity (deprecated): see odegree1.5
.
opentriad
(binary) (undirected) (triad-related)Open triads: This term adds one statistic to the model equal to the number of 2-stars minus three times the number of triangles in the network. It is currently only implemented for undirected networks.
ostar(k, attr=NULL, levels=NULL)
(binary) (directed) (categorical nodal attribute)
k-Outstars: The k
argument is
a vector of distinct integers. This term adds one network statistic to the
model for each element in k
. The ith such statistic counts the
number of distinct k[i]
-outstars in the network, where a
k-outstar is defined to be a node N and a set of k
different nodes {O[1], ..., O[k]} such that the ties
(N,O_j) exist for j=1, …, k. The
optional argument attr
specifies a vertex attribute (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details). If this is specified
then the count is the number of k-outstars where all nodes have the
same value of the attribute. This term can only be used with directed
networks; for undirected networks see kstar
. Note that
ostar(1)
is equal to both istar(1)
and edges
.
receiver(base=1, nodes=-1)
(binary) (directed) (dyad-independent)
,
receiver(base=1, nodes=-1, form="sum")
(valued) (directed) (dyad-independent)Receiver effect:
This term adds one network statistic for each node equal to the number of
in-ties for that node. This measures the popularity of the node. The term
for the first node is omitted by default because of linear dependence that
arises if this term is used together with edges
, but its coefficient
can be computed as the negative of the sum of the coefficients of all the
other actors. That is, the average coefficient is zero, following the
Holland-Leinhardt parametrization of the $p_1$ model (Holland and Leinhardt,
1981). The base
and nodes
arguments allow the user to determine which nodes'
statistics should be included or excluded (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details). The argument nodes
is preferred to base
, although base
carries a default value of 1 for backwards compatibility. (If both base
and nodes
are supplied, then nodes
overrides base
.) This
term can only be used with directed networks. For undirected networks, see
sociality
.
sender(base=1, nodes=-1)
(binary) (directed) (dyad-independent)
,
sender(base=1, nodes=-1, form="sum")
(valued) (directed) (dyad-independent)Sender effect:
This term adds one network statistic for each node equal to the number of
out-ties for that node. This measures the activity of the node. The term for
the first node is omitted by default because of linear dependence that
arises if this term is used together with edges
, but its coefficient
can be computed as the negative of the sum of the coefficients of all the
other actors. That is, the average coefficient is zero, following the
Holland-Leinhardt parametrization of the $p_1$ model (Holland and Leinhardt,
1981). The nodes
arguments allow the user to determine which nodes'
statistics should be included or excluded (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details).
The argument base
is retained for backwards compatibility and may be removed in a future version. When both base
and nodes
are passed, nodes
overrides base
.
This term can only be used with directed networks. For undirected networks, see sociality
.
simmelian
(binary) (directed) (triad-related)Simmelian triads: This term adds one statistic to the model equal to the number of Simmelian triads, as defined by Krackhardt and Handcock (2007). This is a complete sub-graph of size three. This term can only be used with directed networks.
simmelianties
(binary) (triad-related) (directed)Ties in simmelian triads: This term adds one statistic to the model equal to the number of ties in the network that are associated with Simmelian triads, as defined by Krackhardt and Handcock (2007). Each Simmelian has six ties in it but, because Simmelians can overlap in terms of nodes (and associated ties), the total number of ties in these Simmelians is less than six times the number of Simmelians. Hence this is a measure of the clustering of Simmelians (given the number of Simmelians). This term can only be used with directed networks.
smalldiff(attr, cutoff)
(binary) (dyad-independent) (directed) (undirected) (quantitative nodal attribute)
Number of
ties between actors with similar (but not necessarily identical)
attribute values: The attr
argument specifies a quantitative vertex attribute (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details). This term adds one statistic, having as its
value the number of edges in the network for which the incident
actors' attribute values differ less than cutoff
; that is,
number of edges between i
to j
such that
abs(attr[i]-attr[j])<cutoff
.
sociality(attr=NULL, base=1, levels=NULL, nodes=-1)
(binary) (undirected) (dyad-independent) (categorical nodal attribute)
,
sociality(attr=NULL, base=1, levels=NULL, nodes=-1, form="sum")
(valued) (undirected) (dyad-independent) (categorical nodal attribute)
Undirected degree:
This term adds one network statistic for each node equal to the number of
ties of that node. This term can only be used with undirected networks. For directed networks, see sender
and
receiver
. By default, nodes=-1
means that the statistic for the
first node will be omitted, but this argument may be changed to control
which statistics are included just as for the nodes
argument of sender
and
receiver
terms.
The argument base
is retained for backwards compatibility and may be removed in a future version. When both base
and nodes
are passed, nodes
overrides base
.
The optional attr
argument is deprecated and will be replaced with a more elegant implementation in a future release. In the meantime, it specifies a categorical vertex attribute (see Specifying Vertex Attributes and Levels for details). If provided, this term only counts ties between nodes with the same value of the attribute (an actor-specific version of the nodematch
term), restricted to be one of the values specified by (also deprecated) levels
if levels
is not NULL
.
sum(pow=1)
(valued) (directed) (undirected)Sum of dyad values (optionally taken
to a power): This term adds one statistic equal to the sum of
dyad values taken to the power pow
, which defaults to 1.
threetrail(keep=NULL, levels=NULL)
(binary) (directed) (undirected)
(triad-related),
Three-trails:
a.k.a. threepath
.
For an undirected network, this term adds one statistic equal to the number
of 3-trails, where a 3-trail is defined as a “trail” of length three that
traverses three distinct edges.
Note that a 3-trail need not
include four distinct nodes; in particular, a triangle counts as three
3-trails. For a directed network, this term adds four statistics
(or some subset of these four specified by the levels
argument),
one for each of the four distinct types of directed three-paths. If the
nodes of the path are written from left to right such that the middle edge
points to the right (R), then the four types are RRR, RRL, LRR, and LRL.
That is, an RRR 3-trail is of the form
i-->j-->k-->l, and RRL
3-trail is of the form
i-->j-->k<--l, etc.
Like in the undirected case, there is no requirement that the nodes be
distinct in a directed 3-trail. However, the three edges must all be
distinct. Thus, a mutual tie i<-->j does not
count as a 3-trail of the form
i-->j-->i<--j; however,
in the subnetwork i<-->j-->k,
there are two directed 3-trails, one LRR
(k<--j-->i-->j)
and one RRR
(k<--j-->i-->j).
The argument keep
is retained for backwards compatibility and may be removed in a future version. When both keep
and levels
are passed, levels
overrides keep
. This term used to be (inaccurately) called threepath
. That
name has been deprecated and may be removed in a future version.
transitive
(binary) (directed) (triad-related)Transitive triads:
This term adds one statistic to the model, equal to the number of triads in
the network that are transitive. The transitive triads are those of type
120D
, 030T
, 120U
, or 300
in the categorization
of Davis and Leinhardt (1972). For details on the 16 possible triad types,
see triad.classify
in the sna
package.
Note the distinction from the ttriple
term. This term can only be
used with directed networks.
transitiveties(attr=NULL, levels=NULL)
(binary) (directed) (undirected) (triad-related) (categorical nodal attribute)
, transitiveties(threshold=0)
(valued) (directed) (undirected) (triad-related)Transitive ties:
This term adds one statistic, equal to the number of ties
i-->j such that there exists a two-path from
i to j. (Related to the ttriple
term.)
The binary version takes a nodal attribute attr
, and, if
given, all three nodes
involved (i, j, and the node on the two-path) must match
on this attribute in order for i-->j to be counted.
transitiveweights(twopath="min",combine="max",affect="min")
(valued) (directed) (undirected) (non-negative) (triad-related)
Transitive
weights: This statistic implements the transitive weights
statistic defined by Krivitsky (2012), Equation 13. The
currently implemented options for twopath
is the minimum
of the constituent dyads ("min"
) or their geometric mean
("geomean"
); for combine
, the maximum of the
2-path strengths ("max"
) or their sum ("sum"
); and
for affect
, the minimum of the focus dyad and the
combined strength of the two paths ("min"
) or their
geometric mean ("geomean"
). For each of these options,
the first (and the default) is more stable but also more
conservative, while the second is more sensitive but more likely
to induce a multimodal distribution of networks.
triadcensus(levels)
(binary) (triad-related) (directed) (undirected)Triad census:
For a directed network, this term adds one network statistic for each of
an arbitrary subset of the 16 possible types of triads categorized by
Davis and Leinhardt (1972) as 003, 012, 102, 021D, 021U, 021C, 111D,
111U, 030T, 030C, 201, 120D, 120U, 120C, 210,
and 300
. Note that at
least one category should be dropped; otherwise a linear dependency will
exist among the 16 statistics, since they must sum to the total number of
three-node sets. By default, the category 003
, which is the category
of completely empty three-node sets, is dropped. This is considered category
zero, and the others are numbered 1 through 15 in the order given above. By
using the levels
argument (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details), the user may specify a set of terms to add other than the default
value of 1:15
. Each statistic is the count of the corresponding triad
type in the network. For details on the 16 types, see ?triad.classify
in the {sna}
package, on which this code is based. For an undirected
network, the triad census is over the four types defined by the number of
ties (i.e., 0, 1, 2, and 3), and the default is to add 1:3
, which is
to say that the 0 is dropped; however, this too may be controlled by
changing the levels
argument.
triangle(attr=NULL, diff=FALSE, levels=NULL)
(binary) (frequently-used) (triad-related) (directed) (undirected) (categorical nodal attribute)
Triangles:
By default, this term adds one statistic to the model equal to the number of triangles
in the network. For an undirected network, a triangle is defined to be any
set \{(i,j), (j,k), (k,i)\} of three edges. For a directed network, a
triangle is defined as any set of three edges (i,j)
and (j,k) and either (k,i)
or (i,k). The former case is called a “transitive
triple” and the latter is called a “cyclic triple”, so in the case of a
directed network, triangle
equals ttriple
plus ctriple
— thus at most two of these three terms can be in a model. The optional
argument attr
specifies a vertex attribute (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details). If attr
is specified and diff
is FALSE
,
then the count is restricted to those triples of nodes with
equal values of the vertex attribute specified by attr
. If attr
is specified and diff
is TRUE
,
then one statistic is added for each value of attr
(or each value specified by levels
if that argument is passed),
equal to the number of triangles where all three nodes have that value of the attribute.
tripercent(attr=NULL, diff=FALSE, levels=NULL)
(binary) (undirected) (triad-related) (categorical nodal attribute)
Triangle percentage:
By default, this term adds one statistic to the model equal to 100 times the ratio of
the number of triangles in the network to the sum of the number of triangles
and the number of 2-stars not in triangles (the latter is considered a
potential but incomplete triangle). In case the denominator equals zero,
the statistic is defined to be zero. For the definition of triangle, see
triangle
. The optional argument attr
specifies a vertex attribute (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details). If attr
is specified and diff
is FALSE
, the counts
(both numerator and denominator) are restricted to those triples of nodes with equal values
of the vertex attribute specified by attr
. If attr
is specified and diff
is TRUE
, then one statistic is added
for each value of attr
(or each value specified by levels
if that argument is passed), where the counts
(both numerator and denominator) are restricted to those triples of nodes with that value
of the vertex attribute specified by attr
. This is often called
the mean correlation coefficient. This term can only be
used with undirected networks; for directed networks, it is difficult to
define the numerator and denominator in a consistent and meaningful way.
ttriple(attr=NULL, diff=FALSE, levels=NULL)
(binary) (directed) (triad-related) (categorical nodal attribute)
, a.k.a. ttriad
(binary) (directed) (triad-related) (categorical nodal attribute)
Transitive triples:
By default, this term adds one statistic to the model, equal to the number of transitive
triples in the network, defined as a set of edges {(i,j), (j,k), (i,k)}. Note that
triangle
equals ttriple+ctriple
for a directed network, so at
most two of the three terms can be in a model. The optional argument
attr
specifies a vertex attribute (see Specifying Vertex attributes and Levels (? nodal_attributes
) for details). If attr
is specified and diff
is FALSE
, then the count is over
the number of transitive triples where all three nodes have the same value
of the attribute. If attr
is specified and diff
is TRUE
, then one statistic is added for each value of attr
(or each value of attr
specified by levels
if that argument is passed), equal to the number of transitive triples where all three nodes
have that value of attr
. This term can only be used with directed networks.
twopath
(binary) (directed) (undirected)2-Paths:
This term adds one statistic to the model, equal to the number of 2-paths in
the network. For a directed network this is defined as a pair of edges
(i,j), (j,k), where i and
j must be distinct. That is, it is a directed path of length 2 from
i to k via j. For directed networks a 2-path is also a
mixed 2-star but the interpretation is usually different; see m2star
.
For undirected networks a twopath is defined as a pair of edges
\{i,j\}, \{j,k\}. That is, it is an undirected path of length 2 from
i to k via j, also known as a 2-star.
Krivitsky P. N., Hunter D. R., Morris M., Klumb C. (2021). “ergm 4.0: New features and improvements.” arXiv:2106.04997. https://arxiv.org/abs/2106.04997
Bomiriya, R. P, Bansal, S., and Hunter, D. R. (2014). Modeling Homophily in ERGMs for Bipartite Networks. Submitted.
Butts, CT. (2008). “A Relational Event Framework for Social Action.” Sociological Methodology, 38(1).
Davis, J.A. and Leinhardt, S. (1972). The Structure of Positive Interpersonal Relations in Small Groups. In J. Berger (Ed.), Sociological Theories in Progress, Volume 2, 218–251. Boston: Houghton Mifflin.
Holland, P. W. and S. Leinhardt (1981). An exponential family of probability distributions for directed graphs. Journal of the American Statistical Association, 76: 33–50.
Hunter, D. R. and M. S. Handcock (2006). Inference in curved exponential family models for networks. Journal of Computational and Graphical Statistics, 15: 565–583.
Hunter, D. R. (2007). Curved exponential family models for social networks. Social Networks, 29: 216–230.
Krackhardt, D. and Handcock, M. S. (2007). Heider versus Simmel: Emergent Features in Dynamic Structures. Lecture Notes in Computer Science, 4503, 14–27.
Krivitsky P. N. (2012). Exponential-Family Random Graph Models for Valued Networks. Electronic Journal of Statistics, 2012, 6, 1100-1128. doi: 10.1214/12-EJS696
Robins, G; Pattison, P; and Wang, P. (2009). “Closure, Connectivity, and Degree Distributions: Exponential Random Graph (p*) Models for Directed Social Networks.” Social Networks, 31:105-117.
Snijders T. A. B., G. G. van de Bunt, and C. E. G. Steglich. Introduction to Stochastic Actor-Based Models for Network Dynamics. Social Networks, 2010, 32(1), 44-60. doi: 10.1016/j.socnet.2009.02.004
Morris M, Handcock MS, and Hunter DR. Specification of Exponential-Family Random Graph Models: Terms and Computational Aspects. Journal of Statistical Software, 2008, 24(4), 1-24. https://www.jstatsoft.org/v24/i04
Snijders, T. A. B., P. E. Pattison, G. L. Robins, and M. S. Handcock (2006). New specifications for exponential random graph models, Sociological Methodology, 36(1): 99-153.
ergm
package, search.ergmTerms
, ergm
, network
, %v%
, %n%
1 2 3 4 5 6 7 8 |
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.