R: Extrapolated Species Richness in a Species Pool

specpool {vegan} | R Documentation

## Extrapolated Species Richness in a Species Pool

### Description

The functions estimate the extrapolated species richness in a species pool, or the number of unobserved species. Function `specpool` is based on incidences in sample sites, and gives a single estimate for a collection of sample sites (matrix). Function `estimateR` is based on abundances (counts) on single sample site.

### Usage

    specpool(x, pool, smallsample = TRUE)
    estimateR(x, ...)
    specpool2vect(X, index = c("jack1","jack2", "chao", "boot","Species"))
    poolaccum(x, permutations = 100, minsize = 3)
    estaccumR(x, permutations = 100, parallel = getOption("mc.cores"))
    ## S3 method for class 'poolaccum'
    summary(object, display, alpha = 0.05, ...)
    ## S3 method for class 'poolaccum'
    plot(x, alpha = 0.05, type = c("l","g"), ...)

### Arguments

`x` | Data frame or matrix with species data or the analysis result for `plot` function.
`pool` | A vector giving a classification for pooling the sites in the species data. If missing, all sites are pooled together.
`smallsample` | Use small sample correction (N-1)/N, where N is the number of sites within the `pool`.
`X, object` | A `specpool` result object.
`index` | The selected index of extrapolated richness.
`permutations` | Usually an integer giving the number permutations, but can also be a list of control values for the permutations as returned by the function `how`, or a permutation matrix where each row gives the permuted indices.
`minsize` | Smallest number of sampling units reported.
`parallel` | Number of parallel processes or a predefined socket cluster. With `parallel = 1` uses ordinary, non-parallel processing. The parallel processing is done with parallel package.
`display` | Indices to be displayed.
`alpha` | Level of quantiles shown. This proportion will be left outside symmetric limits.
`type` | Type of graph produced in `xyplot`.
`...` | Other parameters (not used).

### Details

Many species will always remain unseen or undetected in a collection of sample plots. The function uses some popular ways of estimating the number of these unseen species and adding them to the observed species richness (Palmer 1990, Colwell & Coddington 1994).

The incidence-based estimates in `specpool` use the frequencies of species in a collection of sites. In the following, S_P is the extrapolated richness in a pool, S_0 is the observed number of species in the collection, a1 and a2 are the number of species occurring only in one or only in two sites in the collection, p_i is the frequency of species i, and N is the number of sites in the collection. The variants of extrapolated richness in `specpool` are:

Chao | S_P = S_0 + a1^2/(2*a2) * (N-1)/N
Chao bias-corrected | S_P = S_0 + a1*(a1-1)/(2*(a2+1)) * (N-1)/N
First order jackknife | S_P = S_0 + a1*(N-1)/N
Second order jackknife | S_P = S_0 + a1*(2*N-3)/N - a2*(N-2)^2/N/(N-1)
Bootstrap | S_P = S_0 + Sum (1-p_i)^N

`specpool` normally uses basic Chao equation, but when there are no doubletons (a2=0) it switches to bias-corrected version. In that case the Chao equation simplifies to S_0 + (N-1)/N * a1*(a1-1)/2.

The abundance-based estimates in `estimateR` use counts (numbers of individuals) of species in a single site. If called for a matrix or data frame, the function will give separate estimates for each site. The two variants of extrapolated richness in `estimateR` are bias-corrected Chao and ACE (O'Hara 2005, Chiu et al. 2014). The Chao estimate is similar as the bias corrected one above, but a_i refers to the number of species with abundance i instead of number of sites, and the small-sample correction is not used. The ACE estimate is defined as:

ACE | S_P = S_abund + S_rare/C_ace + a1/C_ace * gamma^2
where | C_{ace} = 1- a1/N_{rare}
| gamma^2 = max(S_rare/C_ace (sum[i=1..10] i*(i-1)*a_i) / N_rare/(N_rare-1) -1 , 0)

Here a_i refers to number of species with abundance i and S_rare is the number of rare species, S_abund is the number of abundant species, with an arbitrary threshold of abundance 10 for rare species, and N_rare is the number of individuals in rare species.

Functions estimate the standard errors of the estimates. These only concern the number of added species, and assume that there is no variance in the observed richness. The equations of standard errors are too complicated to be reproduced in this help page, but they can be studied in the R source code of the function and are discussed in the `vignette` that can be read with the `browseVignettes("vegan")`. The standard error are based on the following sources: Chiu et al. (2014) for the Chao estimates and Smith and van Belle (1984) for the first-order Jackknife and the bootstrap (second-order jackknife is still missing). For the variance estimator of S_ace see O'Hara (2005).

Functions `poolaccum` and `estaccumR` are similar to `specaccum`, but estimate extrapolated richness indices of `specpool` or `estimateR` in addition to number of species for random ordering of sampling units. Function `specpool` uses presence data and `estaccumR` count data. The functions share `summary` and `plot` methods. The `summary` returns quantile envelopes of permutations corresponding the given level of `alpha` and standard deviation of permutations for each sample size. NB., these are not based on standard deviations estimated within `specpool` or `estimateR`, but they are based on permutations. The `plot` function shows the mean and envelope of permutations with given `alpha` for models. The selection of models can be restricted and order changes using the `display` argument in `summary` or `plot`. For configuration of `plot` command, see `xyplot`.

### Value

Function `specpool` returns a data frame with entries for observed richness and each of the indices for each class in `pool` vector. The utility function `specpool2vect` maps the pooled values into a vector giving the value of selected `index` for each original site. Function `estimateR` returns the estimates and their standard errors for each site. Functions `poolaccum` and `estimateR` return matrices of permutation results for each richness estimator, the vector of sample sizes and a table of `means` of permutations for each estimator.

### Note

The functions are based on assumption that there is a species pool: The community is closed so that there is a fixed pool size S_P. In general, the functions give only the lower limit of species richness: the real richness is S >= S_P, and there is a consistent bias in the estimates. Even the bias-correction in Chao only reduces the bias, but does not remove it completely (Chiu et al. 2014).

Optional small sample correction was added to `specpool` in vegan 2.2-0. It was not used in the older literature (Chao 1987), but it is recommended recently (Chiu et al. 2014).

See http://viceroy.eeb.uconn.edu/EstimateS for a more complete (and positive) discussion and alternative software for some platforms.

### Author(s)

Bob O'Hara (`estimateR`) and Jari Oksanen.

### References

Chao, A. (1987). Estimating the population size for capture-recapture data with unequal catchability. Biometrics 43, 783–791.

Chiu, C.H., Wang, Y.T., Walther, B.A. & Chao, A. (2014). Improved nonparametric lower bound of species richness via a modified Good-Turing frequency formula. Biometrics 70, 671–682.

Colwell, R.K. & Coddington, J.A. (1994). Estimating terrestrial biodiversity through extrapolation. Phil. Trans. Roy. Soc. London B 345, 101–118.

O'Hara, R.B. (2005). Species richness estimators: how many species can dance on the head of a pin? J. Anim. Ecol. 74, 375–386.

Palmer, M.W. (1990). The estimation of species richness by extrapolation. Ecology 71, 1195–1198.

Smith, E.P & van Belle, G. (1984). Nonparametric estimation of species richness. Biometrics 40, 119–129.

### See Also

`veiledspec`, `diversity`, `beals`, `specaccum`.

### Examples

    data(dune)
    data(dune.env)
    attach(dune.env)
    pool <- specpool(dune, Management)
    pool
    op <- par(mfrow=c(1,2))
    boxplot(specnumber(dune) ~ Management, col="hotpink", border="cyan3",
     notch=TRUE)
    boxplot(specnumber(dune)/specpool2vect(pool) ~ Management, col="hotpink",
     border="cyan3", notch=TRUE)
    par(op)
    data(BCI)
    ## Accumulation model
    pool <- poolaccum(BCI)
    summary(pool, display = "chao")
    plot(pool)
    ## Quantitative model
    estimateR(BCI[1:5,])

[Package vegan version 2.4-3 Index]