getwd()
## [1] "C:/Users/Claudia Gomez/OneDrive - Universidad Nacional de Costa Rica/ecocuantitativa/claudia_gomez"
library(vegan)
## Loading required package: permute
## Loading required package: lattice
## This is vegan 2.6-4
library(ggplot2)
library(fdth)
##
## Attaching package: 'fdth'
## The following objects are masked from 'package:stats':
##
## sd, var
#Funciones Basicas
data("varespec")
data("varechem")
summary(varespec)
## Callvulg Empenigr Rhodtome Vaccmyrt
## Min. : 0.000 Min. : 0.130 Min. :0.0000 Min. : 0.000
## 1st Qu.: 0.000 1st Qu.: 1.833 1st Qu.:0.0000 1st Qu.: 0.000
## Median : 0.075 Median : 5.700 Median :0.0000 Median : 0.000
## Mean : 1.878 Mean : 6.333 Mean :0.3496 Mean : 2.113
## 3rd Qu.: 1.095 3rd Qu.: 9.725 3rd Qu.:0.0000 3rd Qu.: 0.800
## Max. :24.130 Max. :16.000 Max. :4.0000 Max. :18.270
## Vaccviti Pinusylv Descflex Betupube
## Min. : 1.980 Min. :0.0000 Min. :0.0000 Min. :0.00000
## 1st Qu.: 6.673 1st Qu.:0.0300 1st Qu.:0.0000 1st Qu.:0.00000
## Median :11.250 Median :0.1000 Median :0.0000 Median :0.00000
## Mean :11.460 Mean :0.1713 Mean :0.2333 Mean :0.01208
## 3rd Qu.:14.547 3rd Qu.:0.1525 3rd Qu.:0.0500 3rd Qu.:0.00000
## Max. :25.000 Max. :1.2000 Max. :3.7000 Max. :0.25000
## Vacculig Diphcomp Dicrsp Dicrfusc
## Min. :0.0000 Min. :0.0000 Min. : 0.0000 Min. : 0.000
## 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.: 0.0000 1st Qu.: 0.250
## Median :0.0000 Median :0.0000 Median : 0.0000 Median : 0.535
## Mean :0.6342 Mean :0.1350 Mean : 1.6875 Mean : 4.730
## 3rd Qu.:0.2675 3rd Qu.:0.0175 3rd Qu.: 0.2625 3rd Qu.: 3.473
## Max. :8.1000 Max. :2.0700 Max. :23.4300 Max. :37.070
## Dicrpoly Hylosple Pleuschr Polypili
## Min. :0.0000 Min. :0.0000 Min. : 0.030 Min. :0.00000
## 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.: 1.335 1st Qu.:0.00000
## Median :0.0200 Median :0.0000 Median : 6.875 Median :0.00000
## Mean :0.2525 Mean :0.7517 Mean :15.749 Mean :0.02542
## 3rd Qu.:0.2075 3rd Qu.:0.0000 3rd Qu.:22.367 3rd Qu.:0.02000
## Max. :3.0000 Max. :9.9700 Max. :70.030 Max. :0.25000
## Polyjuni Polycomm Pohlnuta Ptilcili
## Min. :0.0000 Min. :0.00000 Min. :0.0000 Min. : 0.0000
## 1st Qu.:0.0275 1st Qu.:0.00000 1st Qu.:0.0300 1st Qu.: 0.0000
## Median :0.1800 Median :0.00000 Median :0.0700 Median : 0.0300
## Mean :0.5771 Mean :0.02958 Mean :0.1092 Mean : 0.5837
## 3rd Qu.:0.2500 3rd Qu.:0.00000 3rd Qu.:0.1900 3rd Qu.: 0.2275
## Max. :6.9800 Max. :0.25000 Max. :0.3200 Max. :10.0000
## Barbhatc Cladarbu Cladrang Cladstel
## Min. :0.0000 Min. : 0.17 Min. : 0.870 Min. : 0.0000
## 1st Qu.:0.0000 1st Qu.: 3.04 1st Qu.: 4.888 1st Qu.: 0.1075
## Median :0.0000 Median : 7.18 Median :10.220 Median : 3.0250
## Mean :0.1329 Mean :10.63 Mean :16.196 Mean :20.2796
## 3rd Qu.:0.0000 3rd Qu.:16.16 3rd Qu.:23.878 3rd Qu.:29.1000
## Max. :3.0000 Max. :39.00 Max. :59.000 Max. :84.3000
## Cladunci Cladcocc Cladcorn Cladgrac
## Min. : 0.050 Min. :0.0000 Min. :0.0300 Min. :0.0000
## 1st Qu.: 0.250 1st Qu.:0.0275 1st Qu.:0.1275 1st Qu.:0.1650
## Median : 0.730 Median :0.1100 Median :0.2150 Median :0.2300
## Mean : 2.345 Mean :0.1163 Mean :0.2592 Mean :0.2142
## 3rd Qu.: 2.417 3rd Qu.:0.1800 3rd Qu.:0.2500 3rd Qu.:0.2500
## Max. :23.680 Max. :0.2500 Max. :1.4200 Max. :0.5000
## Cladfimb Cladcris Cladchlo Cladbotr
## Min. :0.000 Min. :0.0200 Min. :0.00000 Min. :0.00000
## 1st Qu.:0.100 1st Qu.:0.0700 1st Qu.:0.00000 1st Qu.:0.00000
## Median :0.180 Median :0.1850 Median :0.01000 Median :0.00000
## Mean :0.165 Mean :0.3113 Mean :0.04833 Mean :0.01958
## 3rd Qu.:0.250 3rd Qu.:0.2500 3rd Qu.:0.05000 3rd Qu.:0.02000
## Max. :0.250 Max. :1.7800 Max. :0.25000 Max. :0.25000
## Cladamau Cladsp Cetreric Cetrisla
## Min. :0.000000 Min. :0.00000 Min. :0.0000 Min. :0.00000
## 1st Qu.:0.000000 1st Qu.:0.00000 1st Qu.:0.0000 1st Qu.:0.00000
## Median :0.000000 Median :0.00000 Median :0.0500 Median :0.02000
## Mean :0.005833 Mean :0.02167 Mean :0.1500 Mean :0.08458
## 3rd Qu.:0.000000 3rd Qu.:0.02000 3rd Qu.:0.1975 3rd Qu.:0.09000
## Max. :0.080000 Max. :0.25000 Max. :0.7800 Max. :0.67000
## Flavniva Nepharct Stersp Peltapht
## Min. : 0.0000 Min. :0.0000 Min. : 0.0000 Min. :0.00000
## 1st Qu.: 0.0000 1st Qu.:0.0000 1st Qu.: 0.0000 1st Qu.:0.00000
## Median : 0.0000 Median :0.0000 Median : 0.0650 Median :0.00000
## Mean : 0.4938 Mean :0.2192 Mean : 0.7300 Mean :0.03167
## 3rd Qu.: 0.1275 3rd Qu.:0.0000 3rd Qu.: 0.6775 3rd Qu.:0.00500
## Max. :10.0300 Max. :4.8700 Max. :10.2800 Max. :0.33000
## Icmaeric Cladcerv Claddefo Cladphyl
## Min. :0.000000 Min. :0.000000 Min. :0.0000 Min. :0.00000
## 1st Qu.:0.000000 1st Qu.:0.000000 1st Qu.:0.0950 1st Qu.:0.00000
## Median :0.000000 Median :0.000000 Median :0.2500 Median :0.00000
## Mean :0.009167 Mean :0.004167 Mean :0.4263 Mean :0.03333
## 3rd Qu.:0.000000 3rd Qu.:0.000000 3rd Qu.:0.4175 3rd Qu.:0.00000
## Max. :0.100000 Max. :0.050000 Max. :1.9700 Max. :0.25000
summary(varechem)
## N P K Ca
## Min. :13.40 Min. :22.70 Min. : 43.6 Min. : 188.5
## 1st Qu.:18.82 1st Qu.:32.60 1st Qu.:127.2 1st Qu.: 425.7
## Median :22.05 Median :41.50 Median :166.6 Median : 518.5
## Mean :22.38 Mean :45.08 Mean :162.9 Mean : 569.7
## 3rd Qu.:26.30 3rd Qu.:57.05 3rd Qu.:205.8 3rd Qu.: 739.2
## Max. :33.10 Max. :73.50 Max. :313.8 Max. :1169.7
## Mg S Al Fe
## Min. : 25.70 Min. :14.90 Min. : 12.1 Min. : 2.300
## 1st Qu.: 60.90 1st Qu.:29.43 1st Qu.: 38.2 1st Qu.: 5.575
## Median : 75.05 Median :36.25 Median :106.8 Median : 27.800
## Mean : 87.46 Mean :37.19 Mean :142.5 Mean : 49.612
## 3rd Qu.:108.70 3rd Qu.:43.60 3rd Qu.:233.7 3rd Qu.: 85.150
## Max. :209.10 Max. :60.20 Max. :435.1 Max. :204.400
## Mn Zn Mo Baresoil
## Min. : 10.10 Min. : 2.600 Min. :0.0500 Min. : 0.010
## 1st Qu.: 26.70 1st Qu.: 5.375 1st Qu.:0.2750 1st Qu.: 7.975
## Median : 36.55 Median : 8.100 Median :0.3000 Median :21.250
## Mean : 49.33 Mean : 7.596 Mean :0.3958 Mean :22.949
## 3rd Qu.: 59.00 3rd Qu.: 9.100 3rd Qu.:0.5000 3rd Qu.:30.750
## Max. :132.00 Max. :16.800 Max. :1.1000 Max. :56.900
## Humdepth pH
## Min. :1.000 Min. :2.700
## 1st Qu.:1.800 1st Qu.:2.800
## Median :2.200 Median :2.900
## Mean :2.200 Mean :2.933
## 3rd Qu.:2.625 3rd Qu.:3.000
## Max. :3.800 Max. :3.600
Ejercicio 1. Explore las siguientes opciones en su computador. Utilice las bases de datos biológicas y ambientales. ¿Qué tipo de información entrega cada una de las bases de datos?
varespec[1:5,1:10]
varespec
#Cambie los números para que observe la forma en que trabaja el entorno para la lectura datos
head(varespec)
nrow(varespec) #numero de filas
## [1] 24
ncol(varespec) #numero de columna
## [1] 44
dim(varespec) #dimension de la base
## [1] 24 44
colnames(varespec) #nombre de las columnaas
## [1] "Callvulg" "Empenigr" "Rhodtome" "Vaccmyrt" "Vaccviti" "Pinusylv"
## [7] "Descflex" "Betupube" "Vacculig" "Diphcomp" "Dicrsp" "Dicrfusc"
## [13] "Dicrpoly" "Hylosple" "Pleuschr" "Polypili" "Polyjuni" "Polycomm"
## [19] "Pohlnuta" "Ptilcili" "Barbhatc" "Cladarbu" "Cladrang" "Cladstel"
## [25] "Cladunci" "Cladcocc" "Cladcorn" "Cladgrac" "Cladfimb" "Cladcris"
## [31] "Cladchlo" "Cladbotr" "Cladamau" "Cladsp" "Cetreric" "Cetrisla"
## [37] "Flavniva" "Nepharct" "Stersp" "Peltapht" "Icmaeric" "Cladcerv"
## [43] "Claddefo" "Cladphyl"
rownames(varespec) #nombre de las filas
## [1] "18" "15" "24" "27" "23" "19" "22" "16" "28" "13" "14" "20" "25" "7" "5"
## [16] "6" "3" "4" "2" "9" "12" "10" "11" "21"
range(varespec) #min y max
## [1] 0.0 84.3
Ejercicio 2. Realice el mismo cálculo anterior pero para la matriz ambiental. Discutamos el resultado obtenido en este proceso. ¿Por qué el sistema le entrega este resultado?
Ahora, podemos construir un gráfico de barras para determinar la cantidad de casos (frecuencia) en las abundancias de los organismos. Nótese que hay muchísima presencia de 0, por lo cual las matrices biológicas son “una complicación” para técnicas estadísticas “tradicionales”.
head(varechem)
nrow(varechem) #numero de filas
## [1] 24
ncol(varechem) #numero de columna
## [1] 14
dim(varechem) #dimension de la base
## [1] 24 14
colnames(varechem) #nombre de las columnaas
## [1] "N" "P" "K" "Ca" "Mg" "S"
## [7] "Al" "Fe" "Mn" "Zn" "Mo" "Baresoil"
## [13] "Humdepth" "pH"
rownames(varechem) #nombre de las filas
## [1] "18" "15" "24" "27" "23" "19" "22" "16" "28" "13" "14" "20" "25" "7" "5"
## [16] "6" "3" "4" "2" "9" "12" "10" "11" "21"
range(varechem) #min y max, me entrega un rango
## [1] 0.01 1169.70
barplot(table(unlist(varespec)), xlab="Abundancia (clases)", ylab="Frecuencia", col=gray(5:0/5))
sum(varespec==0) #Cantidad de 0 en el dataset
## [1] 442
spe.pres <- apply(varespec > 0, 2, sum)
#Note que el número 2 corresponde a la suma por columna, esto es muy importante en la organización inicial de la base de datos!
sort(spe.pres) #Organiza de acuerdo a la abundancia
## Betupube Cladamau Cladcerv Hylosple Icmaeric Cladphyl Rhodtome Polycomm
## 3 3 3 4 4 4 5 5
## Barbhatc Nepharct Diphcomp Peltapht Descflex Polypili Cladbotr Vacculig
## 5 5 6 6 8 8 8 9
## Vaccmyrt Dicrsp Cladsp Flavniva Cladchlo Dicrpoly Cetrisla Callvulg
## 10 10 10 10 12 13 13 15
## Cetreric Ptilcili Stersp Cladcocc Polyjuni Pohlnuta Pinusylv Cladstel
## 16 17 17 19 20 20 21 22
## Cladfimb Dicrfusc Cladgrac Claddefo Empenigr Vaccviti Pleuschr Cladarbu
## 22 23 23 23 24 24 24 24
## Cladrang Cladunci Cladcorn Cladcris
## 24 24 24 24
spe.relf <- 100*spe.pres/nrow(varespec)
round(sort(spe.relf), 1)#El número 1 redondea a un dígito, intente cambiar la opción para que experimente las opciones
## Betupube Cladamau Cladcerv Hylosple Icmaeric Cladphyl Rhodtome Polycomm
## 12.5 12.5 12.5 16.7 16.7 16.7 20.8 20.8
## Barbhatc Nepharct Diphcomp Peltapht Descflex Polypili Cladbotr Vacculig
## 20.8 20.8 25.0 25.0 33.3 33.3 33.3 37.5
## Vaccmyrt Dicrsp Cladsp Flavniva Cladchlo Dicrpoly Cetrisla Callvulg
## 41.7 41.7 41.7 41.7 50.0 54.2 54.2 62.5
## Cetreric Ptilcili Stersp Cladcocc Polyjuni Pohlnuta Pinusylv Cladstel
## 66.7 70.8 70.8 79.2 83.3 83.3 87.5 91.7
## Cladfimb Dicrfusc Cladgrac Claddefo Empenigr Vaccviti Pleuschr Cladarbu
## 91.7 95.8 95.8 95.8 100.0 100.0 100.0 100.0
## Cladrang Cladunci Cladcorn Cladcris
## 100.0 100.0 100.0 100.0
par(mfrow=c(1,2)) # Divide the window horizontally
hist(spe.pres, main="Ocurrencia", right=FALSE, las=1,
xlab="Cantidad de ocurrencia", ylab="Abundancia", col="red")
hist(spe.relf, main="Frecuencia relativa de especies", right=FALSE, las=1,
xlab="Frecuencia de ocurrencia(%)", ylab="Abundancia",col="blue")
Datos exploratorios matriz ambiental
summary(varechem)
## N P K Ca
## Min. :13.40 Min. :22.70 Min. : 43.6 Min. : 188.5
## 1st Qu.:18.82 1st Qu.:32.60 1st Qu.:127.2 1st Qu.: 425.7
## Median :22.05 Median :41.50 Median :166.6 Median : 518.5
## Mean :22.38 Mean :45.08 Mean :162.9 Mean : 569.7
## 3rd Qu.:26.30 3rd Qu.:57.05 3rd Qu.:205.8 3rd Qu.: 739.2
## Max. :33.10 Max. :73.50 Max. :313.8 Max. :1169.7
## Mg S Al Fe
## Min. : 25.70 Min. :14.90 Min. : 12.1 Min. : 2.300
## 1st Qu.: 60.90 1st Qu.:29.43 1st Qu.: 38.2 1st Qu.: 5.575
## Median : 75.05 Median :36.25 Median :106.8 Median : 27.800
## Mean : 87.46 Mean :37.19 Mean :142.5 Mean : 49.612
## 3rd Qu.:108.70 3rd Qu.:43.60 3rd Qu.:233.7 3rd Qu.: 85.150
## Max. :209.10 Max. :60.20 Max. :435.1 Max. :204.400
## Mn Zn Mo Baresoil
## Min. : 10.10 Min. : 2.600 Min. :0.0500 Min. : 0.010
## 1st Qu.: 26.70 1st Qu.: 5.375 1st Qu.:0.2750 1st Qu.: 7.975
## Median : 36.55 Median : 8.100 Median :0.3000 Median :21.250
## Mean : 49.33 Mean : 7.596 Mean :0.3958 Mean :22.949
## 3rd Qu.: 59.00 3rd Qu.: 9.100 3rd Qu.:0.5000 3rd Qu.:30.750
## Max. :132.00 Max. :16.800 Max. :1.1000 Max. :56.900
## Humdepth pH
## Min. :1.000 Min. :2.700
## 1st Qu.:1.800 1st Qu.:2.800
## Median :2.200 Median :2.900
## Mean :2.200 Mean :2.933
## 3rd Qu.:2.625 3rd Qu.:3.000
## Max. :3.800 Max. :3.600
dist.Subs <- fdt(varechem$Ca,breaks="Sturges")
dist.Subs
## Class limits f rf rf(%) cf cf(%)
## [186.615,352.412) 4 0.17 16.67 4 16.67
## [352.412,518.209) 8 0.33 33.33 12 50.00
## [518.209,684.006) 3 0.12 12.50 15 62.50
## [684.006,849.803) 7 0.29 29.17 22 91.67
## [849.803,1015.6) 1 0.04 4.17 23 95.83
## [1015.6,1181.4) 1 0.04 4.17 24 100.00
hist(varechem$Ca)
Tratamiento de los datos
base_datos <-read.csv("./bases_datos/DoubsSpe.csv", sep=",", header = TRUE, dec = ".")
base_datos
riqueza<-rowSums(base_datos>0)
shannon<-diversity(base_datos)
simpson<-diversity (base_datos, "inv")
pielou<-shannon/log(riqueza)
doub.diversidad<-data.frame(riqueza,shannon,simpson,pielou)
Ejercicio 1 Indique cuantas filas y variables están presentes en la matrizde datos de diversidad.
Ejercicio 2 En esta matriz aparece un dato NaN. Explique ¿por qué se obtiene este valor?. Hint!: tiene que ver con la función matemática que estamos utilizando!
Ejercicio 3 Utilice la función geom_point (size=3) o geom_point (size=15). Además, utilice la capa geom_text anterior. Analice como se construyen los gráficos con ggplot.
dim(doub.diversidad)
## [1] 30 4
#Respuesta 1: hay 30 filas y 4 columnas
#Respuesta 2: es porque pielou según la fórmula sería 0/log(1) y esta ecuacion no es posible
#Respuesta 3:
doubs.spa <-read.csv("./bases_datos/DoubsSpa.csv", sep=",", header = TRUE, dec = ".")
ggplot(doubs.spa, aes(x=x,y=y)) + geom_text(label=row.names(doubs.spa)) + theme_classic() + geom_point(size=15)
ggplot(doubs.spa, aes(x=x,y=y)) + geom_text(label=row.names(doubs.spa)) + theme_classic() + geom_point(size=3)
Transformación de datos Existen muchos criterios para la transformación, en las matrices biológicas a este proceso se le denomina transformación, y muchas se pueden lograr con la función decostand:
#Raíz cuadrada
doubs.spe.cuad<-sqrt(base_datos)
#"Raíz cuarta
doubs.spe.cuarta<-sqrt(sqrt(base_datos))
#Log (x + 1)
doubs.spe.log<-decostand(base_datos,"log")
#Presencia/Ausencia
doubs.spe.pa<-decostand(base_datos,"pa")
#transformación de Hellinger
oubs.spe.hell<-decostand(base_datos,"total")
#Note el uso de total para lograr la transformación de Hellinger
#Utilice ?decostand para que revise su uso
doubs.env.std<-decostand(base_datos,"standardize")
par(mfrow=c(1,2)) #divide la pantalla gráfica en 1 filas y 2 columnas.
boxplot(base_datos$LOC,doubs.spe.cuad$LOC,doubs.spe.cuarta$LOC,doubs.spe.log$LOC,doubs.spe.pa$LOC,oubs.spe.hell$LOC, names=c("Sin transformar","Raíz2", "Raíz4","Log","Pres/Aus","Hellinger"), main="Transformaciones Biológicos LOC")