This vignette summarizes effects
that are implemented in goldfish
and are thus available to
be used with actor-oriented DyNAM models and tie-oriented Relational
Event Models.
Effect functions have the following 5 arguments:
data.frame$attribute
), see documentation of
defineNodes()
for details.FALSE
, it means that updates involving self-ties
are ignore during the statistics update.FALSE
means additional ties are taken into account). The
default value is FALSE
. Only available for structural
effects.TRUE
means it
relies also on the number of ties). The default value is
FALSE
.Inf
meaning that no windows are applied to the effect. Window size can be
specified as a number in seconds (i.e. an hour is 3600 seconds), or as a
string stating the number of time units in the format “number unit”, for
example “30 seconds”, “1 minute”, “2 hours”, “3 days”, “4 weeks”, “5
months”, or “6 years”. Note: The time units are converted to
seconds using their most common lengths in seconds.weighted == TRUE
.tertius
and tertiusDiff
. The function used as
argument is applied to aggregated statistic.indegree
,
outdegree
and nodeTrans
in the case of a REM
model model = "REM"
. In the default case of
type = "alter"
, the effect returns change statistics for
the potential receivers. In the case where type = "ego"
,
the effect returns change statistics for the potential sender. This
argument does not apply in the case of the DyNAM models: the
DyNAM-choice submodel only considers change statistics for potential
receivers type = "alter"
, while the DyNAM-rate submodel
only considers change statistics for potential senders
type = "ego"
.The following table summaries whether the corresponding arguments can be used for the effects or not.
isTwoMode | ignoreRep | weighted | window | transformFun | aggregateFun | type | |||
---|---|---|---|---|---|---|---|---|---|
Node/actor statistics | Structural | indeg | √ | √ | √ | √ | √ | × | √ |
outdeg | √ | √ | √ | √ | √ | × | √ | ||
nodeTrans | × | √ | √ | √ | √ | × | √ | ||
Attribute | ego | √ | × | × | × | × | × | × | |
alter | √ | × | × | × | × | × | × | ||
Structural + attribute | tertius | √ | √ | √ | √ | √ | √ | √ | |
Dyadic statistics | Structural | tie | √ | √ | √ | √ | √ | × | × |
inertia | √ | √ | √ | √ | √ | × | × | ||
recip | √ | √ | √ | √ | √ | × | × | ||
Attribute | same | √ | × | × | × | √ | × | × | |
diff | √ | × | × | × | √ | × | × | ||
sim | √ | × | × | × | √ | × | × | ||
egoAlterInt | √ | × | × | × | √ | × | × | ||
Structural + attribute | tertiusDiff | √ | √ | √ | √ | √ | √ | × | |
Closure effects | trans | × | √ | × | √ | √ | × | × | |
cycle | × | √ | × | √ | √ | × | × | ||
commonSender | √ | √ | × | √ | √ | × | × | ||
commonReceiver | √ | √ | × | √ | √ | × | × | ||
four | √ | √ | × | √ | √ | × | × | ||
mixedTrans | × | √ | × | √ | √ | × | × | ||
mixedCycle | × | √ | × | √ | √ | × | × | ||
mixedCommonSender | × | √ | × | √ | √ | × | × | ||
mixedCommonReceiver | × | √ | × | √ | √ | × | × |
Note that the use of some effects (combinations) are
ill-advised. For example, using
tie(network, ignoreRep = FALSE)
, where the network refers
to the dependent network, will always result in a change statistic of
zero, and thus cannot be used.
TRUE
and 0 in
other case.weighted = TRUE
, similarly we refer as the unweighted
statistics when weighted = FALSE
.isTwoMode
is used. In the default case when
isTwoMode = FALSE
self ties are excluded in the calculation
of the change statistics.effect | rate | choice | choice coordination |
---|---|---|---|
indeg | √ | √ | √ |
outdeg | √ | √ | × |
nodeTrans | √ | √ | √ |
Here we refer to ego type when type = "ego"
and alter
type when type = "alter"
.
indeg()
)indeg(network,
isTwoMode = FALSE, weighted = FALSE, window = Inf,
ignoreRep = FALSE, type = c("alter", "ego"), transformFun = identity
)
type = "ego"
) or for receiver j
(type = "alter"
).defineNetwork(net, directed = FALSE)
.The degree can be transform with .
outdeg()
)outdeg(network,
isTwoMode = FALSE, weighted = FALSE, window = Inf,
ignoreRep = FALSE, type = c("alter", "ego"), transformFun = identity
)
type
allows to choose
whether to use the outdegree effect for sender i (type = "ego"
) or for
receiver j
(type = "alter"
).nodeTrans()
)nodeTrans(network,
isTwoMode = FALSE, window = Inf, ignoreRep = FALSE,
type = c("alter", "ego"), transformFun = identity
)
Embeddedness in transitive structures as a source node.
type
allows to choose whether to use the node embeddedness
transitivity effect for sender i (type = "ego"
) or for
receiver j
(type = "alter"
).The statistic can be transform with , there is not weighted version for this effect.
effect | rate | choice | choice coordination |
---|---|---|---|
ego | √ | × | × |
alter | × | √ | × |
ego()
)effect | rate | choice | choice coordination |
---|---|---|---|
tertius | √ | √ | √ |
tertius()
)tertius(network, attribute,
isTwoMode = FALSE, window = Inf,
ignoreRep = FALSE, type = c("alter", "ego"), transformFun = identity,
aggregateFun = function(x) mean(x, na.rm = TRUE)
)
aggregateFun
) value of its in-neighbors (∀j: x[j, i] > 0)
in a covariate network (‘ego’ type).aggregateFun
) value of its in-neighbors (∀k: x[k, j] > 0)
in a covariate network (‘alter’ type).aggregateFun
) value of its in-neighbors in a covariate
network. The argument type
allows to choose whether to use
the tertius effect for sender i (type = "ego"
) or for
receiver j
(type = "alter"
).Note: When a node does not have in-neighbors, the tertius effect is impute as the average of the aggregate values of nodes with in-neighbors.
effect | rate | choice | choice coordination |
---|---|---|---|
tie | × | √ | √ |
inertia | × | √ | √ |
recip | × | √ | × |
tie()
)Tendency to create an event i → j if the tie i → j exists in a covariate
network. Parameter weighted
can be set to TRUE
if the value in the covariate network for the dyad i → j is to be taken as a
statistic. It can be transformed by using transformFun
(This might make sense when weighted = TRUE
).
inertia()
)Usually used as the “intercept” for the choice submodel,
inertia is the tendency to create an event i → j if the event i → j happened before. It
can be interpreted as the differential tendency to update existing ties
rather than creating new ones. Thus, inertia is similar to
tie, but defined on the network to which the dependent events
relate. Parameter weighted
can be set to TRUE
if the count of past events i → j is to be taken as a
statistic. It can be transformed by using transformFun
(this might make sense when weighted = TRUE
).
Note: inertia
can never be used in
combination with a ignoreRep = TRUE
parameter as this would
replace all positive statistics with zeros.
recip()
)Effect of a tie j->i on event i → j. Recip cannot be used with binary = T in undirected dependent network
Tendency to create an event i → j if one or several
j → i happened
before. Parameter weighted
can be set to TRUE
if the count/weight of j → i events/ties is to be
taken as a statistic. It can be transformed by using
transformFun
(this might make sense when
weighted = TRUE
). This effect cannot be used for two-mode
networks and for DyNAM-choice_coordination submodel.
effect | rate | choice | choice coordination |
---|---|---|---|
same | × | √ | √ |
diff | × | √ | √ |
sim | × | √ | √ |
egoAlterInt | × | √ | √ |
same()
)Homophily (same value). The tendency of an event i → j to happen if actors i and j have the same attribute value. This effect cannot be used for two-mode networks and for the DyNAM-rate submodel.
diff()
)Heterophily. The tendency of an event i → j to happen if actors i
and j have different attribute values (high absolute differences
regarding attribute if transformFun = abs
). This effect
cannot be used for two-mode networks.
sim()
)Homophily (similar value). The tendency of an event i → j to happen if actors i
and j have similar attribute
values (low absolute
differences regarding attribute
if
transformFun = abs
). This effect cannot be used for
two-mode networks.
egoAlterInt()
)In a model that includes an alter effect using
attribute2
, the ego alter interaction helps to study the
tendency to create an event i → j when j score high on
attribute2
moderated by the score of ego on
attribute1
.
effect | rate | choice | choice coordination |
---|---|---|---|
tertiusDiff | × | √ | √ |
tertiusDiff()
)tertiusDiff(network, attribute,
isTwoMode = FALSE, weighted = FALSE,
window = Inf, ignoreRep = FALSE, transformFun = abs,
aggregateFun = function(x) mean(x, na.rm = TRUE)
)
The tendency to create an event i → j when i has a similar value as j aggregate
(aggregateFun
) value of its in-neighbors (∀j: x[j, i] > 0).
Note: When the node j
does not have in-neighbors, its value is imputed by the average of the
similarities computed for the pairs i, k for all k that has at least one
in-neighbor.
effect | rate | choice | choice coordination |
---|---|---|---|
trans | × | √ | √ |
cycle | × | √ | × |
commonSender | × | √ | × |
commonReceiver | × | √ | × |
four | × | √ | √ |
mixedTrans | × | √ | √ |
mixedCycle | × | √ | × |
mixedCommonSender | × | √ | × |
mixedCommonReceiver | × | √ | × |
trans()
)It is the tendency to create an event i → j when it closes more
two-paths (i → k → j)
observed in the past events in a covariate network
. It can
be transformed by using transformFun
. This effect cannot be
used for two-mode networks.
cycle()
)It is the tendency to create an event i → j when it closes more
two-paths (j → k → i)
observed in the past events in a covariate network
. It can
be transformed by using transformFun
. This effect cannot be
used for two-mode networks and DyNAM-choice_coordination.
commonSender()
)It is the tendency to create an event i → j when it closes more
two-paths (i ← k → j)
observed in the past events in a covariate network
. It can
be transformed by using transformFun
. This effect cannot be
used for two-mode networks and DyNAM-choice_coordination.
commonReceiver()
)It is the tendency to create an event i → j when it closes more
two-paths (i → k ← j)
observed in the past events in a covariate network
. It can
be transformed by using transformFun
. This effect cannot be
used for two-mode networks and DyNAM-choice_coordination.
four()
)Closure of three-paths. It is the tendency to create an event i → j when it closes more
three-paths (i → k ← l → j)
observed in the past events in a covariate network
. It can
be transformed by using transformFun
. This effect cannot be
used for two-mode networks and DyNAM-choice_coordination.
mixedTrans()
)mixedTrans(
network = list(network1, network2), window = Inf,
ignoreRep = FALSE, transformFun = identity
)
Transitivity within 2 networks. It is the tendency to create an event
i → j when it closes
more two-paths with events (i → k) in
network1
and (k → j) in
network2
observed in the past events in the covariate
networks. It can be transformed by using transformFun
. This
effect cannot be used for two-mode networks.
mixedCycle()
)mixedCycle(
network = list(network1, network2), window = Inf,
ignoreRep = FALSE, transformFun = identity
)
Cycle within 2 networks. It is the tendency to create an event i → j when it closes more
two-paths with events (k → i) in
network1
and (j → k) in
network2
observed in the past events in the covariate
networks. It can be transformed by using transformFun
. This
effect cannot be used for two-mode networks and
DyNAM-choice_coordination.
mixedCommonSender()
)mixedCommonSender(
network = list(network1, network2), window = Inf,
ignoreRep = FALSE, transformFun = identity
)
Closure common sender within 2 networks. It is the tendency to create
an event i → j when
it closes more two-paths with events (k → i) in
network1
and (k → j) in
network2
observed in the past events in the covariate
networks. It can be transformed by using transformFun
. This
effect cannot be used for two-mode networks and
DyNAM-choice_coordination.
mixedCommonReceiver()
)mixedCommonReceiver(
network = list(network1, network2), window = Inf,
ignoreRep = FALSE, transformFun = identity
)
Closure receiver within 2 networks. It is the tendency to create an
event i → j when it
closes more two-paths with events (i → k) in
network1
and (j → k) in
network2
observed in the past events in the covariate
networks. It can be transformed by using transformFun
. This
effect cannot be used for two-mode networks and
DyNAM-choice_coordination.