This function allows the user to include or exclude an interaction effect in a Siena effects object.
includeInteraction(myeff, ..., include = TRUE, name = myeff$name[1],
type = "eval", interaction1 = rep("", 3), interaction2 = rep("", 3),
fix=FALSE, test=FALSE, random=FALSE,
initialValue=0,
character = FALSE, verbose = TRUE)
An updated version of the input effects object; if include
,
containing the interaction effect between "effect1" and "effect2" and
possibly "effect3"; if not, without this interaction effect.
The shortName of the interaction effect is "unspInt" for network effects,
"behUnspInt" for discrete behavior effects, and "contUnspInt" for
continuous behavior effects.
If verbose=TRUE
, the interacting effects and the interaction effect
will be printed, with their row numbers in the effects object.
a Siena effects object as created by getEffects
,
which is either an object of class sienaEffects
or sienaGroupEffects
.
2 or 3 shortNames to identify the effects which should be interacted.
Boolean. default TRUE, but can be switched to FALSE to turn off an interaction.
Name of dependent variable (network or behavior) for which interactions are being defined. Defaults to the first in the effects object.
Type of effects to be interacted.
Vector of Siena objects where needed to completely identify the effect e.g. covariate name or behavior variable name. See the examples below. Trailing blanks may be omitted.
Vector of Siena objects where needed to completely identify the effect e.g. covariate name or behavior variable name. Trailing blanks may be omitted.
Boolean. Are the effects to be fixed at the value stored in
myeff$initialValue
or not.
Boolean. Are the effects to be tested or not (requires fix
).
For specifying that the interaction effect will vary randomly;
not relevant for RSiena
at this moment.
Boolean required. Default FALSE.
Initial value for estimation. Default 0.
Boolean: are the effect names character strings or not.
Boolean: should the print of altered effects be produced.
Ruth Ripley, Tom Snijders
The details provided should uniquely identify two or three
effects. If so, an interaction effect will be created and included or
not in the model.
Whether interactions between two or three given effects
can be created depends on their interactionType
(which can be, for
dependent network variables, empty, ego, or dyadic; and for dependent
behavioral variables, empty or OK). Consult the section on Interaction
Effects in the manual for this. The interactionType
is shown
in the list of effects obtained from the function
effectsDocumentation
.
The short names must not be set between quotes,
unless you use character=TRUE
.
From the point of view of model building it is usually advisable, when
including an interaction effect in a model, also to include the
corresponding main effects. This is however not enforced
by includeInteraction
.
As from version 1.3.24, effects object have a "version" attribute.
Effects objects including interaction effects are not necessarily compatible
between versions of RSiena
. Therefore it is recommended to create
such effects objects again when changing to a new version of RSiena
.
If an effects object including any interaction effects is used from an
old version of RSiena
, this will lead to a warning when running
siena07
.
An interaction effect does not have its own internal effect parameter.
The internal effect parameters of the interacting main effects are used,
whether or not these are included in the model. This implies that if an
interaction effect is included but not the corresponding main effects,
or not all of them, then nevertheless the internal effect parameters as
specified in the effects object are used for the interaction.
These can be set using function setEffect
with the desired value
of parameter
and (in this case) include=FALSE
or
fix=TRUE, initialValue=0
.
If an internal effect parameter is changed for one of the main effects
after the last call of includeInteraction
for a given interaction
effect, this will not be visible in the name of the interaction effect
when the effects object is printed.
However, the correct value of the internal effect parameter
will be used by siena07
.
The values of the internal effect parameters can be checked for a
sienaFit
object ans
produced by siena07
by looking at ans$effects
, which is the requested effects object
to which the main effects of the user-defined interactions were added,
if they were not included.
Interaction effects are constructed from effects with shortName
unspInt
(for networks), behUnspInt
(for discrete behavior),
and contUnspInt
(for continuous behavior) by specifying their
elements effect1
and effect2
, and possibly effect3
.
The shortName is not altered by this function.
The number of possible user-specified interaction effects is limited
by the parameters nintn
(for dependent network variables)
and behNintn
(for dependent behavior variables) in the call of
getEffects
, which determine the numbers of effects with
shortNames unspInt
, behUnspInt
, and contUnspInt
(for the latter two, the maximum is behNintn
each).
The input names interaction1
and interaction2
,
which are vectors as indicated above, do not themselves
refer to created interactions, but to dependence of the base effects on
other variables in the data set.
They are used to completely identify the effects.
The first element of these vectors applies to the first shortName,
the second to the second, and if ... contains 3 shortNames,
the third to the third. See the list of examples below for the interaction
between recip
and simX
for an example.
Further information about Siena effects objects is given
in the help page for getEffects
.
A list of all effects in a given effects object (e.g., myeff
),
including their names of dependent variables, effect names, short names,
and values of interaction1 and interaction2 (if any),
is obtained by executing effectsDocumentation(myeff)
.
getEffects
, setEffect
,
includeEffects
, effectsDocumentation
mynet <- sienaDependent(array(c(s501, s502, s503), dim=c(50, 50, 3)))
alc <- varCovar(s50a)
sm <- varCovar(s50s)
mydata <- sienaDataCreate(mynet, alc, sm)
myeff <- getEffects(mydata)
myeff <- includeInteraction(myeff, recip, inPop)
myeff <- includeEffects(myeff, egoX, altX, simX, interaction1="alc")
myeff <- includeInteraction(myeff, egoX, altX, interaction1=c("alc", "sm"))
myeff <- includeInteraction(myeff, recip, simX, interaction1=c("", "alc"))
myeff <- setEffect(myeff, gwespFF, parameter=20)
myeff <- includeInteraction(myeff, recip, gwespFF)
myeff
(myeff <- setEffect(myeff, gwespFF, parameter=69, include=FALSE))
myeff <- includeInteraction(myeff, recip, gwespFF)
myeff
Run the code above in your browser using DataLab