Zeta.varpart {zetadiv} | R Documentation |
Variation partitioning for zeta diversity
Description
Variation partitioning of zeta diversity for a specific order (number of assemblages or sites) over distance and environmental variables.
Usage
Zeta.varpart(
msgdm.mod,
num.part = 2,
reg.type = "glm",
family = stats::gaussian(),
method.glm = "glm.fit.cons",
cons = -1,
cons.inter = 1,
kn = -1,
bs = "mpd"
)
Arguments
msgdm.mod |
An object return by function |
num.part |
Number of partitions of zeta diversity. Can be 2 or 3. |
reg.type |
Type of regression for the multi-site generalised dissimilarity modelling. Options are "glm" for generalised linear models, "ngls" for negative linear models, "gam" for generalised additive models, "scam" for shape constrained additive models, and "ispline" for I-spline models, as recommended in generalised dissimilarity modelling by Ferrier et al. (2007). |
family |
A description of the error distribution and link function to be used in the |
method.glm |
Method used in fitting the generalised linear model. The default method |
cons |
type of constraint in the glm if |
cons.inter |
type of constraint for the intercept. Default is 1 for positive intercept, suitable for Gaussian family. The other option is -1 for negative intercept, suitable for binomial family. |
kn |
Number of knots in the GAM and SCAM. Default is -1 for determining kn automatically using Generalized Cross-validation. |
bs |
A two-letter character string indicating the (penalized) smoothing basis to use in the scam model. Default is " |
Details
Note that, for a given regression, the variation explained is computed as 1-(RSS/TSS)*(v-1)/(v-p-1), where RSS is the residual sum of squares and TSS is the total sum of squares, v is the number of variables used in the regression (which is greater than the original number of variables for I-splines) and p is the number of samples. 1-(RSS/TSS) corresponds to the classical R-squared for linear regression only, and results for non-linear regressions should be interpreted with caution.
The environmental variables can be numeric or factorial, and order
must be greater than 1.
For numeric variables, the pairwise difference between sites is computed and combined according to method
. For factorial variables, the distance corresponds to the number of unique values over the number of assemblages of sites specified by order
.
Zeta is regressed against the differences of values of the environmental variables divided by the maximum difference for each variable, to be rescaled between 0 and 1. If !is.null(xy)
, distances between sites are also divided by the maximum distance.
Value
Zeta.varpart
returns a data frame with one column containing the variation explained by each component a
(the variation explained by distance alone), b
(the variation explained by either distance or the environment), c
(the variation explained by the environment alone) and d
(the unexplained variation).
References
Hui C. & McGeoch M.A. (2014). Zeta diversity as a concept and metric that unifies incidence-based biodiversity patterns. The American Naturalist, 184, 684-694.
Borcard, D., Legendre, P. & Drapeau, P. (1992). Partialling out the spatial component of ecological variation. Ecology 73, 1045-1055.
Legendre, P. & Legendre, L.F. (2012). Numerical ecology, 3rd English edition. Elsevier Science BV, Amsterdam.
See Also
Zeta.decline.mc
, Zeta.order.mc
, Zeta.decline.ex
, Zeta.order.ex
, Zeta.msgdm
, pie.neg
Examples
utils::data(bird.spec.coarse)
xy.bird <- bird.spec.coarse[,1:2]
data.spec.bird <- bird.spec.coarse[,3:193]
utils::data(bird.env.coarse)
data.env.bird <- bird.env.coarse[,3:9]
zeta.bird <- Zeta.msgdm(data.spec.bird, data.env.bird, xy.bird, sam = 100, order = 3)
zeta.varpart.bird <- Zeta.varpart(zeta.bird, method.glm = "glm.fit2")
zeta.varpart.bird
dev.new()
pie.neg(zeta.varpart.bird[4:7,1], density = c(4, 0, 8, -1),
angle = c(90, 0, 0, 0),
labels = c("distance", "undistinguishable", "environment", "unexplained"),
radius = 0.9)
##########
utils::data(Marion.species)
xy.marion <- Marion.species[,1:2]
data.spec.marion <- Marion.species[,3:33]
utils::data(Marion.env)
data.env.marion <- Marion.env[3:4]
zeta.marion <- Zeta.msgdm(data.spec.marion, data.env.marion, xy.marion, sam = 100,
order = 3, normalize = "Jaccard")
zeta.varpart.marion <- Zeta.varpart(zeta.marion, method.glm = "glm.fit2")
zeta.varpart.marion
dev.new()
pie.neg(zeta.varpart.marion[4:7,1], density = c(4, 0, 8, -1),
angle = c(90, 0, 0, 0),
labels = c("distance", "undistinguishable", "environment", "unexplained"),
radius = 0.9)