Models are fitted one by one through repeated evaluation of modified calls to
the global.model
(in a similar fashion as with update
). This
approach, while robust in that it can be applied to a variety of different model
object types is not very efficient and may be time-intensive.Note that the number of combinations grows exponentially with number of
predictor variables (latex{$2^{N}$}{2^N}, less when interactions
are present, see below). As there can be potentially a large number of models to
evaluate, to avoid memory overflow the fitted model objects are not stored in
the result. To get (a subset of) the models, use get.models
on the
object returned by dredge
.
For a list of model types that can be used as a global.model
see
list of supported models. gamm
and gamm4
should be evaluated via the wrapper MuMIn::gamm
.
Information criterion{
rank
is found by a call to match.fun
and may be specified as a
function or a symbol (e.g. a back-quoted name) or a character string specifying
a function to be searched for from the environment of the call to dredge
.
The function rank
must accept model object as its first argument and
always return a scalar. Typical choice for rank
would be "AIC", "BIC", or
"QAIC".
}
Interactions{
dredge
by default respects marginality
constraints, so all possible combinations do not include models
containing interactions without their respective main effects. This behaviour
can be altered by marg.ex
argument, which can be used to allow for simple
nested designs. For example, with global model of form a / (x + z)
, one
would use marg.ex = "a"
and fixed = "a"
. If global.model
uses such a formula and marg.ex
is missing or NA
, it will be
adjusted automatically.
}
Subsetting{
There are three ways to constrain the resulting set of models: setting limits to the
number of terms in a model with m.max
and m.min
,
binding term(s) to all models with fixed
, and more complex rules can be
applied using argument subset
.
subset
can take either a form of an expression or a matrix. The latter
should be a lower triangular matrix with logical values, where columns and rows
correspond to global.model
terms. Value subset["a", "b"] == FALSE
will
exclude any model containing both "a" and "b". Values other than
FALSE
(or 0
) are taken as TRUE
.
In the form of expression
, the argument subset
acts in a similar
fashion to that in the function subset
for data.frames
: model
terms can be referred to by name as variables in the expression, with the difference
being that they are always logical (i.e. TRUE
if a term exists in the model).
The expression can contain any of the global.model
terms (use
getAllTerms(global.model)
to list them). It can have a form of an unevaluated
call
, expression
object, or a one sided formula
.
See Examples.
Compound model terms (such as as-is expressions within I()
or
smooths in gam
) should be treated as non-syntactic names and enclosed in
back-ticks (e.g. subset = `s(x, k = 2)` || `I(log(x))`
, see
Quotes). Mind the spacing, names must match exactly the term names
in model's formula. To simply keep certain terms in all models, use of argument
fixed
is
more efficient.
}
Missing values{
Use of na.action = na.omit
(R's default) in global.model
should
be avoided, as it results with sub-models fitted to different data sets, if
there are missing values. Warning is given if it is detected.
}
Methods{
There are subset
and plot
methods,
the latter produces a graphical representation of model weights and variable
relative importance.
Coefficients can be extracted with coef
or coefTable
.
}