R: Choose a Model by Permutation Tests in Constrained Ordination
ordistep
R Documentation
Choose a Model by Permutation Tests in Constrained Ordination
Description
Automatic stepwise model building for constrained ordination methods
(cca, rda, capscale).
The function ordistep is modelled after step and
can do forward, backward and stepwise model selection using permutation tests.
Function ordiR2step performs forward model choice solely on adjusted
R2 and P-value, for ordination objects created by rda or capscale.
In ordistep, an ordination object inheriting from cca or rda. In ordiR2step, the object must inherit from rda, that is, it must have been computed using rda or capscale.
scope
Defines the range of models examined in the stepwise search.
This should be either a single formula, or a list containing
components upper and lower, both formulae.
See step for details. In ordiR2step, this defines the
upper scope; it can also be an ordination object from with the model is extracted.
direction
The mode of stepwise search, can be one of "both",
"backward", or "forward", with a default of "both".
If the scope argument is missing, the default for direction
is "backward".
Pin, Pout
Limits of permutation P-values for adding (Pin) a term to
the model, or dropping (Pout) from the model. Term is added if
P <=Pin, and removed if P >Pout.
R2scope
Use adjusted R2 as the stopping criterion: only models with
lower adjusted R2 than scope are accepted.
permutations
a list of control values for the permutations as
returned by the function how, or the number
of permutations required, or a permutation matrix where each row
gives the permuted indices. This is passed to
anova.cca: see there for details.
steps
Maximum number of iteration steps of dropping and adding terms.
trace
If positive, information is printed during the model building. Larger
values may give more information.
R2permutations
Number of permutations used in the estimation of
adjusted R2 for cca using
RsquareAdj.
...
Any additional arguments to add1.cca and
drop1.cca.
Details
The basic functions for model choice in constrained ordination are
add1.cca and drop1.cca. With these functions,
ordination models can be chosen with standard R function
step which bases the term choice on AIC. AIC-like
statistics for ordination are provided by functions
deviance.cca and extractAIC.cca (with
similar functions for rda). Actually, constrained
ordination methods do not have AIC, and therefore the step
may not be trusted. This function provides an alternative using
permutation P-values.
Function ordistep defines the model, scope of models
considered, and direction of the procedure similarly as
step. The function alternates with drop and
add steps and stops when the model was not changed during one
step. The - and + signs in the summary
table indicate which stage is performed. The number of permutations
is selected adaptively with respect to the defined decision limit. It
is often sensible to have Pout>Pin in stepwise
models to avoid cyclic adds and drops of single terms.
Function ordiR2step builds model so that it maximizes
adjusted R2 (function RsquareAdj) at every
step, and stopping when the adjusted R2 starts to
decrease, or the adjusted R2 of the scope is
exceeded, or the selected permutation P-value is exceeded
(Blanchet et al. 2008). The second criterion is ignored with option
R2step = FALSE, and the third criterion can be ignored
setting Pin = 1 (or higher). The direction has
choices "forward" and "both", but it is very
exceptional that a term is dropped with the adjusted R2
criterion. Adjusted R2 cannot be calculated if the number
of predictors is higher than the number of observations, but such
models can be analysed with R2scope = FALSE. The
R2 of cca is based on simulations (see
RsquareAdj) and different runs of ordiR2step
can give different results.
Functions ordistep (based on P values) and ordiR2step
(based on adjusted R2 and hence on eigenvalues) can select
variables in different order.
Value
Functions return the selected model with one additional
component, anova, which contains brief information of steps
taken. You can suppress voluminous output during model building by
setting trace = FALSE, and find the summary of model history
in the anova item.
Author(s)
Jari Oksanen
References
Blanchet, F. G., Legendre, P. & Borcard, D. (2008) Forward selection
of explanatory variables. Ecology 89, 2623–2632.
See Also
The function handles constrained ordination methods cca,
rda and capscale. The underlying functions
are add1.cca and drop1.cca, and the
function is modelled after standard step (which also can
be used directly but uses AIC for model choice, see
extractAIC.cca). Function ordiR2step builds upon
RsquareAdj.
Examples
## See add1.cca for another example
### Dune data
data(dune)
data(dune.env)
mod0 <- rda(dune ~ 1, dune.env) # Model with intercept only
mod1 <- rda(dune ~ ., dune.env) # Model with all explanatory variables
## With scope present, the default direction is "both"
ordistep(mod0, scope = formula(mod1), perm.max = 200)
## Example without scope. Default direction is "backward"
ordistep(mod1, perm.max = 200)
## Example of ordistep, forward
## Not run:
ordistep(mod0, scope = formula(mod1), direction="forward", perm.max = 200)
## End(Not run)
### Mite data
data(mite)
data(mite.env)
mite.hel = decostand(mite, "hel")
mod0 <- rda(mite.hel ~ 1, mite.env) # Model with intercept only
mod1 <- rda(mite.hel ~ ., mite.env) # Model with all explanatory variables
## Example of ordiR2step with default direction = "both"
## (This never goes "backward" but evaluates included terms.)
step.res <- ordiR2step(mod0, mod1, perm.max = 200)
step.res$anova # Summary table
## Example of ordiR2step with direction = "forward"
## Not run:
step.res <- ordiR2step(mod0, scope = formula(mod1), direction="forward")
step.res$anova # Summary table
## End(Not run)