# Shannon entropy of a community

### Description

Calculates the Shannon entropy of a probability vector.

### Usage

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | ```
Shannon(NorP, Correction = "Best", CheckArguments = TRUE,
Ps = NULL, Ns = NULL)
bcShannon(Ns, Correction = "Best", CheckArguments = TRUE)
## S3 method for class 'ProbaVector'
Shannon(NorP, Correction = "Best", CheckArguments = TRUE,
Ps = NULL, Ns = NULL)
## S3 method for class 'AbdVector'
Shannon(NorP, Correction = "Best", CheckArguments = TRUE,
Ps = NULL, Ns = NULL)
## S3 method for class 'integer'
Shannon(NorP, Correction = "Best", CheckArguments = TRUE,
Ps = NULL, Ns = NULL)
## S3 method for class 'numeric'
Shannon(NorP, Correction = "Best", CheckArguments = TRUE,
Ps = NULL, Ns = NULL)
``` |

### Arguments

`Ps` |
A probability vector, summing to 1. |

`Ns` |
A numeric vector containing species abundances. |

`NorP` |
A numeric vector, an integer vector, an abundance vector ( |

`Correction` |
A string containing one of the possible corrections: |

`CheckArguments` |
Logical; if |

### Details

Bias correction requires the number of individuals to estimate sample `Coverage`

. Use `bcShannon`

and choose the `Correction`

.

Correction techniques are from Miller (1955), Chao and Shen (2003), Grassberger (1988), Grassberger (2003), Schurmann (2003), Holste *et al.* (1998), Bonachela *et al.* (2008), Zhang (2012), Chao, Wang and Jost (2013). More estimators can be found in the `entropy`

package.

Using `MetaCommunity`

mutual information, Chao, Wang and Jost (2013) calculate reduced-bias Shannon beta entropy (see the last example below) with better results than the Chao and Shen estimator, but community weights cannot be arbitrary: they must be proportional to the number of individuals.

The functions are designed to be used as simply as possible. `Shannon`

is a generic method. If its first argument is an abundance vector, an integer vector or a numeric vector which does not sum to 1, the bias corrected function `bcShannon`

is called. Explicit calls to `bcShannon`

(with bias correction) or to `Shannon.ProbaVector`

(without correction) are possible to avoid ambiguity. The `.integer`

and `.numeric`

methods accept `Ps`

or `Ns`

arguments instead of `NorP`

for backward compatibility.

### Value

A named number equal to the calculated entropy. The name is that of the bias correction used.

### Author(s)

Eric Marcon <Eric.Marcon@ecofog.gf>

### References

Bonachela, J. A., Hinrichsen, H. and Munoz, M. A. (2008). Entropy estimates of small data sets. *Journal of Physics A: Mathematical and Theoretical* 41(202001): 1-9.

Chao, A. and Shen, T. J. (2003). Nonparametric estimation of Shannon's index of diversity when there are unseen species in sample. *Environmental and Ecological Statistics* 10(4): 429-443.

Chao, A., Wang, Y. T. and Jost, L. (2013). Entropy and the species accumulation curve: a novel entropy estimator via discovery rates of new species. *Methods in Ecology and Evolution* 4(11):1091-1100.

Grassberger, P. (1988). Finite sample corrections to entropy and dimension estimates. *Physics Letters A* 128(6-7): 369-373.

Grassberger, P. (2003). Entropy Estimates from Insufficient Samplings. *ArXiv Physics e-prints* 0307138.

Holste, D., Grosse, I. and Herzel, H. (1998). Bayes' estimators of generalized entropies. *Journal of Physics A: Mathematical and General* 31(11): 2551-2566.

Miller, G. (1955) Note on the bias of information estimates. In: Quastler, H., editor. *Information Theory in Psychology: Problems and Methods*: 95-100.

Shannon, C. E. (1948). A Mathematical Theory of Communication. *The Bell System Technical Journal* 27: 379-423, 623-656.

Schurmann, T. (2004). Bias analysis in entropy estimation. *Journal of Physics A: Mathematical and Theoretical* 37(27): L295-L301.

Tsallis, C. (1988). Possible generalization of Boltzmann-Gibbs statistics. *Journal of Statistical Physics* 52(1): 479-487.

Zhang, Z. (2012). Entropy Estimation in Turing's Perspective. *Neural Computation* 24(5): 1368-1389.

### See Also

`bcShannon`

, `Tsallis`

### Examples

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | ```
# Load Paracou data (number of trees per species in two 1-ha plot of a tropical forest)
data(Paracou618)
# Ns is the total number of trees per species
Ns <- as.AbdVector(Paracou618.MC$Ns)
# Species probabilities
Ps <- as.ProbaVector(Paracou618.MC$Ns)
# Whittaker plot
plot(Ns)
# Calculate Shannon entropy
Shannon(Ps)
# Calculate the best estimator of Shannon entropy
Shannon(Ns)
# Use metacommunity data to calculate reduced-bias Shannon beta as mutual information
(bcShannon(Paracou618.MC$Ns) + bcShannon(colSums(Paracou618.MC$Nsi))
- bcShannon(Paracou618.MC$Nsi))
``` |