varpart {vegan}  R Documentation 
The function partitions the variation in community data or community dissimilarities with respect to two, three, or four explanatory tables, using adjusted Rsquared in redundancy analysis ordination (RDA) or distancebased redundancy analysis. If response is a single vector, partitioning is by partial regression. Collinear variables in the explanatory tables do NOT have to be removed prior to partitioning.
varpart(Y, X, ..., data, chisquare = FALSE, transfo, scale = FALSE, add = FALSE, sqrt.dist = FALSE, permutations) showvarparts(parts, labels, bg = NULL, alpha = 63, Xnames, id.size = 1.2, ...) ## S3 method for class 'varpart234' plot(x, cutoff = 0, digits = 1, ...)
Y 
Data frame or matrix containing the response data table or
dissimilarity structure inheriting from 
X 
Two to four explanatory models, variables or tables. These can
be defined in three alternative ways: (1) onesided model formulae
beginning with 
... 
Other parameters passed to functions. NB, arguments after dots cannot be abbreviated but they must be spelt out completely. 
data 
The data frame with the variables used in the formulae in

chisquare 
Partition Chisquare or the inertia of Correspondence
Analysis ( 
transfo 
Transformation for 
scale 
Should the columns of 
add 
Add a constant to the nondiagonal values to euclidify
dissimilarities (see 
sqrt.dist 
Take square root of dissimilarities. This often
euclidifies dissimilarities. NB., the argument name cannot be
abbreviated. The argument has an effect only when 
permutations 
If 
parts 
Number of explanatory tables (circles) displayed. 
labels 
Labels used for displayed fractions. Default is to use the same letters as in the printed output. 
bg 
Fill colours of circles or ellipses. 
alpha 
Transparency of the fill colour. The argument takes precedence over possible transparency definitions of the colour. The value must be in range 0...255, and low values are more transparent. Transparency is not available in all graphics devices or file formats. 
Xnames 
Names for sources of variation. Default names are 
id.size 
A numerical value giving the character expansion factor for the names of circles or ellipses. 
x 
The 
cutoff 
The values below 
digits 
The number of significant digits; the number of decimal places is at least one higher. 
The functions partition the variation in Y
into components
accounted for by two to four explanatory tables and their combined
effects. If Y
is a multicolumn data frame or matrix, the
partitioning is based on redundancy analysis (RDA, see
rda
) or on constrained correspondence analysis if
chisquare = TRUE
(CCA, see cca
). If Y
is a single variable, the partitioning is based on linear
regression. If Y
are dissimilarities, the decomposition is
based on distancebased redundancy analysis (dbRDA, see
capscale
) following McArdle & Anderson (2001). The
input dissimilarities must be compatible to the results of
dist
. Vegan functions vegdist
,
designdist
, raupcrick
and
betadiver
produce such objects, as do many other
dissimilarity functions in R packages. However, symmetric square
matrices are not recognized as dissimilarities but must be
transformed with as.dist
. Partitioning will be made
to squared dissimilarities analogously to using variance with
rectangular data – unless sqrt.dist = TRUE
was specified.
The function primarily uses adjusted Rsquared to assess
the partitions explained by the explanatory tables and their
combinations (see RsquareAdj
), because this is the
only unbiased method (PeresNeto et al., 2006). The raw
Rsquared for basic fractions are also displayed, but
these are biased estimates of variation explained by the explanatory
table. In correspondence analysis (chisquare = TRUE
), the
adjusted Rsquared are found by permutation and they vary
in repeated analyses.
The identifiable fractions are designated by lower case alphabets. The
meaning of the symbols can be found in the separate document (use
browseVignettes("vegan")
), or can be displayed graphically
using function showvarparts
.
A fraction is testable if it can be directly expressed as an RDA or
dbRDA model. In these cases the printed output also displays the
corresponding RDA model using notation where explanatory tables
after 
are conditions (partialled out; see rda
for details). Although single fractions can be testable, this does
not mean that all fractions simultaneously can be tested, since the
number of testable fractions is higher than the number of estimated
models. The nontestable components are found as differences of
testable components. The testable components have permutation
variance in correspondence analysis (chisquare = TRUE
), and
the nontestable components have even higher variance.
An abridged explanation of the alphabetic symbols for the individual
fractions follows, but computational details should be checked in the
vignette (readable with browseVignettes("vegan")
) or in the
source code.
With two explanatory tables, the fractions explained
uniquely by each of the two tables are [a]
and
[c]
, and their joint effect
is [b]
following Borcard et al. (1992).
With three explanatory tables, the fractions explained uniquely
by each of the three tables are
[a]
to [c]
, joint fractions between two tables are
[d]
to [f]
, and the joint fraction between all three
tables is [g]
.
With four explanatory tables, the fractions explained uniquely by each
of the four tables are [a]
to [d]
, joint fractions between two tables are [e]
to
[j]
, joint fractions between three variables are [k]
to
[n]
, and the joint fraction between all four tables is
[o]
.
There is a plot
function that displays the Venn diagram and
labels each intersection (individual fraction) with the adjusted R
squared if this is higher than cutoff
. A helper function
showvarpart
displays the fraction labels. The circles and
ellipses are labelled by short default names or by names defined by
the user in argument Xnames
. Longer explanatory file names can
be written on the varpart output plot as follows: use option
Xnames=NA
, then add new names using the text
function. A
bit of fiddling with coordinates (see locator
) and
character size should allow users to place names of reasonably short
lengths on the varpart
plot.
Function varpart
returns an
object of class "varpart"
with items scale
and
transfo
(can be missing) which hold information on
standardizations, tables
which contains names of explanatory
tables, and call
with the function call
. The
function varpart
calls function varpart2
,
varpart3
or varpart4
which return an object of class
"varpart234"
and saves its result in the item part
.
The items in this object are:
SS.Y 
Sum of squares of matrix 
n 
Number of observations (rows). 
nsets 
Number of explanatory tables 
bigwarning 
Warnings on collinearity. 
fract 
Basic fractions from all estimated constrained models. 
indfract 
Individual fractions or all possible subsections in
the Venn diagram (see 
contr1 
Fractions that can be found after conditioning on single explanatory table in models with three or four explanatory tables. 
contr2 
Fractions that can be found after conditioning on two explanatory tables in models with four explanatory tables. 
Items fract
,
indfract
, contr1
and contr2
are all data frames with
items:
Df
: Degrees of freedom of numerator of the Fstatistic
for the fraction.
R.square
: Raw Rsquared. This is calculated only for
fract
and this is NA
in other items.
Adj.R.square
: Adjusted Rsquared.
Testable
: If the fraction can be expressed as a (partial) RDA
model, it is directly Testable
, and this field is
TRUE
. In that case the fraction label also gives the
specification of the testable RDA model.
You can use command browseVignettes("vegan")
to display
document which presents Venn diagrams showing the fraction names in
partitioning the variation of Y with respect to 2, 3, and 4 tables of
explanatory variables, as well as the equations used in variation
partitioning.
The functions frequently give negative estimates of variation.
Adjusted Rsquared can be negative for any fraction;
unadjusted Rsquared of testable fractions of variances
will be nonnegative. Nontestable fractions cannot be found
directly, but by subtracting different models, and these subtraction
results can be negative. The fractions are orthogonal, or linearly
independent, but more complicated or nonlinear dependencies can
cause negative nontestable fractions. Any fraction can be negative
for nonEuclidean dissimilarities because the underlying dbRDA model
can yield negative eigenvalues (see capscale
,
dbrda
). These negative eigenvalues in the underlying
analysis can be avoided with arguments sqrt.dist
and add
which have a similar effect as in capscale
: the square
roots of several dissimilarities do not have negative eigenvalues, and
no negative eigenvalues are produced after Lingoes or Cailliez
adjustment, which in effect add random variation to the
dissimilarities.
A simplified, fast version of RDA, CCA adn dbRDA are used (functions
simpleRDA2
, simpleCCA
and simpleDBRDA
). The
actual calculations are done in functions varpart2
to
varpart4
, but these are not intended to be called directly by
the user.
Pierre Legendre, Departement de Sciences Biologiques, Universite de Montreal, Canada. Further developed by Jari Oksanen.
(a) References on variation partitioning
Borcard, D., P. Legendre & P. Drapeau. 1992. Partialling out the spatial component of ecological variation. Ecology 73: 1045–1055.
Legendre, P. & L. Legendre. 2012. Numerical ecology, 3rd English edition. Elsevier Science BV, Amsterdam.
(b) Reference on transformations for species data
Legendre, P. and E. D. Gallagher. 2001. Ecologically meaningful transformations for ordination of species data. Oecologia 129: 271–280.
(c) Reference on adjustment of the bimultivariate redundancy statistic
PeresNeto, P., P. Legendre, S. Dray and D. Borcard. 2006. Variation partitioning of species data matrices: estimation and comparison of fractions. Ecology 87: 2614–2625.
(d) References on partitioning of dissimilarities
Legendre, P. & Anderson, M. J. (1999). Distancebased redundancy analysis: testing multispecies responses in multifactorial ecological experiments. Ecological Monographs 69, 1–24.
McArdle, B.H. & Anderson, M.J. (2001). Fitting multivariate models to community data: a comment on distancebased redundancy analysis. Ecology 82, 290297.
For analysing testable fractions, see rda
and
anova.cca
. For data transformation, see
decostand
. Function inertcomp
gives
(unadjusted) components of variation for each species or site
separately. Function rda
displays unadjusted
components in its output, but RsquareAdj
will give
adjusted Rsquared that are similar to the current
function also for partial models.
data(mite) data(mite.env) data(mite.pcnm) # Two explanatory data frames  Hellingertransform Y mod < varpart(mite, mite.env, mite.pcnm, transfo="hel") mod ## Use fill colours showvarparts(2, bg = c("hotpink","skyblue")) plot(mod, bg = c("hotpink","skyblue")) ## Test fraction [a] using partial RDA, '~ .' in formula tells to use ## all variables of data mite.env. aFrac < rda(decostand(mite, "hel"), mite.env, mite.pcnm) anova(aFrac) ## RsquareAdj gives the same result as component [a] of varpart RsquareAdj(aFrac) ## Partition BrayCurtis dissimilarities varpart(vegdist(mite), mite.env, mite.pcnm) ## Three explanatory tables with formula interface mod < varpart(mite, ~ SubsDens + WatrCont, ~ Substrate + Shrub + Topo, mite.pcnm, data=mite.env, transfo="hel") mod showvarparts(3, bg=2:4) plot(mod, bg=2:4) ## Use RDA to test fraction [a] ## Matrix can be an argument in formula rda.result < rda(decostand(mite, "hell") ~ SubsDens + WatrCont + Condition(Substrate + Shrub + Topo) + Condition(as.matrix(mite.pcnm)), data = mite.env) anova(rda.result) ## Four explanatory tables mod < varpart(mite, ~ SubsDens + WatrCont, ~Substrate + Shrub + Topo, mite.pcnm[,1:11], mite.pcnm[,12:22], data=mite.env, transfo="hel") mod plot(mod, bg=2:5) ## Show values for all partitions by putting 'cutoff' low enough: plot(mod, cutoff = Inf, cex = 0.7, bg=2:5)