La cuantificación o medición de la biodiversidad es un objetivo muy recurrente en estudios de ecología, monitoreo biológico y proyectos de gestión ambiental. Sin embargo, cuantificar la biodiversidad de un sitio puede llegar a ser muy difícil o casi imposible de lograr. Por lo tanto, la medida más simple y más utilizada para cuantificarla es la riqueza de especies (número de especies presentes en un conjunto) (Chao et al, 2014).
La riqueza de especies puede ser un índice problemático debido a la intensidad del muestreo y a la distribucion de la abundancia de las especies. Asimismo, es un índice muy sensitivo al tamaño de la muestra, ya que la mayoria de las especies pertenecientes a un ensamble son “raras” o poco detectables, provocando que la muestra sea incompleta. Por lo tanto, desde el punto de vista estadístico, la riqueza de especies es muy dificil de estimar con precisión a partir de una muestra finita (Carmona-Galindo y Carmona, 2013).
iNEXT es un paquete que permite estimar la diversidad de especies utilizando Hill numbers de orden q: riqueza de especies (q=0), diversidad de Shannon (q=1, la exponencial de la entropía de Shannon) y diversidad de Simpson (q=2, la inversa de la concentración de Simpson) (Espinosa, 2003). Para cada medida de diversidad, iNEXT utiliza la muestra observada de datos de abundancia o incidencia (presencia/ausencia) para calcular estimaciones de diversidad y los intervalos de confianza asociados del 95% (predeterminados), así como trazar 2 tipos de curvas de rarefacción y extrapolación ( R/E):
Basadas en el tamaño de la muestra: número de individuos en una #muestra / número de unidades de muestreo para datos de incidencia.
Basadas en cobertura de muestreo: traza las estimaciones de #diversidad con respecto a la cobertura de la muestra.
El paquete de Rstudio cuenta con 4 bases de datos:
spider (lista de dos vectores) → se corre con datatype =“abundance” bird
(formato data.frame) → se corre con datatype =“abundance” ant (lista de
5 vectores) → se corre con datatype =“incidence_freq” ciliates (lista de
3 matrices) → se corre con datatype =“incidence_raw”
La base de datos “ant” da la frecuencia de incidencia de especies de #hormigas en cinco elevaciones/conjuntos (Longino y Colwell 2011). La #unidad de muestreo es una parcela de suelo de bosque de 1m x 1m, para #las 5 elevaciones de: 50 m, 500 m, 1070 m, 1500 m y 2000 m. El número #de especies observadas en cada elevación fue de 227, 241, 122, 56 y 14 respectivamente.
data(ant)
str(ant)
## List of 5
## $ h50m : num [1:228] 599 330 263 236 222 195 186 183 182 129 ...
## $ h500m : num [1:242] 230 133 131 123 78 73 65 60 60 56 ...
## $ h1070m: num [1:123] 150 99 96 80 74 68 60 54 46 45 ...
## $ h1500m: num [1:57] 200 144 113 79 76 74 73 53 50 43 ...
## $ h2000m: num [1:15] 200 80 59 34 23 19 15 13 8 8 ...
La base de datos “spider” consiste en la abundancia de especies de arañas colectadas en dos tratamientos (“Girdled” y “Logged”). Para estos datos, el siguiente código muestra las abundancias de especies y ejecutan la función iNEXT() para q=0.
data(spider)
str(spider)
## List of 2
## $ Girdled: num [1:26] 46 22 17 15 15 9 8 6 6 4 ...
## $ Logged : num [1:37] 88 22 16 15 13 10 8 8 7 7 ...
iNEXT(spider, q=0, datatype="abundance")
## Compare 2 assemblages with Hill number order q = 0.
## $class: iNEXT
##
## $DataInfo: basic data information
## Assemblage n S.obs SC f1 f2 f3 f4 f5 f6 f7 f8 f9 f10
## 1 Girdled 168 26 0.9289 12 4 0 1 0 2 0 1 1 0
## 2 Logged 252 37 0.9446 14 4 4 3 1 0 3 2 0 1
##
## $iNextEst: diversity estimates with rarefied and extrapolated samples.
## $size_based (LCL and UCL are obtained for fixed size.)
##
## Assemblage m Method Order.q qD qD.LCL qD.UCL SC
## 1 Girdled 1 Rarefaction 0 1.00000 1.00000 1.00000 0.1223268
## 10 Girdled 84 Rarefaction 0 18.91236 15.93243 21.89229 0.8995141
## 20 Girdled 168 Observed 0 26.00000 20.71766 31.28234 0.9288554
## 30 Girdled 248 Extrapolation 0 30.88341 23.63653 38.13029 0.9482726
## 40 Girdled 336 Extrapolation 0 34.73073 25.30524 44.15622 0.9635701
## 41 Logged 1 Rarefaction 0 1.00000 1.00000 1.00000 0.1445014
## 50 Logged 126 Rarefaction 0 28.26751 23.91619 32.61883 0.9081562
## 60 Logged 252 Observed 0 37.00000 29.64290 44.35710 0.9445706
## 70 Logged 371 Extrapolation 0 42.78553 32.86719 52.70387 0.9577121
## 80 Logged 504 Extrapolation 0 47.64446 34.90913 60.37978 0.9687488
## SC.LCL SC.UCL
## 1 0.09020671 0.1544468
## 10 0.86651317 0.9325149
## 20 0.89863204 0.9590788
## 30 0.91625236 0.9802928
## 40 0.93183583 0.9953043
## 41 0.10286837 0.1861344
## 50 0.87760512 0.9387073
## 60 0.91692625 0.9722150
## 70 0.92980808 0.9856161
## 80 0.94237233 0.9951254
##
## NOTE: The above output only shows five estimates for each assemblage; call iNEXT.object$iNextEst$size_based to view complete output.
##
## $coverage_based (LCL and UCL are obtained for fixed coverage; interval length is wider due to varying size in bootstraps.)
##
## Assemblage SC m Method Order.q qD qD.LCL qD.UCL
## 1 Girdled 0.1223268 1 Rarefaction 0 1.00000 0.8487513 1.151249
## 10 Girdled 0.8995141 84 Rarefaction 0 18.91236 12.2757036 25.549019
## 20 Girdled 0.9288554 168 Observed 0 26.00000 11.7685296 40.231470
## 30 Girdled 0.9482726 248 Extrapolation 0 30.88341 10.6755162 51.091297
## 40 Girdled 0.9635701 336 Extrapolation 0 34.73073 9.2338469 60.227620
## 41 Logged 0.1445014 1 Rarefaction 0 1.00000 0.8958373 1.104163
## 50 Logged 0.9081562 126 Rarefaction 0 28.26751 18.3751759 38.159845
## 60 Logged 0.9445706 252 Observed 0 37.00000 18.8224097 55.177590
## 70 Logged 0.9577121 371 Extrapolation 0 42.78553 21.5259316 64.045125
## 80 Logged 0.9687488 504 Extrapolation 0 47.64446 23.8044498 71.484462
##
## NOTE: The above output only shows five estimates for each assemblage; call iNEXT.object$iNextEst$coverage_based to view complete output.
##
## $AsyEst: asymptotic diversity estimates along with related statistics.
## Assemblage Diversity Observed Estimator s.e. LCL
## 1 Girdled Species richness 26.000000 43.892857 22.9505873 26.000000
## 2 Girdled Shannon diversity 12.059650 13.826253 1.3459802 11.188181
## 3 Girdled Simpson diversity 7.840000 8.174825 0.8896440 6.431155
## 4 Logged Species richness 37.000000 61.402778 29.0957201 37.000000
## 5 Logged Shannon diversity 14.421002 16.337069 1.6408223 13.121116
## 6 Logged Simpson diversity 6.761499 6.920350 0.8630266 5.228849
## UCL
## 1 88.875182
## 2 16.464326
## 3 9.918495
## 4 118.429341
## 5 19.553021
## 6 8.611851
Este comando nos dice el número de especies obtenidas y esperadas si se sigue muestreando. (Para base de datos de abundancia).
ChaoRichness(spider$Logged, datatype = "abundance", conf = 0.95)
## Observed Estimator Est_s.e. 95% Lower 95% Upper
## 1 37 61.403 18.532 43.502 128.583
ChaoRichness(ant, datatype = "incidence_freq", conf = 0.95)
## Observed Estimator Est_s.e. 95% Lower 95% Upper
## h50m 227 279.109 19.794 252.374 334.009
## h500m 241 314.810 23.259 281.384 375.902
## h1070m 122 146.337 12.082 131.699 183.063
## h1500m 56 77.019 16.353 61.458 136.949
## h2000m 14 14.249 0.726 14.013 18.716
Los valores de diversidad de este índice van de 0.5 a 5, los valores más comunes son entre 2 y 3, siendo los menores de 2 poco diversos y mayores a 3 diversos.
ChaoShannon(spider, datatype = "abundance", transform = FALSE, conf = 0.95, B = 200)
## Observed Estimator Est_s.e 95% Lower 95% Upper
## Girdled 2.490 2.627 0.107 2.490 2.837
## Logged 2.669 2.793 0.096 2.669 2.981
ChaoShannon(ant, datatype = "incidence_freq", transform = FALSE, conf = 0.95, B = 200)
## Observed Estimator Est_s.e 95% Lower 95% Upper
## h50m 4.376 4.400 0.014 4.376 4.428
## h500m 4.622 4.678 0.019 4.641 4.716
## h1070m 4.085 4.128 0.023 4.085 4.173
## h1500m 3.283 3.315 0.029 3.283 3.372
## h2000m 2.067 2.092 0.058 2.067 2.206
Mientras el valor de diversidad de simpson sea más cerca a 1 significa que hay dominancia de una especie sobre las demás, si el número es más cercano a 0 significa que no hay dominancia y es más diverso el sitio.
ChaoSimpson(spider, datatype = "abundance", transform = FALSE, conf = 0.95, B = 200)
## Observed Estimator Est_s.e. 95% Lower 95% Upper
## Girdled 0.872 0.878 0.015 0.872 0.907
## Logged 0.852 0.855 0.017 0.852 0.890
ChaoSimpson(ant, datatype = "incidence_freq", transform = FALSE, conf = 0.95, B = 200)
## Observed Estimator Est_s.e. 95% Lower 95% Upper
## h50m 0.980 0.980 0.000 0.980 0.981
## h500m 0.984 0.985 0.000 0.984 0.986
## h1070m 0.976 0.976 0.001 0.976 0.978
## h1500m 0.947 0.947 0.002 0.947 0.950
## h2000m 0.830 0.832 0.011 0.830 0.854
Para tener un resumen de los datos en un datatype = “abundance”: “n” es el número de individuos observados o colectados; “s.obs” es el número de especies encontradas; estimación de cobertura de muestra para la muestra de referencia (SC); los primeros diez recuentos de frecuencia (f1‐f10).
DataInfo(spider, datatype="abundance")
## Assemblage n S.obs SC f1 f2 f3 f4 f5 f6 f7 f8 f9 f10
## 1 Girdled 168 26 0.9289 12 4 0 1 0 2 0 1 1 0
## 2 Logged 252 37 0.9446 14 4 4 3 1 0 3 2 0 1
Para tener un resumen de los datos en un datatype= “incidence_freq” or “incidence_raw”: tamaño de la muestra (T), riqueza de especies observada (S.obs), número total de incidencias (U), estimación de cobertura de la muestra para la muestra de referencia (SC) y los primeros diez recuentos de frecuencia de incidencia (Q1‐Q10.
DataInfo(ant, datatype="incidence_freq")
## Assemblage T U S.obs SC Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10
## 1 h50m 599 5976 227 0.9918 49 23 18 14 9 10 4 8 6 2
## 2 h500m 230 2943 241 0.9760 71 34 12 14 9 11 8 4 7 5
## 3 h1070m 150 1730 122 0.9839 28 16 13 3 1 3 6 1 1 1
## 4 h1500m 200 1170 56 0.9889 13 4 2 2 4 2 0 0 4 0
## 5 h2000m 200 271 14 0.9964 1 2 1 1 0 0 0 2 0 0
iNEXT(spider, q=0, datatype="incidence_freq", conf = 0.95)
## Compare 2 assemblages with Hill number order q = 0.
## $class: iNEXT
##
## $DataInfo: basic data information
## Assemblage T U S.obs SC Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10
## 1 Girdled 46 122 25 0.9031 12 4 0 1 0 2 0 1 1 0
## 2 Logged 88 164 36 0.9152 14 4 4 3 1 0 3 2 0 1
##
## $iNextEst: diversity estimates with rarefied and extrapolated samples.
## $size_based (LCL and UCL are obtained for fixed size.)
##
## Assemblage t Method Order.q qD qD.LCL qD.UCL SC
## 1 Girdled 1 Rarefaction 0 2.652174 2.236599 3.067749 0.2480874
## 10 Girdled 23 Rarefaction 0 17.943782 14.707632 21.179931 0.8635463
## 20 Girdled 46 Observed 0 25.000000 19.901171 30.098829 0.9030753
## 30 Girdled 68 Extrapolation 0 29.867282 23.482611 36.251952 0.9298666
## 40 Girdled 92 Extrapolation 0 33.656399 25.816548 41.496250 0.9507233
## 41 Logged 1 Rarefaction 0 1.863636 1.574013 2.153260 0.1040090
## 50 Logged 44 Rarefaction 0 27.302142 22.780518 31.823767 0.8604931
## 60 Logged 88 Observed 0 36.000000 29.095983 42.904017 0.9151912
## 70 Logged 130 Extrapolation 0 41.822811 32.715112 50.930510 0.9355790
## 80 Logged 176 Extrapolation 0 46.607061 34.770289 58.443833 0.9523305
## SC.LCL SC.UCL
## 1 0.19521840 0.3009565
## 10 0.82193241 0.9051603
## 20 0.86818361 0.9379669
## 30 0.89095166 0.9687815
## 40 0.91000682 0.9914397
## 41 0.07580217 0.1322158
## 50 0.81896135 0.9020248
## 60 0.87428234 0.9561000
## 70 0.89076831 0.9803897
## 80 0.90961185 0.9950491
##
## NOTE: The above output only shows five estimates for each assemblage; call iNEXT.object$iNextEst$size_based to view complete output.
##
## $coverage_based (LCL and UCL are obtained for fixed coverage; interval length is wider due to varying size in bootstraps.)
##
## Assemblage SC t Method Order.q qD qD.LCL qD.UCL
## 1 Girdled 0.2480914 1 Rarefaction 0 2.652214 2.290986 3.013441
## 10 Girdled 0.8635464 23 Rarefaction 0 17.943787 12.049828 23.837745
## 20 Girdled 0.9030753 46 Observed 0 25.000000 15.523441 34.476559
## 30 Girdled 0.9298666 68 Extrapolation 0 29.867282 14.702158 45.032406
## 40 Girdled 0.9507233 92 Extrapolation 0 33.656399 12.909276 54.403522
## 41 Logged 0.1040095 1 Rarefaction 0 1.863645 1.595575 2.131714
## 50 Logged 0.8604930 44 Rarefaction 0 27.302138 19.496860 35.107417
## 60 Logged 0.9151912 88 Observed 0 36.000000 18.698951 53.301049
## 70 Logged 0.9355790 130 Extrapolation 0 41.822811 20.236299 63.409323
## 80 Logged 0.9523305 176 Extrapolation 0 46.607061 21.514415 71.699706
##
## NOTE: The above output only shows five estimates for each assemblage; call iNEXT.object$iNextEst$coverage_based to view complete output.
##
## $AsyEst: asymptotic diversity estimates along with related statistics.
## Assemblage Diversity Observed Estimator s.e. LCL UCL
## 1 Girdled Species richness 25.00000 42.60870 20.556744 25.000000 82.89917
## 2 Girdled Shannon diversity 13.74017 16.39728 1.858396 12.754886 20.03967
## 3 Girdled Simpson diversity 10.02965 10.69048 1.037542 8.656934 12.72403
## 4 Logged Species richness 36.00000 60.22159 24.809748 36.000000 108.84780
## 5 Logged Shannon diversity 22.34412 26.90553 2.779228 21.458348 32.35272
## 6 Logged Simpson diversity 16.32039 17.91803 1.939629 14.116431 21.71964
$DataInfo $iNextEst para mostrar estimaciones de diversidad basadas en tamaño y cobertura junto con estadísticas relacionadas para una serie de muestras enrarecidas y extrapoladas (datos que se utilizan para la graficación). $AsyEst para mostrar estimaciones de diversidad asintótica junto con estadísticas relacionadas.
Ya vimos los resultados que da.
En la lista de $iNextEst se dan dos resultados:
#ggiNEXT(x, type=1, se=TRUE, facet.var=“None”, color.var=“Assemblage”, grey=FALSE)
Los tipos son dependiendo de los resultados que necesitemos: 1 = para diversidad vs número de individuos, 2 = cobertura vs número de individuos, 3 = diversidad vs cobertura. Con intervalos de confianza = True. El facet.var nos dice como agrupar los plots, si hacer solo 1, separarlo por ensamblaje, etc. El color.var nos dice qué color deseamos para la curva de resultados, puede variar entre los sitios, pero mejor dejarlas del mismo color #El grey = FALSE evita que se ponga el gráfico en escala de grises, está por defecto.
library(ggplot2)
library(gridExtra)
library(grid)
La base de datos “bird” contiene la abundancia de especies de aves en dos sitios (Norte y Sur) del Barrington Tops National Park, Australia (Chao et al. 2015).
data(bird)
str(bird)
## 'data.frame': 41 obs. of 2 variables:
## $ North.site: int 0 0 41 0 3 1 5 4 4 11 ...
## $ South.site: int 3 18 31 2 1 2 5 1 6 32 ...
ausbird <- iNEXT(bird, q=c(0, 1, 2), datatype="abundance", endpoint = 500)
Diversidad vs número de individuos:
ausbird.ggp1 <- ggiNEXT(ausbird, type=1, facet.var="Assemblage", color.var = "Assemblage")
ausbird.ggp1 + theme_classic() + theme(legend.position = "right", legend.box = "vertical")
ausbird.ggp1 + theme_classic() + theme(legend.position = "bottom", legend.box = "horizontal")
Para comprobar que los datos del plot coinciden con nuestros índices:
ChaoRichness(bird, datatype = "abundance", conf = 0.95)
## Observed Estimator Est_s.e. 95% Lower 95% Upper
## North.site 27 31.478 4.781 27.810 51.746
## South.site 38 40.077 2.499 38.325 51.267
ChaoShannon(bird, datatype = "abundance", transform = TRUE, conf = 0.95, B = 200)
## Observed Estimator Est_s.e 95% Lower 95% Upper
## North.site 16.536 17.966 1.273 16.536 20.462
## South.site 25.447 27.251 1.381 25.447 29.958
ChaoSimpson(bird, datatype = "abundance", transform = TRUE, conf = 0.95, B = 200)
## Observed Estimator Est_s.e. 95% Lower 95% Upper
## North.site 11.848 12.524 1.368 11.848 15.205
## South.site 19.639 20.913 1.398 19.639 23.654
Cobertura vs número de individuos:
ausbird.ggp2 <- ggiNEXT(ausbird, type=2, facet.var="Assemblage", color.var = "Assemblage")
ausbird.ggp2 + theme_classic() + theme(legend.position = "right", legend.box = "vertical")
ausbird.ggp2 + theme_classic() + theme(legend.position = "bottom", legend.box = "horizontal")
Diversidad vs. cobertura:
ausbird.ggp3 <- ggiNEXT(ausbird, type=3, facet.var="Assemblage", color.var = "Assemblage")
ausbird.ggp3 + theme_classic() + theme(legend.position = "right", legend.box = "vertical")
ausbird.ggp3 + theme_classic() + theme(legend.position = "bottom", legend.box = "horizontal")
Rarefacción: método que se utiliza para comparar índices de diversidad entre sitios en base a un mismo número de individuos. El sitio con mayor numero de individuos se submuestrea sin reemplazo aleatoriamente con múltiples ejecuciones para generar un índice promedio que se puede comparar con el índice de otro sitio en base a un mismo número de individuos (Carmona-Galindo y Carmona, 2013).
Interpolación: método en el que se utilizan valores conocidos para estimar un valor desconocido (Carmona-Galindo y Carmona, 2013).
Extrapolación: proceso de estimar más allá del intervalo de observación original el valor de la variable,con base en su relación con otra variable. Está sujeta a un grado alto de incertidumbre y riesgo de producir resultados no significativos (Carmona-Galindo y Carmona, 2013).
Abundancia: representación relativa de una especie en un sitio específico.Se mide como el número de individuos encontrados en una muestra (Chao et al. 2014).
Incidencia: número de eventos en el cual aparece una especie en un período determinado (Chao et al. 2014).
Hill numbers: también llamado número efectivo de especies. Se utilizan para caracterizar la diversidad taxonómica, filogenética o funcional de una comunidad o sitio. Las estimaciones empíricas de los Hill numbers (incluída la riqueza de especies) tienden a ser una función del esfuerzo de muestreo y, por lo tanto, tienden a aumentar a medida que la muestra se completa (Chao et al. 2014).
Chao, A. (08 de noviembre de 2023). iNEXT. Anne Chao’s Website. http://chao.stat.nthu.edu.tw/wordpress/software_download/inext-online/
Chao, A., Gotelli, N. J., Hsieh, T. C., Sander, E. L., Ma, K. H., Colwell, R. K., & Ellison, A. M. (2014). Rarefaction and extrapolation with Hill numbers: a framework for sampling and estimation in species diversity studies. Ecological monographs, 84(1), 45-67.
Escalante, T. (2003). ¿ Cuántas especies hay? Los estimadores no paramétricos de Chao. Elementos 52: 53–56.
Hsieh, T.C., Ma, K.H. & Chao, A. (2016) iNEXT: An R package for interpolation and extrapolation of species diversity (Hill numbers). Methods in Ecology and Evolution, 7, 1451-1456.
Carmona-Galindo, V.D., & Carmona, T.V. (2013). La Diversidad de los Analisis de Diversidad. Bioma, 14, 20-28.
Manual disponible en Rpubs: