rda
), but it allows
non-Euclidean dissimilarity indices, such as Manhattan or
Bray--Curtis distance. Despite this non-Euclidean feature, the analysis
is strictly linear and metric. If called with Euclidean distance,
the results are identical to rda
, but capscale
will be much more inefficient. Function capscale
is a
constrained version of metric scaling, a.k.a. principal coordinates
analysis, which is based on the Euclidean distance but can be used,
and is more useful, with other dissimilarity measures. The function
can also perform unconstrained principal coordinates analysis,
optionally using extended dissimilarities.capscale(formula, data, distance = "euclidean", sqrt.dist = FALSE,
comm = NULL, add = FALSE, dfun = vegdist, metaMDSdist = FALSE,
na.action = na.fail, subset = NULL, ...)
formula
is a data frame instead of
dissimilarity matrix.Notes
below.formula
was a
dissimilarity matrix. This is not used if the LHS is a data
frame. If this is not supplied, the ``species scores'' are the axes
"dist"
and taking the index name as the
first argument can be used.metaMDSdist
similarly as in
metaMDS
. This means automatic data transformation and
using extended flexible shortest path dissimilarities (fuTRUE
for kept observations, or a logical
expression which can contain variables in the working
environment, data
or species names of the community data
rda
or to
metaMDSdist
.cmdscale
and (2) analyses these results using
rda
. If the user supplied a community data frame instead
of dissimilarities, the function will find the needed dissimilarity
matrix using vegdist
with specified
distance
. However, the method will accept dissimilarity
matrices from vegdist
, dist
, or any
other method producing similar matrices. The constraining variables can be
continuous or factors or both, they can have interaction terms,
or they can be transformed in the call. Moreover, there can be a
special term
Condition
just like in rda
and cca
so that ``partial'' CAP can be performed.The current implementation differs from the method suggested by Anderson & Willis (2003) in three major points which actually make it similar to distance-based redundancy analysis (Legendre & Anderson 1999):
cmdscale
, whereascapscale
uses axes
weighted by corresponding eigenvalues, so that the ordination
distances are the best approximations of original
dissimilarities. In the original method, later ``noise'' axes are
just as important as first major axes.capscale
uses all axes with positive eigenvalues. The use of
subset is necessary with orthonormal axes to chop off some
``noise'', but the use of all axes guarantees that the results are
the best approximation of original dissimilarities.capscale
adds species scores as weighted sums
of (residual) community matrix (if the matrix is available), whereas
Anderson & Willis have no fixed method for adding species scores.capscale
with Euclidean
distances will be identical to rda
in eigenvalues and
in site, species and biplot scores (except for possible sign
reversal).
However, it makes no sense to use capscale
with
Euclidean distances, since direct use of rda
is much more
efficient. Even with non-Euclidean dissimilarities, the
rest of the analysis will be metric and linear. The function can be also used to perform ordinary metric scaling
a.k.a. principal coordinates analysis by using a formula with only a
constant on the left hand side, or comm ~ 1
. With
metaMDSdist = TRUE
, the function can do automatic data
standardization and use extended dissimilarities using function
stepacross
similarly as in non-metric multidimensional
scaling with metaMDS
.
Gower, J.C. (1985). Properties of Euclidean and non-Euclidean distance matrices. Linear Algebra and its Applications 67, 81--97.
Legendre, P. & Anderson, M. J. (1999). Distance-based redundancy analysis: testing multispecies responses in multifactorial ecological experiments. Ecological Monographs 69, 1--24.
Legendre, P. & Legendre, L. (2012). Numerical Ecology. 3rd English Edition. Elsevier
rda
, cca
, plot.cca
,
anova.cca
, vegdist
,
dist
, cmdscale
. The function returns similar result object as rda
(see
cca.object
). This section for rda
gives a
more complete list of functions that can be used to access and
analyse capscale
results.
data(varespec)
data(varechem)
## Basic Analysis
vare.cap <- capscale(varespec ~ N + P + K + Condition(Al), varechem,
dist="bray")
vare.cap
plot(vare.cap)
anova(vare.cap)
## Avoid negative eigenvalues with additive constant
capscale(varespec ~ N + P + K + Condition(Al), varechem,
dist="bray", add =TRUE)
## Avoid negative eigenvalues by taking square roots of dissimilarities
capscale(varespec ~ N + P + K + Condition(Al), varechem,
dist = "bray", sqrt.dist= TRUE)
## Principal coordinates analysis with extended dissimilarities
capscale(varespec ~ 1, dist="bray", metaMDS = TRUE)
Run the code above in your browser using DataLab