Proposed toggles are stratified according to mixing type on a vertex attribute.
# strat(attr=NULL, pmat=NULL, empirical=FALSE)
The user may pass a vertex attribute attr
as an argument
(the default for attr
gives every vertex the same attribute
value), and may also pass a matrix of weights pmat
(the default
for pmat
gives equal weight to each mixing type). See
Specifying Vertex Attributes and Levels for details on specifying vertex attributes. The
matrix pmat
, if specified, must have the same dimensions as a
mixing matrix for the network and vertex attribute under
consideration, and the correspondence between rows and columns of
pmat
and values of attr
is the same as for a mixing matrix.
The interpretation is that pmat[i,j]/sum(pmat)
is the probability of
proposing a toggle for mixing type (i,j)
. (For undirected, unipartite
networks, pmat
is first symmetrized, and then entries below the diagonal
are set to zero. Only entries on or above the diagonal of the symmetrized
pmat
are considered when making proposals. This accounts for the
convention that mixing is undirected in an undirected, unipartite network:
a tail of type i
and a head of type j
has the same mixing type
as a tail of type j
and a head of type i
.)
As an alternative way of specifying pmat
, the user may pass
empirical = TRUE
to use the mixing matrix of the network beginning
the MCMC chain as pmat
. In order for this to work, that network should
have a reasonable (in particular, nonempty) edge set.
While some mixing types may be assigned zero proposal probability
(either with a direct specification of pmat
or with empirical = TRUE
),
this will not be recognized as a constraint by all components of ergm
,
and should be used with caution.
ergmHint
for index of constraints and hints currently visible to the package.
ergm:::.formatTermKeywords("ergmHint", "strat", "subsection")