multipart {vegan}R Documentation

Multiplicative Diversity Partitioning


In multiplicative diversity partitioning, mean values of alpha diversity at lower levels of a sampling hierarchy are compared to the total diversity in the entire data set or the pooled samples (gamma diversity).


multipart(formula, data, index=c("renyi", "tsallis"), scales = 1,
    global = FALSE, relative = FALSE, nsimul=99, ...)
## S3 method for class 'multipart':
print(x, ...)


formula A two sided model formula in the form y ~ x, where y is the community data matrix with samples as rows and species as column. Right hand side (x) must contain factors referring to levels of sampling hierarchy, terms from right to left will be treated as nested (first column is the lowest, last is the highest level). These variables must be factors in order to unambiguous handling. Interaction terms are not allowed.
data A data frame where to look for variables defined in the right hand side of formula. If missing, variables are looked in the global environment.
index Character, the entropy index to be calculated (see Details).
relative Logical, if TRUE then beta diversity is standardized by its maximum (see Details).
scales Numeric, of length 1, the order of the generalized diversity index to be used.
global Logical, indicates the calculation of beta diversity values, see Details.
nsimul Number of permutation to use if matr is not of class 'permat'. If nsimul = 0, only the FUN argument is evaluated. It is thus possible to reuse the statistic values without using a null model.
x An object to print.
... Other arguments passed to oecosimu, i.e. method, thin or burnin.


Multiplicative diversity partitioning is based on Whittaker's (1972) ideas, that has recently been generalised to one parametric diversity families (i.e. R'enyi and Tsallis) by Jost (2006, 2007). Jost recommends to use the numbers equivalents (Hill numbers), instead of pure diversities, and proofs, that this satisfies the multiplicative partitioning requirements.

The current implementation of multipart calculates Hill numbers based on the functions renyi and tsallis (provided as index argument). If values for more than one scales are desired, it should be done in separate runs, because it adds extra dimensionality to the implementation, which has not been resolved efficiently.

Alpha diversities are then the averages of these Hill numbers for each hierarchy levels, the global gamma diversity is the alpha value calculated for the highest hierarchy level. When global = TRUE, beta is calculated relative to the global gamma value:

beta_i = gamma / alpha_i

when global = FALSE, beta is calculated relative to local gamma values (local gamma means the diversity calculated for a particular cluster based on the pooled abundance vector):

beta_ij = alpha_(i+1)j / mean(alpha_i)

where j is a particular cluster at hierarchy level i. Then beta diversity value for level i is the mean of the beta values of the clusters at that level, β_{i} = mean(β_{ij}).

If relative = TRUE, the respective beta diversity values are standardized by their maximum expected values (mean(β_{ij}) / β_{max,ij}) given as β_{max,ij} = n_{j} (the number of lower level units in a given cluster j).

The expected diversity components are calculated nsimul times by individual based randomisation of the community data matrix. This is done by the "r2dtable" method in oecosimu by default.


An object of class 'multipart' with same structure as 'oecosimu' objects.


P'eter S'olymos,


Jost, L. (2006). Entropy and diversity. Oikos, 113, 363–375.

Jost, L. (2007). Partitioning diversity into independent alpha and beta components. Ecology, 88, 2427–2439.

Whittaker, R. (1972). Evolution and measurement of species diversity. Taxon, 21, 213–251.

See Also

See adipart for additive diversity partitioning, hiersimu for hierarchical null model testing and oecosimu for permutation settings and calculating p-values.


## Function to get equal area partitions of the mite data
cutter <- function (x, cut = seq(0, 10, by = 2.5)) {
    out <- rep(1, length(x))
    for (i in 2:(length(cut) - 1))
        out[which(x > cut[i] & x <= cut[(i + 1)])] <- i
## The hierarchy of sample aggregation
levsm <- data.frame(
    l2=cutter(mite.xy$y, cut = seq(0, 10, by = 2.5)),
    l3=cutter(mite.xy$y, cut = seq(0, 10, by = 5)),
    l4=cutter(mite.xy$y, cut = seq(0, 10, by = 10)))
## Multiplicative diversity partitioning
multipart(mite ~ ., levsm, index="renyi", scales=1, nsimul=25)
multipart(mite ~ ., levsm, index="renyi", scales=1, nsimul=25, relative=TRUE)
multipart(mite ~ ., levsm, index="renyi", scales=1, nsimul=25, global=TRUE)

[Package vegan version 1.16-32 Index]