specpool: Extrapolated Species Richness in a Species Pool

Description Usage Arguments Details Value Note Author(s) References See Also Examples

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

1
2
3
4
5
6
7
8
9
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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
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,])

Example output

Loading required package: permute
Loading required package: lattice
This is vegan 2.4-4
   Species     chao   chao.se    jack1 jack1.se    jack2     boot  boot.se n
BF      16 17.19048 1.5895675 19.33333 2.211083 19.83333 17.74074 1.646379 3
HF      21 21.51429 0.9511693 23.40000 1.876166 22.05000 22.56864 1.821518 5
NM      21 22.87500 2.1582871 26.00000 3.291403 25.73333 23.77696 2.300982 6
SF      21 29.88889 8.6447967 27.66667 3.496029 31.40000 23.99496 1.850288 6
Warning message:
In bxp(list(stats = c(9, 9.5, 10, 11, 12, 11, 12, 13, 13, 14, 7,  :
  some notches went outside hinges ('box'): maybe set notch=FALSE
Warning message:
In bxp(list(stats = c(0.46551724137931, 0.491379310344828, 0.517241379310345,  :
  some notches went outside hinges ('box'): maybe set notch=FALSE
$chao
       N     Chao     2.5%    97.5%   Std.Dev
 [1,]  3 160.9476 142.0383 182.0807 11.270752
 [2,]  4 173.5997 155.0614 202.1125 13.016805
 [3,]  5 182.3512 164.8505 208.4667 11.409904
 [4,]  6 188.3330 169.3107 211.0327 10.063760
 [5,]  7 192.8775 175.3101 215.0049 10.345351
 [6,]  8 197.7657 180.7702 220.0356 11.606898
 [7,]  9 202.0651 184.7691 225.2545 11.598800
 [8,] 10 203.3710 187.1018 227.0786 10.966502
 [9,] 11 206.0874 186.7094 233.1239 11.528109
[10,] 12 208.6004 188.7337 231.6850 11.420835
[11,] 13 210.7562 192.0813 236.3161 11.861617
[12,] 14 213.8876 195.3327 245.4074 12.298981
[13,] 15 215.7278 198.3186 239.6563 11.504247
[14,] 16 218.4506 199.4048 248.1400 12.265903
[15,] 17 221.0832 201.5884 254.7577 13.824780
[16,] 18 222.9217 201.9699 256.3023 14.334215
[17,] 19 225.1057 204.9474 256.0500 14.449905
[18,] 20 226.9952 208.2056 265.5257 15.119429
[19,] 21 227.6770 207.9935 261.8546 14.309450
[20,] 22 228.1346 208.2300 265.9113 13.971391
[21,] 23 230.1290 209.9850 266.3476 13.917138
[22,] 24 231.3234 213.8082 262.0459 13.396352
[23,] 25 232.1365 213.4903 259.8252 12.905823
[24,] 26 232.8493 214.1666 264.2261 12.825957
[25,] 27 234.1063 217.1782 271.1798 13.596850
[26,] 28 234.7637 217.8379 267.7316 13.211930
[27,] 29 234.8600 218.1544 264.6304 12.116936
[28,] 30 235.1382 218.2368 260.7124 11.772531
[29,] 31 235.3100 220.6380 256.7887 10.369256
[30,] 32 235.3122 219.0983 256.0958 10.273185
[31,] 33 236.4081 221.9618 257.5468 10.528231
[32,] 34 237.0107 223.0025 253.8334  9.460398
[33,] 35 236.8786 222.2530 253.4946  9.262633
[34,] 36 236.6233 223.0696 254.2793  8.496782
[35,] 37 236.0124 223.9263 251.8931  8.121713
[36,] 38 236.1250 223.4082 252.0643  7.908177
[37,] 39 236.5839 224.1061 250.7979  7.249351
[38,] 40 237.0263 224.9062 250.3125  6.911123
[39,] 41 237.0698 225.6535 250.3881  6.799898
[40,] 42 236.9790 226.3669 249.2162  6.261920
[41,] 43 237.2999 228.3545 249.7360  5.873442
[42,] 44 236.7386 227.0561 248.7453  5.385509
[43,] 45 237.0167 227.7468 250.5073  5.304374
[44,] 46 236.9397 228.3009 248.5687  4.997460
[45,] 47 237.0969 229.4334 249.1601  4.777494
[46,] 48 236.8836 232.0803 249.3689  3.883288
[47,] 49 236.7236 233.3115 240.2413  2.406077
[48,] 50 236.3732 236.3732 236.3732  0.000000

attr(,"class")
[1] "summary.poolaccum"
                  1          2          3          4          5
S.obs     93.000000  84.000000  90.000000  94.000000 101.000000
S.chao1  117.473684 117.214286 141.230769 111.550000 136.000000
se.chao1  11.583785  15.918953  23.001405   8.919663  15.467344
S.ACE    122.848959 117.317307 134.669844 118.729941 137.114088
se.ACE     5.736054   5.571998   6.191618   5.367571   5.848474

vegan documentation built on May 2, 2019, 5:51 p.m.