# Similarity-based entropy of a community

### Description

Calculates the entropy of order *q* of a probability vector according to a similarity matrix.

### Usage

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | ```
Hqz(NorP, q = 1, Z = diag(length(Ps)), Correction = "Best",
CheckArguments = TRUE, Ps = NULL, Ns = NULL)
bcHqz(Ns, q = 1, Z = diag(length(Ns)), Correction = "Best", CheckArguments = TRUE)
## S3 method for class 'ProbaVector'
Hqz(NorP, q = 1, Z = diag(length(Ps)), Correction = "Best",
CheckArguments = TRUE, Ps = NULL, Ns = NULL)
## S3 method for class 'AbdVector'
Hqz(NorP, q = 1, Z = diag(length(Ps)), Correction = "Best",
CheckArguments = TRUE, Ps = NULL, Ns = NULL)
## S3 method for class 'integer'
Hqz(NorP, q = 1, Z = diag(length(Ps)), Correction = "Best",
CheckArguments = TRUE, Ps = NULL, Ns = NULL)
## S3 method for class 'numeric'
Hqz(NorP, q = 1, Z = diag(length(Ps)), 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 ( |

`q` |
A number: the order of entropy. Default is 1. |

`Z` |
A relatedness matrix, |

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

`CheckArguments` |
Logical; if |

### Details

Entropy is calculated following Leinster and Cobbold (2012) after Ricotta and Szeidl (2006): it is the entropy of order `q`

of the community, using species ordinariness as the information function.

A similarity matrix is used (as for `Dqz`

), not a distance matrix as in Ricotta and Szeidl (2006). See the example.

Bias correction requires the number of individuals. Use `bcHqz`

and choose the `Correction`

.
Correction techniques are from Marcon *et al.* (2014).

Currently, the `"Best"`

correction is the max value of `"ChaoShen"`

and `"MarconZhang"`

.

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

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 `bcHqz`

is called. Explicit calls to `bcHqz`

(with bias correction) or to `Hqz.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

Leinster, T. and Cobbold, C. (2012). Measuring diversity: the importance of species similarity. *Ecology* 93(3): 477-489.

Marcon, E., Zhang, Z. and Herault, B. (2014). The decomposition of similarity-based diversity and its bias correction. *HAL* hal-00989454(version 1).

Ricotta, C. and Szeidl, L. (2006). Towards a unifying approach to diversity measures: Bridging the gap between the Shannon entropy and Rao's quadratic index. *Theoretical Population Biology* 70(3): 237-243.

### See Also

`Dqz`

, `PhyloEntropy`

### Examples

1 2 3 4 5 6 7 8 9 10 11 12 13 14 | ```
# Load Paracou data (number of trees per species in two 1-ha plot of a tropical forest)
data(Paracou618)
# Prepare the similarity matrix
DistanceMatrix <- as.matrix(EightSpTree$Wdist^2/2)
# Similarity can be 1 minus normalized distances between species
Z <- 1 - DistanceMatrix/max(DistanceMatrix)
# Calculate diversity of order 2
Ps <- EightSpAbundance/sum(EightSpAbundance)
Hqz(Ps, 2, Z)
# Equal to normalized Rao quadratic entropy when q=2
Rao(Ps, EightSpTree)/max(DistanceMatrix)
# But different from PhyloEntropy for all other q, e.g. 1
Hqz(Ps, 1, Z)
summary(PhyloEntropy(Ps, 1, EightSpTree))
``` |