multipart.Rd
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(...) # S3 method for default multipart(y, x, index=c("renyi", "tsallis"), scales = 1, global = FALSE, relative = FALSE, nsimul=99, method = "r2dtable", ...) # S3 method for formula multipart(formula, data, index=c("renyi", "tsallis"), scales = 1, global = FALSE, relative = FALSE, nsimul=99, method = "r2dtable", ...)
y | A community matrix. |
---|---|
x | A matrix with same number of rows as in |
formula | A two sided model formula in the form |
data | A data frame where to look for variables defined in the
right hand side of |
index | Character, the entropy index to be calculated (see Details). |
relative | Logical, if |
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 permutations to use. If |
method | Null model method: either a name (character string) of
a method defined in |
... | Other arguments passed to |
Multiplicative diversity partitioning is based on Whittaker's (1972) ideas, that has recently been generalised to one parametric diversity families (i.e. Rényi 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_{ij})$$
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, \(\beta_{i} = mean(\beta_{ij})\).
If relative = TRUE
, the respective beta diversity values are
standardized by their maximum possible values (\(mean(\beta_{ij}) / \beta_{max,ij}\))
given as \(\beta_{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 randomization 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.
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 adipart
for additive diversity partitioning,
hiersimu
for hierarchical null model testing
and oecosimu
for permutation settings and calculating \(p\)-values.
## NOTE: 'nsimul' argument usually needs to be >= 99 ## here much lower value is used for demonstration data(mite) data(mite.xy) data(mite.env) ## 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 return(out)} ## The hierarchy of sample aggregation levsm <- with(mite.xy, data.frame( l1=1:nrow(mite), l2=cutter(y, cut = seq(0, 10, by = 2.5)), l3=cutter(y, cut = seq(0, 10, by = 5)), l4=cutter(y, cut = seq(0, 10, by = 10)))) ## Multiplicative diversity partitioning multipart(mite, levsm, index="renyi", scales=1, nsimul=19)#> multipart object #> #> Call: multipart(y = mite, x = levsm, index = "renyi", scales = 1, #> nsimul = 19) #> #> nullmodel method ‘r2dtable’ with 19 simulations #> options: index renyi, scales 1, global FALSE #> alternative hypothesis: statistic is less or greater than simulated values #> #> statistic SES mean 2.5% 50% 97.5% Pr(sim.) #> alpha.1 8.0555 -64.394 12.2036 12.0813 12.2105 12.2904 0.05 * #> alpha.2 11.2353 -76.305 14.0792 14.0375 14.0726 14.1638 0.05 * #> alpha.3 12.0064 -385.486 14.1363 14.1273 14.1359 14.1441 0.05 * #> gamma 14.1603 0.000 14.1603 14.1603 14.1603 14.1603 1.00 #> beta.1 1.3568 34.501 1.1560 1.1474 1.1549 1.1664 0.05 * #> beta.2 1.0710 27.947 1.0041 0.9985 1.0046 1.0065 0.05 * #> beta.3 1.1794 453.847 1.0017 1.0011 1.0017 1.0023 0.05 * #> --- #> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1multipart(mite ~ ., levsm, index="renyi", scales=1, nsimul=19)#> multipart object #> #> Call: multipart(formula = mite ~ ., data = levsm, index = "renyi", #> scales = 1, nsimul = 19) #> #> nullmodel method ‘r2dtable’ with 19 simulations #> options: index renyi, scales 1, global FALSE #> alternative hypothesis: statistic is less or greater than simulated values #> #> statistic SES mean 2.5% 50% 97.5% Pr(sim.) #> alpha.1 8.0555 -64.100 12.19792 12.10148 12.18494 12.3025 0.05 * #> alpha.2 11.2353 -95.995 14.08305 14.03774 14.07722 14.1401 0.05 * #> alpha.3 12.0064 -258.881 14.13405 14.11471 14.13524 14.1438 0.05 * #> gamma 14.1603 0.000 14.16027 14.16027 14.16027 14.1603 1.00 #> beta.1 1.3568 35.732 1.15706 1.14782 1.15762 1.1661 0.05 * #> beta.2 1.0710 33.869 1.00363 0.99971 1.00400 1.0068 0.05 * #> beta.3 1.1794 304.537 1.00186 1.00116 1.00177 1.0032 0.05 * #> --- #> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1multipart(mite ~ ., levsm, index="renyi", scales=1, nsimul=19, relative=TRUE)#> multipart object #> #> Call: multipart(formula = mite ~ ., data = levsm, index = "renyi", #> scales = 1, relative = TRUE, nsimul = 19) #> #> nullmodel method ‘r2dtable’ with 19 simulations #> options: index renyi, scales 1, global FALSE #> alternative hypothesis: statistic is less or greater than simulated values #> #> statistic SES mean 2.5% 50% 97.5% Pr(sim.) #> alpha.1 8.055481 -50.313 12.222701 12.042490 12.246283 12.3173 0.05 * #> alpha.2 11.235261 -94.151 14.069192 14.018070 14.074128 14.1149 0.05 * #> alpha.3 12.006443 -366.472 14.136866 14.127636 14.135888 14.1486 0.05 * #> gamma 14.160271 0.000 14.160271 14.160271 14.160271 14.1603 1.00 #> beta.1 0.078594 18.416 0.068115 0.067460 0.067972 0.0693 0.05 * #> beta.2 0.535514 31.199 0.502410 0.500907 0.502089 0.5042 0.05 * #> beta.3 0.589695 431.589 0.500828 0.500411 0.500862 0.5012 0.05 * #> --- #> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1multipart(mite ~ ., levsm, index="renyi", scales=1, nsimul=19, global=TRUE)#> multipart object #> #> Call: multipart(formula = mite ~ ., data = levsm, index = "renyi", #> scales = 1, global = TRUE, nsimul = 19) #> #> nullmodel method ‘r2dtable’ with 19 simulations #> options: index renyi, scales 1, global TRUE #> alternative hypothesis: statistic is less or greater than simulated values #> #> statistic SES mean 2.5% 50% 97.5% Pr(sim.) #> alpha.1 8.0555 -56.225 12.1877 12.0713 12.1978 12.2979 0.05 * #> alpha.2 11.2353 -94.896 14.0895 14.0396 14.0877 14.1383 0.05 * #> alpha.3 12.0064 -298.657 14.1371 14.1248 14.1372 14.1472 0.05 * #> gamma 14.1603 0.000 14.1603 14.1603 14.1603 14.1603 1.00 #> beta.1 1.7578 84.986 1.1619 1.1514 1.1609 1.1731 0.05 * #> beta.2 1.2603 119.017 1.0050 1.0016 1.0052 1.0086 0.05 * #> beta.3 1.1794 351.607 1.0016 1.0009 1.0016 1.0025 0.05 * #> --- #> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1