`cca`

), Redundancy Analysis
(`rda`

) or distance-based Redundancy Analysis (dbRDA,
`capscale`

) to assess the significance of constraints.
```
"anova"(object, ..., permutations = how(nperm=999), by = NULL, model = c("reduced", "direct", "full"), parallel = getOption("mc.cores"), strata = NULL, cutoff = 1, scope = NULL)
"permutest"(x, permutations = how(nperm = 99), model = c("reduced", "direct"), first = FALSE, strata = NULL, parallel = getOption("mc.cores"), ...)
```

object

x

A single ordination result object.

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.by

Setting

`by = "axis"`

will assess significance for
each constrained axis, and setting `by = "terms"`

will assess
significance for each term (sequentially from first to last), and
setting `by = "margin"`

will assess the marginal effects of
the terms (each marginal term analysed in a model with all other
variables)model

Permutation model:

`model="direct"`

permutes
community data, and `model="reduced"`

permutes residuals
of the community data after Conditions (partial model).parallel

Use parallel processing with the given number of
cores.

strata

An integer vector or factor specifying the strata for
permutation. If supplied, observations are permuted only within
the specified strata. It is an error to use this when

`permutations`

is a matrix, or a `how`

defines `blocks`

. This is a legacy argument that will be
deprecated in the future: use
`permutations = how(..., blocks)`

instead. cutoff

Only effective with

`by="axis"`

where stops
permutations after an axis exceeds the `cutoff`

.scope

Only effective with

`by="margin"`

where it can be
used to select the marginal terms for testing. The default is to
test all marginal terms in `drop.scope`

.first

Analyse only significance of the first axis.

...

Parameters passed to other functions.

`anova.cca`

passes all arguments to `permutest.cca`

. In `anova`

with
`by = "axis"`

you can use argument `cutoff`

(defaults
`1`

) which stops permutations after exceeding the given
level. Functions `anova.cca`

and `permutest.cca`

implement
ANOVA like permutation tests for the joint effect of constraints in
`cca`

, `rda`

or `capscale`

.
Functions `anova.cca`

and `permutest.cca`

differ in
printout style and in interface. Function `permutest.cca`

is
the proper workhorse, but `anova.cca`

passes all parameters to
`permutest.cca`

.

Function `anova`

can analyse a sequence of constrained
ordination models. The analysis is based on the differences in
residual deviance in permutations of nested models.

The default test is for the sum of all constrained eigenvalues.
Setting `first = TRUE`

will perform a test for the first
constrained eigenvalue. Argument `first`

can be set either in
`anova.cca`

or in `permutest.cca`

. It is also possible to
perform significance tests for each axis or for each term
(constraining variable) using argument `by`

in
`anova.cca`

. Setting `by = "axis"`

will perform separate
significance tests for each constrained axis. All previous
constrained axes will be used as conditions (“partialled
out”) and a test for the first constrained eigenvalues is
performed (Legendre et al. 2011).
You can stop permutation tests after exceeding a given
significance level with argument `cutoff`

to speed up
calculations in large models. Setting `by = "terms"`

will
perform separate significance test for each term (constraining
variable). The terms are assessed sequentially from first to last,
and the order of the terms will influence their
significance. Setting `by = "margin"`

will perform separate
significance test for each marginal term in a model with all other
terms. The marginal test also accepts a `scope`

argument for
the `drop.scope`

which can be a character vector of term
labels that are analysed, or a fitted model of lower scope. The
marginal effects are also known as “Type III” effects, but
the current function only evaluates marginal terms. It will, for
instance, ignore main effects that are included in interaction
terms. In calculating pseudo-$F$, all terms are compared to the
same residual of the full model.
Community data are permuted with choice `model="direct"`

,
and residuals after partial CCA/ RDA/ dbRDA with choice
`model="reduced"`

(default). If there is no partial CCA/
RDA/ dbRDA stage, `model="reduced"`

simply permutes the data
and is equivalent to `model="direct"`

. The test statistic is
“pseudo-$F$”, which is the ratio of constrained and
unconstrained total Inertia (Chi-squares, variances or something
similar), each divided by their respective ranks. If there are no
conditions (“partial” terms), the sum of all eigenvalues
remains constant, so that pseudo-$F$ and eigenvalues would give
equal results. In partial CCA/ RDA/ dbRDA, the effect of
conditioning variables (“covariables”) is removed before
permutation, and these residuals are added to the non-permuted
fitted values of partial CCA (fitted values of `X ~ Z`

).
Consequently, the total Chi-square is not fixed, and test based on
pseudo-$F$ would differ from the test based on plain
eigenvalues. CCA is a weighted method, and environmental data are
re-weighted at each permutation step using permuted weights.

Legendre, P., Oksanen, J. and ter Braak, C.J.F. (2011). Testing the
significance of canonical axes in redundancy analysis.
*Methods in Ecology and Evolution* 2, 269--277.

`anova.cca`

, `cca`

,
`rda`

, `capscale`

to get something to
analyse. Function `drop1.cca`

calls `anova.cca`

with `by = "margin"`

, and `add1.cca`

an analysis
for single terms additions, which can be used in automatic or
semiautomatic model building (see `deviance.cca`

). ```
data(varespec)
data(varechem)
vare.cca <- cca(varespec ~ Al + P + K, varechem)
## overall test
anova(vare.cca)
```

Run the code above in your browser using DataLab