Introducción

Para este ejercicio vamos a analizar los datos del proyecto de biodiversidad en la playa norte (bahía de Seven Seas) de la Reserva Cabezas de San Juan, Fajardo: Datos de Biodiversidad de la Playa 2024.
Las muestras (n = 12) se tomaron a lo largo de la zona de eoleanita de la playa, separadas unos 10 m. Las unidades de muestreos fueron cuadrados de 0.5 m (0.25 \(m^2\)). Todos los organismos fueron contados (abundancia) o, en el caso de las algas, estimada su cobertura (en porciento).

FIGURA 1. Cuadrata en la playa de eoleanita en Seven Seas, Fajardo, Puerto Rico.

Cargar los datos de la playa

A continuación un ejemplo de lectura de los datos del archivo en formato csv.

# leer directamente datos de archivo .csv
playa <- read.csv("data/bidiversidad-playa-2024.csv", 
                  header = TRUE)

Cambiar datos NA por 0

En los datos originales tenemos espacios en blanco (NA) para cuando no se encontraron individuos de una especie; esto puede causar problemas en los análisis, así que vamos a cambiar esos NA por ceros (0).

# cambio de NA a 0
playa <- data.frame(lapply(playa, function(x) ifelse(is.na(x), 0, x)))

Paquetes necesarios para el análisis de biodiversidad

library(vegan)
library(BiodiversityR)
library(gt)

Indices de Biodiversidad por muestra

Calcular los índices de Shannon-Wiener (H), Simpson (D), riqueza de especies (S), y equidad (‘evenness’, J), en cada parcela (n = 12).

TABLA 1. Índices de diversidad y equidad de cada parcela en la playa de Seven Seas, Fajardo, Puerto Rico.

#usando vegan
H <- diversity(playa, index = "shannon")
D <- diversity(playa, index = "simpson")
S <- specnumber(playa)
J <- H/log(specnumber(playa))
indices <- data.frame(S,H,D,J)
gt(indices)
S H D J
4 1.0056233 0.5882639 0.7254038
5 1.1726364 0.6321459 0.7286000
5 1.4232347 0.7205556 0.8843054
7 1.5709574 0.7444116 0.8073124
9 1.8470561 0.8126562 0.8406314
8 1.6214078 0.7471384 0.7797323
8 1.5393773 0.7446709 0.7402840
7 1.4952026 0.6980591 0.7683821
7 1.1103749 0.5172151 0.5706198
4 0.4919953 0.2872900 0.3548996
6 1.0137089 0.4908649 0.5657617
5 1.2289814 0.6655772 0.7636091

Estadísticas básicas de los índices

A partir de los resultados anteriores (índices de diversidad y equidad, para cada muestra) puede obtener algunas estadísticas descriptivas, incluyendo parámetros estadísticos como media, mediana, desviación estándar, et c., para cada uno de ellos.

TABLA 2. Estadísticas básicas (media, varianza, máximo y mínimo) del índice de Shannon-Wiener (H) en la playa de Seven Seas, Fajardo, Puerto Rico.

med <- mean(H)
var <- var(H)
max <- max(H)
min <- min(H)
indxstatH <- data.frame(med,var,max,min)
gt(indxstatH)
med var max min
1.29338 0.1331611 1.847056 0.4919953

TABLA 3. Estadísticas básicas (media, varianza, máximo y mínimo) del índice de Simpson (D) en la playa de Seven Seas, Fajardo, Puerto Rico.

med <- mean(D)
var <- var(D)
max <- max(D)
min <- min(D)
indxstatD <- data.frame(med,var,max,min)
gt(indxstatD)
med var max min
0.6374041 0.02164 0.8126562 0.28729

TABLA 4. Estadísticas básicas (media, varianza, máximo y mínimo) del índice de equidad (J) en la playa de Seven Seas, Fajardo, Puerto Rico.

med <- mean(J)
var <- var(J)
max <- max(J)
min <- min(J)
indxstatJ <- data.frame(med,var,max,min)
gt(indxstatJ)
med var max min
0.7107951 0.02144384 0.8843054 0.3548996

Indices en conjunto (“pooled”)

Además de calcular los índices de diversidad para cada cuadrado, puedes calcular los índices tomando todos los datos en conjunto:

#índices de diversidad en conjunto con BiodiversityR
Sp <- diversityresult(playa, index=("richness"), method=("pooled"))
Hp <- diversityresult(playa, index=("Shannon"), method=("pooled"))
Dp <- diversityresult(playa, index=("Simpson"), method=("pooled"))
Jp <- diversityresult(playa, index=("Jevenness"), method=("pooled"))
indxpool <- data.frame(Sp[1,1],Hp[1,1],Dp[1,1],Jp[1,1])
gt(indxpool)
Sp.1..1. Hp.1..1. Dp.1..1. Jp.1..1.
17 1.7688121 0.72925652 0.62431306

Curvas de acumulación de especies

Podemos estudiar la acumulación de especies (nuevas) en relación al número de muestras, o al número de individuos seleccionados, en ambos casos, mediante un proceso ‘aleatorio’.

sac <- specaccum(playa, method = "collector") #ver vegan para opciones
plot(sac, ci.type="polygon", ci.col="yellow",
     xlab = "Parcelas", ylab = "N Especies")
text(10, 10, "(a)", cex = 1.0)

sac <- specaccum(playa, method = "exact")
plot(sac, ci.type="polygon", ci.col="green",
     xlab = "Parcelas", ylab = "N Especies")
text(10, 10, "(b)", cex = 1.0)

#por individuos
sac <- specaccum(playa, method = "rarefaction")
plot(sac, xvar = "individual", ci.type="polygon", ci.col="yellow",
     xlab = "Individuos", ylab = "N Especies")
text(2000, 10, "(c)", cex = 1.0)

FIGURA 2. Curvas de acumulación de especies en la playa de Seven Seas, Fajardo, Puerto Rico. (a) según el orden de muestreo, (b) con toma aleatoria de parcelas, y (c) con toma aleatoria de individuos.

Curvas abundancia vs rango

Otro aspecto importante en el análisis de la biodiversidad, es determinar como se distribuyen las especies, de acuerdo a su abundancia. Así podemos determinar especies dominantes, subdominantes, en crecimiento, especies raras, et c.

playa_df <- as.data.frame(playa) #para forzar al formato data frame
# usando BiodiversityR
RkAb <- rankabundance(playa_df)
head(RkAb,10)
##                    rank abundance proportion plower pupper accumfreq logabun
## Anemona01             1      1132       46.7   28.5   65.0      46.7     3.1
## Palisada_perforata    2       350       14.5    6.5   22.4      61.2     2.5
## Alga01                3       325       13.4    5.1   21.8      74.6     2.5
## Alga02                4       250       10.3    2.8   17.9      84.9     2.4
## Chaetomorpha_sp       5        85        3.5    0.3    6.7      88.4     1.9
## Valonia_sp            6        45        1.9   -0.6    4.3      90.3     1.7
## Nerita_tessellata     7        45        1.9    0.3    3.4      92.2     1.7
## Astraea_sp            8        38        1.6    0.2    3.0      93.7     1.6
## Coenobita_sp          9        29        1.2   -0.4    2.8      94.9     1.5
## Halimeda_sp          10        25        1.0   -1.3    3.4      96.0     1.4
##                    rankfreq
## Anemona01               5.9
## Palisada_perforata     11.8
## Alga01                 17.6
## Alga02                 23.5
## Chaetomorpha_sp        29.4
## Valonia_sp             35.3
## Nerita_tessellata      41.2
## Astraea_sp             47.1
## Coenobita_sp           52.9
## Halimeda_sp            58.8
rankabunplot(RkAb, scale='proportion', addit=FALSE, specnames=c(1,2,3))

FIGURA 3. Gráfica de rango-abundancia en la playa de Seven Seas, Fajardo, Puerto Rico.

APENDICE

Análisis de Biodiversidad 2023: Playa Seven Seas

Datos originales en GoogleSheets: Datos de Biodiversidad de la Playa 2024

Datos en formato .csv: Datos CSV

Código Rmd de este análisis: Análisis Biodiversidad 2024