Curvas de acumulación de especies

El objtivo es presentar de una forma rápida, como podemos ejecutar curvas de acumulación de especies a traves de R.

Cargando paquetes

library(BiodiversityR)
library(vegan)
library("DT") # Crea cuadros interactivos HTML 

Cargando bases de datos

data("BCI")
datatable(BCI) # Genera el cuadro interactio

Revisando datos

dim(BCI) #Denota la dimensión de los datos
## [1]  50 225
BCI[1:5,20:25]  #Me permite observar un conjunto selecciodo de los datos (filas y columnas)
##   Astronium.graveolens Attalea.butyracea Banara.guianensis
## 1                    6                 0                 0
## 2                    0                 1                 0
## 3                    1                 0                 0
## 4                    3                 0                 0
## 5                    0                 0                 0
##   Beilschmiedia.pendula Brosimum.alicastrum Brosimum.guianense
## 1                     4                   5                  0
## 2                     5                   2                  0
## 3                     7                   4                  0
## 4                     5                   3                  0
## 5                     8                   2                  0
BCI[1:10, 13]  #Me permite observar una especies de interés y todos los registros de interés
##  [1] 0 0 0 0 0 0 0 1 0 0
BCI[,13]  # Me permite observar una especie con todos sus registros.
##  [1] 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 2 0 0 2 0 2 1 1 0 0 2 0 0 0 0 0 0 0
## [36] 0 0 0 0 2 2 0 0 0 0 0 0 3 1 2
BCI$Apeiba.glabra  #Me brinda las observaciones de la especie de interés.
##  [1] 13 12  6  3  4 10  5  4  5  5  2  4  1  5  8  5  1  1 13  6  2  7  3
## [24]  6  6  4  2  6  5  5  5  4  8  3  5  3  4  1  3  7  2  5  2  7  1  0
## [47]  8  2  4  3
sum(BCI$Apeiba.glabra)  #Brinda una sumatoria total de todos los individuos registrados por muestra
## [1] 236

Ejectando las curvas de acumulación

curva <- specaccum(BCI)
## Warning in cor(x > 0): the standard deviation is zero
curva
## Species Accumulation Curve
## Accumulation method: exact
## Call: specaccum(comm = BCI) 
## 
##                                                                    
## Sites     1.00000   2.00000   3.00000   4.00000   5.00000   6.00000
## Richness 90.78000 121.60980 139.04587 150.71157 159.23634 165.83062
## sd        6.93481   7.19336   7.00199   6.63577   6.24812   5.89474
##                                                                     
## Sites      7.00000   8.00000   9.00000  10.00000  11.00000  12.00000
## Richness 171.14214 175.55318 179.30561 182.56044 185.42917 187.99142
## sd         5.59124   5.33703   5.12587   4.95014   4.80256   4.67674
##                                                                    
## Sites     13.00000  14.0000  15.00000  16.00000  17.00000  18.00000
## Richness 190.30560 192.4155 194.35454 196.14879 197.81879 199.38098
## sd         4.56741   4.4703   4.38202   4.29995   4.22206   4.14681
##                                                                     
## Sites     19.00000  20.00000  21.00000  22.00000  23.00000  24.00000
## Richness 200.84871 202.23287 203.54250 204.78512 205.96707 207.09370
## sd         4.07304   3.99989   3.92675   3.85313   3.77873   3.70328
##                                                                    
## Sites     25.00000  26.00000  27.00000  28.00000  29.00000  30.0000
## Richness 208.16959 209.19868 210.18438 211.12965 212.03708 212.9090
## sd         3.62663   3.54864   3.46921   3.38823   3.30563   3.2213
##                                                                     
## Sites     31.00000  32.00000  33.00000  34.00000  35.00000  36.00000
## Richness 213.74738 214.55410 215.33078 216.07889 216.79978 217.49467
## sd         3.13514   3.04702   2.95678   2.86426   2.76922   2.67142
##                                                                     
## Sites     37.00000  38.00000  39.00000  40.00000  41.00000  42.00000
## Richness 218.16469 218.81087 219.43418 220.03550 220.61567 221.17546
## sd         2.57053   2.46617   2.35786   2.24501   2.12687   2.00249
##                                                                    
## Sites     43.00000  44.00000  45.00000  46.00000  47.00000  48.0000
## Richness 221.71561 222.23680 222.73968 223.22488 223.69296 224.1445
## sd         1.87058   1.72938   1.57635   1.40765   1.21639   0.9916
##                       
## Sites     49.00000  50
## Richness 224.58000 225
## sd         0.69541   0
plot(curva)

### Modificando el plot de la curva

#Curva con intervalos de confianza en polígonos
plot(curva, ci.type="poly", col="blue", lwd=2, ci.lty=0, ci.col="grey90") 

Métodosde ajuste a las curvas de acumulación

#Ver la ayuda de la función "specaccum"
#Vamos a utilizar 100 permutacones para cada corrida
saco<-specaccum(BCI,method="collector",permutations=100)
saex<-specaccum(BCI,method="exact",permutations=100)
## Warning in cor(x > 0): the standard deviation is zero
saco<-specaccum(BCI,method="coleman",permutations=100)
sara<-specaccum(BCI,method="rarefaction",permutations=100)

La estimación de la riqueza funciona de la siguiente manera: collector: agrega sitios en el orden en que estos ocurren en los datos. exact: encuentra la riqueza media esperada. coleman: encuentra la riqueza esperada siguiendo la función de Coleman rarefaction: encuentra la media aaacumulada de individuos en lugar de sitios. random: estima la riqueza agregando sitios en orden aleatorio.

par(mfrow=c(2,2))
plot(saco,ci.type="line",ci.lty=2)
plot(saex,ci.type="line",ci.lty=2)
plot(saco,ci.type="line",ci.lty=2)
plot(sara,ci.type="line",ci.lty=2)

En algunas ocasiones queremos estimar la riqueza dada una covariables, por ejemplo tipo de de cobertura.

library(vegan)
data(dune.env) #Matriz ambiental
data(dune)# Matriz de especies
dune.env$site.totals <- apply(dune,1,sum) #Estima la sumatoria total de las muestras
Accum.1 <- accumresult(dune, y=dune.env, scale='site.totals', method='exact', conditioned=TRUE)
Accum.1
## Species Accumulation Curve
## Accumulation method: exact
## Call: specaccum(comm = x, method = method, permutations = permutations,      conditioned = conditioned, gamma = gamma) 
## 
##                                                                      
## Sites    34.2500 68.5000 102.7500 137.0000 171.2500 205.5000 239.7500
## Richness  9.8500 15.1105  18.5105  20.9375  22.7543  24.1496  25.2396
## sd        2.3511  1.8764   1.5723   1.4470   1.3902   1.3530   1.3165
##                                                                        
## Sites    274.0000 308.2500 342.5000 376.7500 411.0000 445.2500 479.5000
## Richness  26.1035  26.7982  27.3650  27.8340  28.2275  28.5620  28.8496
## sd         1.2749   1.2282   1.1763   1.1193   1.0565   0.9874   0.9116
##                                                          
## Sites    513.7500 548.0000 582.2500 616.5000 650.7500 685
## Richness  29.0996  29.3191  29.5140  29.6895  29.8500  30
## sd         0.8287   0.7381   0.6334   0.5140   0.3571   0
accumplot(Accum.1)

accumcomp(dune, y=dune.env, factor='Management', method='exact', legend=FALSE, conditioned=TRUE)

## , ,  = Sites
## 
##           obs
## Management 1 2 3  4  5  6
##         BF 1 2 3 NA NA NA
##         HF 1 2 3  4  5 NA
##         NM 1 2 3  4  5  6
##         SF 1 2 3  4  5  6
## 
## , ,  = Richness
## 
##           obs
## Management         1        2     3        4        5  6
##         BF 10.333333 14.33333 16.00       NA       NA NA
##         HF 12.600000 16.70000 19.10 20.40000 21.00000 NA
##         NM  8.000000 12.86667 16.20 18.46667 20.00000 21
##         SF  9.166667 13.60000 16.25 18.13333 19.66667 21
## 
## , ,  = sd
## 
##           obs
## Management         1         2        3        4        5  6
##         BF 1.2472191 0.4714045 0.000000       NA       NA NA
##         HF 1.0198039 1.3343708 1.732051 0.800000 0.000000 NA
##         NM 0.8164966 1.0011583 1.346070 1.642761 1.154701  0
##         SF 2.4094720 1.4282970 1.225156 1.231079 0.942809  0

En algunas ocasiones queremos comparar comunidades dos o mas comunidades. Recordar que para qee esta comparación sea valida debieron haberse muestreado con la misma metodología y al menos mismo esfuerzo de muestreo.

Para efectos demoostrativos se utilizarán las dos bases de datos, sin embargo estos datos no son camparables por lo iindicado anteriormente

sara<-specaccum(BCI, "rarefaction")
plot(sara)
sara2<-specaccum(dune, "rarefaction")
plot(sara2,add=TRUE, col="blue")