shannon {abdiv} | R Documentation |
Shannon diversity and related measures
Description
The Shannon index of diversity
Usage
shannon(x, base = exp(1))
brillouin_d(x)
heip_e(x)
pielou_e(x)
Arguments
x |
A numeric vector of species counts or proportions. |
base |
Base of the logarithm to use in the calculation. |
Details
The Shannon index of diversity or Shannon information entropy has deep roots in information theory. It is defined as
H = - \sum_i p_i \log{p_i},
where p_i
is the species proportion. Relation to other definitions:
Equivalent to
diversity()
invegan
withindex = "shannon"
.Equivalent to
shannon()
inskbio.diversity.alpha
.
The Brillouin index (Brillouin 1956) is similar to Shannon's index, but
accounts for sampling without replacement. For a vector of species counts
x
, the Brillouin index is
\frac{1}{N}\log{\frac{N!}{\prod_i x_i!}} =
\frac{\log{N!} - \sum_i \log{x_i!}}{N}
where N
is the total number of counts. Relation to other definitions:
Equivalent to
brillouin_d()
inskbio.diversity.alpha
.Equivalent to the
shannon
calculator in Mothur.
The Brillouin index accounts for the total number of individuals sampled, and should be used on raw count data, not proportions.
Heip's evenness measure is
\frac{e^H - 1}{S - 1},
where S
is
the total number of species observed. Relation to other definitions:
Equivalent to
heip_e()
inskbio.diversity.alpha
.
Pielou's Evenness index J = H / \log{S}
. Relation to other
definitions:
Equivalent to
peilou_e()
inskbio.diversity.alpha
.
Value
The Shannon diversity, H \geq 0
, or related quantity. The
value of H
is undefined if x
sums to zero, and we return
NaN
in this case. Heip's evenness measure and Pielou's Evenness
index are undefined if only one element of x
is nonzero, and again
we return NaN
if this is the case.
References
Brillouin L. Science and Information Theory. 1956;Academic Press, New York.
Pielou EC. The Measurement of Diversity in Different Types of Biological Collections. Journal of Theoretical Biology. 1966;13:131-144.
Examples
x <- c(15, 6, 4, 0, 3, 0)
shannon(x)
# Using a different base is the same as dividing by the log of that base
shannon(x, base = 10)
shannon(x) / log(10)
brillouin_d(x)
# Brillouin index should be almost identical to Shannon index for large N
brillouin_d(10000 * x)
shannon(10000 * x)
heip_e(x)
(exp(shannon(x)) - 1) / (richness(x) - 1)
pielou_e(x)
shannon(x) / log(richness(x))