Learn R Programming

adiv (version 1.2)

QE: Quadratic Entropy

Description

Function QE calculates Rao's quadratic entropy within communities

Function discomQE calculates Rao's dissimilarities between communities

Usage

QE(comm, dis = NULL, formula = c("QE", "EDI"), scale = FALSE)

discomQE(comm, dis = NULL, structures = NULL, formula = c("QE", "EDI"))

Arguments

comm

a data frame or a matrix with communities as rows and species as columns. Entries are abundances of species within sites

dis

either NULL or an object of class dist that contains the (functional or phylogenetic) distances among species. If NULL the Gini-Simpson index is used.

formula

either "QE" (default) or "EDI". See details.

scale

a logical value indicating whether or not the diversity coefficient should be scaled by its maximal value over all species abundance distributions.

structures

either NULL or a data frame that contains, in the jth row and the kth column, the name of the group of level k to which the jth community belongs. Communities in structures should be in the same order as in comm.

Value

Function QE returns a data frame with communities as rows and the diversity within communities as columns.

If structures is NULL, function discomQE returns an object of class dist. Otherwise it returns a list of objects of class dist.

Details

If formula = "QE", the definition of the quadratic entropy is: $$QE(\mathbf{p}_i,\mathbf{D})=\sum_{k=1}^S\sum_{l=1}^S p_{k|i}p_{k|j}d_{kl}$$ where \(\mathbf{p}_i=(p_{1|i}, ..., p_{k|i}, ..., p_{S|i})\) is the vector of relative species abundance within community i; S is the number of species; \(\mathbf{D}=(d_{kl})\) is the matrix of (phylogenetic or functional) dissimilarities among species, and \(d_{kl}\) is the (phylogenetic or functional) dissimilarity between species k and l. For the calculations of dissimilarities between communities see the description of the apportionment of quadratic entropy in Pavoine et al. (2016) and references therein.

If formula = "EDI", the definition of the quadratic entropy is: $$EDI(\mathbf{p}_i,\mathbf{D})=\sum_{k=1}^S\sum_{l=1}^S p_{k|i}p_{k|j}\frac{d_{kl}^2}{2}$$ EDI stands for the Euclidean Diversity Index of Champely and Chessel (2002) (equation 3 in Pavoine et al. 2004). If EDI is used, the dissimilarities calculated by discomQE are obtained from the same scheme (equation 4 in Pavoine et al. 2004).

References

Gini, C. (1912) Variabilita e mutabilita. Universite di Cagliari III, Parte II.

Simpson, E.H. (1949) Measurement of diversity. Nature, 163, 688.

Rao, C.R. (1982) Diversity and dissimilarity coefficients: a unified approach. Theoretical Population Biology, 21, 24--43.

Champely, S. and Chessel, D. (2002) Measuring biological diversity using Euclideanmetrics. Environmental and Ecological Statistics, 9, 167--177.

Pavoine, S., Dufour, A.B., Chessel, D. (2004) From dissimilarities among species to dissimilarities among communities: a double principal coordinate analysis. Journal of Theoretical Biology, 228:, 523--537.

Pavoine, S., Marcon, E., Ricotta, C. (2016) "Equivalent numbers" for species, phylogenetic, or functional diversity in a nested hierarchy of multiple scales. Methods in Ecology and Evolution, 7, 1152--1163.

Examples

Run this code
# NOT RUN {
data(ecomor, package="ade4")
dtaxo <- dist.taxo(ecomor$taxo)
QE(t(ecomor$habitat), dtaxo, formula="EDI")
QE(t(ecomor$habitat), dtaxo^2/2, formula="QE")
table.value(as.matrix(discomQE(t(ecomor$habitat), dtaxo, formula="EDI")))
EDIcom <- discomQE(t(ecomor$habitat), dtaxo, formula="EDI")
QEcom <- discomQE(t(ecomor$habitat), dtaxo^2/2, formula="QE")
QEcom 
EDIcom^2/2

bird.QE <- QE(t(ecomor$habitat), dtaxo, formula="EDI")
dotchart(bird.QE$diversity, labels = rownames(bird.QE))

data(humDNAm, package="ade4")
QE(t(humDNAm$samples), humDNAm$distances/2, formula="QE")
QE(t(humDNAm$samples), sqrt(humDNAm$distances), formula="EDI")
QEhumDNA.dist <- discomQE(t(humDNAm$samples), 
humDNAm$distances/2, humDNAm$structures)
is.euclid(QEhumDNA.dist$communities)
is.euclid(QEhumDNA.dist$regions)

EDIhumDNA.dist <- discomQE(t(humDNAm$samples), 
sqrt(humDNAm$distances), humDNAm$structures, formula="EDI")
is.euclid(EDIhumDNA.dist$communities)
is.euclid(EDIhumDNA.dist$regions)

QEhumDNA.dist$communities
EDIhumDNA.dist$communities^2/2

hum.QE <- QE(t(humDNAm$samples), humDNAm$distances/2, formula="QE")
dotchart(hum.QE$diversity, labels = rownames(hum.QE))
# }

Run the code above in your browser using DataLab