Contextualización

Datos de la tesis doctoral de Verneaux (1973)

Verneaux, J. (1973) Cours d’eau de Franche-Comté (Massif du Jura). Recherches écologiques sur le réseau hydrographique du Doubs. Essai de biotypologie. Thèse d’état, Besançon. 1–257

La tesis propone el uso de las especies de peces para caracterizar las zonas ecológicas a lo largo de rios y quebradas de Europa. Él mostró que las comunidades de peses son buenos indicadores biológicos para estos cuerpos de agua. A partir del nacimiento propuso una topología en cuatro zonas, y las designó de acuerdo a las características de las especies como:

Las condiciones ecológicas correspondientes, con mucha variación entre los rios, varía desde agua relativamente pristinas, bien oxigendadas y oligotróficas hasta eutróficas y sin oxígeno.

Los datos se tomaron en 30 lugares a lo largo del río Doubs. Este río corre cerca de la frontera franco-suiza al borde del macizo del Jura.

Listado de las bases de datos.

Lectura de las bases de datos

ambient<-read.csv2("ambientales.csv",enc="latin1",row.names=1)
peces<-read.csv2("peces.csv",enc="latin1",row.names=1)
locs<-read.csv2("localidades.csv",enc="latin1",row.names=1)
nomEspec<-read.csv2("nombresdeespecies.csv",enc="latin1")
nomVarAmbient<-read.csv2("Nombresdevariablesambientales.csv",enc="latin1")

Análisis descriptivo univariado

Abundancia de peces.

Despliegue de la base de datos. (Este procedimiento no es recomendado para grandes base de datos.)

peces
##    Cogo Satr Phph Neba Thth Teso Chna Chto Lele Lece Baba Spbi Gogo Eslu
## 1     0    3    0    0    0    0    0    0    0    0    0    0    0    0
## 2     0    5    4    3    0    0    0    0    0    0    0    0    0    0
## 3     0    5    5    5    0    0    0    0    0    0    0    0    0    1
## 4     0    4    5    5    0    0    0    0    0    1    0    0    1    2
## 5     0    2    3    2    0    0    0    0    5    2    0    0    2    4
## 6     0    3    4    5    0    0    0    0    1    2    0    0    1    1
## 7     0    5    4    5    0    0    0    0    1    1    0    0    0    0
## 8     0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 9     0    0    1    3    0    0    0    0    0    5    0    0    0    0
## 10    0    1    4    4    0    0    0    0    2    2    0    0    1    0
## 11    1    3    4    1    1    0    0    0    0    1    0    0    0    0
## 12    2    5    4    4    2    0    0    0    0    1    0    0    0    0
## 13    2    5    5    2    3    2    0    0    0    0    0    0    0    0
## 14    3    5    5    4    4    3    0    0    0    1    1    0    1    1
## 15    3    4    4    5    2    4    0    0    3    3    2    0    2    0
## 16    2    3    3    5    0    5    0    4    5    2    2    1    2    1
## 17    1    2    4    4    1    2    1    4    3    2    3    4    1    1
## 18    1    1    3    3    1    1    1    3    2    3    3    3    2    1
## 19    0    0    3    5    0    1    2    3    2    1    2    2    4    1
## 20    0    0    1    2    0    0    2    2    2    3    4    3    4    2
## 21    0    0    1    1    0    0    2    2    2    2    4    2    5    3
## 22    0    0    0    1    0    0    3    2    3    4    5    1    5    3
## 23    0    0    0    0    0    0    0    0    0    1    0    0    0    0
## 24    0    0    0    0    0    0    1    0    0    2    0    0    1    0
## 25    0    0    0    0    0    0    0    0    1    1    0    0    2    1
## 26    0    0    0    1    0    0    1    0    1    2    2    1    3    2
## 27    0    0    0    1    0    0    1    1    2    3    4    1    4    4
## 28    0    0    0    1    0    0    1    1    2    4    3    1    4    3
## 29    0    1    1    1    1    1    2    2    3    4    5    3    5    5
## 30    0    0    0    0    0    0    1    2    3    3    3    5    5    4
##    Pefl Rham Legi Scer Cyca Titi Abbr Icme Acce Ruru Blbj Alal Anan
## 1     0    0    0    0    0    0    0    0    0    0    0    0    0
## 2     0    0    0    0    0    0    0    0    0    0    0    0    0
## 3     0    0    0    0    0    0    0    0    0    0    0    0    0
## 4     2    0    0    0    0    1    0    0    0    0    0    0    0
## 5     4    0    0    2    0    3    0    0    0    5    0    0    0
## 6     1    0    0    0    0    2    0    0    0    1    0    0    0
## 7     0    0    0    0    0    0    0    0    0    0    0    0    0
## 8     0    0    0    0    0    0    0    0    0    0    0    0    0
## 9     0    0    0    0    0    1    0    0    0    4    0    0    0
## 10    0    0    0    0    0    0    0    0    0    0    0    0    0
## 11    0    0    0    0    0    0    0    0    0    0    0    0    0
## 12    0    0    0    0    0    0    0    0    0    0    0    0    0
## 13    0    0    0    0    0    0    0    0    0    0    0    0    0
## 14    0    0    0    0    0    0    0    0    0    0    0    0    0
## 15    0    0    0    0    0    1    0    0    0    0    0    0    0
## 16    1    0    1    0    1    1    0    0    0    1    0    0    0
## 17    2    1    1    0    1    1    0    0    0    2    0    2    1
## 18    3    2    1    0    1    1    0    0    1    2    0    2    1
## 19    1    2    1    1    1    2    1    0    1    5    1    3    1
## 20    2    3    2    2    1    4    1    0    2    5    2    5    2
## 21    3    3    2    2    2    4    3    1    3    5    3    5    2
## 22    4    3    3    2    3    4    4    2    4    5    4    5    2
## 23    0    0    0    0    0    0    0    0    0    1    0    2    0
## 24    0    0    1    0    0    0    0    0    2    2    1    5    0
## 25    0    0    0    1    0    0    0    0    1    1    0    3    0
## 26    1    2    2    1    1    3    2    1    4    4    2    5    2
## 27    1    3    3    1    2    5    3    2    5    5    4    5    3
## 28    2    4    4    2    4    4    3    3    5    5    5    5    4
## 29    4    5    5    2    3    3    4    4    5    5    4    5    4
## 30    5    5    3    5    5    5    5    5    5    5    5    5    5

Resumen de la base de datos de peces

summary(peces)
##       Cogo           Satr           Phph            Neba      
##  Min.   :0.00   Min.   :0.00   Min.   :0.000   Min.   :0.000  
##  1st Qu.:0.00   1st Qu.:0.00   1st Qu.:0.000   1st Qu.:1.000  
##  Median :0.00   Median :1.00   Median :3.000   Median :2.000  
##  Mean   :0.50   Mean   :1.90   Mean   :2.267   Mean   :2.433  
##  3rd Qu.:0.75   3rd Qu.:3.75   3rd Qu.:4.000   3rd Qu.:4.000  
##  Max.   :3.00   Max.   :5.00   Max.   :5.000   Max.   :5.000  
##       Thth           Teso             Chna          Chto       
##  Min.   :0.00   Min.   :0.0000   Min.   :0.0   Min.   :0.0000  
##  1st Qu.:0.00   1st Qu.:0.0000   1st Qu.:0.0   1st Qu.:0.0000  
##  Median :0.00   Median :0.0000   Median :0.0   Median :0.0000  
##  Mean   :0.50   Mean   :0.6333   Mean   :0.6   Mean   :0.8667  
##  3rd Qu.:0.75   3rd Qu.:0.7500   3rd Qu.:1.0   3rd Qu.:2.0000  
##  Max.   :4.00   Max.   :5.0000   Max.   :3.0   Max.   :4.0000  
##       Lele            Lece            Baba            Spbi    
##  Min.   :0.000   Min.   :0.000   Min.   :0.000   Min.   :0.0  
##  1st Qu.:0.000   1st Qu.:1.000   1st Qu.:0.000   1st Qu.:0.0  
##  Median :1.000   Median :2.000   Median :0.000   Median :0.0  
##  Mean   :1.433   Mean   :1.867   Mean   :1.433   Mean   :0.9  
##  3rd Qu.:2.000   3rd Qu.:3.000   3rd Qu.:3.000   3rd Qu.:1.0  
##  Max.   :5.000   Max.   :5.000   Max.   :5.000   Max.   :5.0  
##       Gogo            Eslu            Pefl          Rham    
##  Min.   :0.000   Min.   :0.000   Min.   :0.0   Min.   :0.0  
##  1st Qu.:0.000   1st Qu.:0.000   1st Qu.:0.0   1st Qu.:0.0  
##  Median :1.000   Median :1.000   Median :0.5   Median :0.0  
##  Mean   :1.833   Mean   :1.333   Mean   :1.2   Mean   :1.1  
##  3rd Qu.:3.750   3rd Qu.:2.000   3rd Qu.:2.0   3rd Qu.:2.0  
##  Max.   :5.000   Max.   :5.000   Max.   :5.0   Max.   :5.0  
##       Legi             Scer          Cyca             Titi    
##  Min.   :0.0000   Min.   :0.0   Min.   :0.0000   Min.   :0.0  
##  1st Qu.:0.0000   1st Qu.:0.0   1st Qu.:0.0000   1st Qu.:0.0  
##  Median :0.0000   Median :0.0   Median :0.0000   Median :1.0  
##  Mean   :0.9667   Mean   :0.7   Mean   :0.8333   Mean   :1.5  
##  3rd Qu.:1.7500   3rd Qu.:1.0   3rd Qu.:1.0000   3rd Qu.:3.0  
##  Max.   :5.0000   Max.   :5.0   Max.   :5.0000   Max.   :5.0  
##       Abbr             Icme          Acce            Ruru    
##  Min.   :0.0000   Min.   :0.0   Min.   :0.000   Min.   :0.0  
##  1st Qu.:0.0000   1st Qu.:0.0   1st Qu.:0.000   1st Qu.:0.0  
##  Median :0.0000   Median :0.0   Median :0.000   Median :1.0  
##  Mean   :0.8667   Mean   :0.6   Mean   :1.267   Mean   :2.1  
##  3rd Qu.:1.0000   3rd Qu.:0.0   3rd Qu.:2.000   3rd Qu.:5.0  
##  Max.   :5.0000   Max.   :5.0   Max.   :5.000   Max.   :5.0  
##       Blbj            Alal          Anan     
##  Min.   :0.000   Min.   :0.0   Min.   :0.00  
##  1st Qu.:0.000   1st Qu.:0.0   1st Qu.:0.00  
##  Median :0.000   Median :0.0   Median :0.00  
##  Mean   :1.033   Mean   :1.9   Mean   :0.90  
##  3rd Qu.:1.750   3rd Qu.:5.0   3rd Qu.:1.75  
##  Max.   :5.000   Max.   :5.0   Max.   :5.00

Conteo de los casos para cada clase de abundancia

(ab <- table(unlist(peces)))
## 
##   0   1   2   3   4   5 
## 435 108  87  62  54  64
ab <- data.frame(ab)
names(ab) <- c("Caso","Frecuencia")

Diagrama de barras de los conteos de abundancia

require(ggplot2)
## Loading required package: ggplot2
barras <- ggplot(data.frame(ab), aes(Caso,Frecuencia))
barras + geom_bar(stat = "identity") +
   ggtitle("Distribución de abundancia de clases") +
   xlab("Clase de abundancia")+
   ylab("Frecuencia")

Mapa de localizaciones

require(ggplot2)
mapa <- ggplot(locs, aes(x, y))
mapa + geom_point() + 
       coord_fixed() +
       geom_path(col = "blue") +
       geom_text(label = row.names(locs), hjust = 1.5) +
       geom_text(data = NULL, x=50, y = 10, label = "Nacimiento") +
       geom_text(data = NULL, x=30, y = 120, label = "Desembocadura") +
       ggtitle("Localización")

Gráfica de cuatro especies

seleccion1 <- subset(peces, select = c(Satr, Thth, Baba, Abbr))
seleccion1 <- data.frame(locs, seleccion1)
require(reshape2)
## Loading required package: reshape2
seleccion2 <- melt(seleccion1, id.vars = c("x","y"), variable.name = "especie",
     value.name = "abundancia")
seleccion2$especie2 <- factor(seleccion2$especie,
                             labels = c("Trucha parda",
                             "Tímalo", "Barbo", "Brema comúm"))

require(ggplot2)
especs <- ggplot(seleccion2, aes(x, y, size = abundancia))
especs + geom_point() + 
         coord_fixed() +
         facet_wrap( ~ especie2, ncol = 2) +
         scale_size_continuous(range = c(3,7)) +
         ggtitle("Abundancia de cuatro especies")

seleccion3 <- merge(seleccion2, nomEspec, by.x = "especie", by.y = "code")

require(ggplot2)
especs <- ggplot(seleccion3, aes(x, y, size = abundancia))
especs + geom_point() + 
         coord_fixed() +
         facet_wrap( ~ Scientific, ncol = 2) +
         scale_size_continuous(range = c(3,7)) +
         ggtitle("Abundancia de cuatro especies")

Comparación de especies

# Calcular el número de sitios donde cada especie está presente.
# Para sumar por columnas, el segundo argumento de la
# función apply() se establece en 2.
peces.pres <- apply(peces > 0, 2, sum)
# Ordenar el resultado en orden creciente
sort(peces.pres)
## Icme Cogo Thth Teso Abbr Blbj Chto Rham Scer Anan Chna Spbi Cyca Acce Legi 
##    7    8    8    8    9   10   11   11   11   11   12   12   12   12   13 
## Baba Alal Pefl Satr Titi Lele Eslu Ruru Phph Gogo Neba Lece 
##   14   14   15   17   17   18   18   18   20   20   24   25
# Calcular las frecuencias en porcentajes
peces.fRel <- 100*peces.pres/nrow(peces)
# Ordenar y redondear el resultado a un dígito
round(sort(peces.fRel), 1)
## Icme Cogo Thth Teso Abbr Blbj Chto Rham Scer Anan Chna Spbi Cyca Acce Legi 
## 23.3 26.7 26.7 26.7 30.0 33.3 36.7 36.7 36.7 36.7 40.0 40.0 40.0 40.0 43.3 
## Baba Alal Pefl Satr Titi Lele Eslu Ruru Phph Gogo Neba Lece 
## 46.7 46.7 50.0 56.7 56.7 60.0 60.0 60.0 66.7 66.7 80.0 83.3
# Convertir a base de datos
peces.fRel <- data.frame(distribucion = round(sort(peces.fRel), 1))

Gráfica de presencia de distribución (dispersión) de especies.

require(ggplot2)
hist1 <- ggplot(peces.fRel, aes(distribucion))
hist1 + geom_histogram(binwidth = 5) +
        ggtitle("Ocurrencias de especies") +
        xlab("Porcentaje  de ocurrencia (%)") +
        ylab("Número de especies")

Riqueza de especies por sitio

# Cálculo del número de especies por sitio
# Para sumar por filas el segundo argumento de apply() se establece en 1
sit.pres <- apply(peces > 0, 1, sum)
# Ordenación de los resultados en orden creciente
sort(sit.pres)
##  8  1  2 23  3  7  9 10 11 12 13  4 24 25  6 14  5 15 16 26 30 17 20 22 27 
##  0  1  3  3  4  5  5  6  6  6  6  8  8  8 10 10 11 11 17 21 21 22 22 22 22 
## 28 18 19 21 29 
## 22 23 23 23 26

Ejercicio: Consturir el mapa de riqueza.