Cargamos los datos a un data frame a partir de un archivo .csv
zonai <- read.csv("caracoles.imaginarios.csv")
# primeras 6 filas de datos
head(zonai)
A continuación vamos a transformar los datos de conteo (abundancia) a frecuencias relativas de cada especie. Luego calcularemos algunas estadísticas descriptivas, incluyendo media y error estándar de la media de las frecuencias relativas por especie, a lo largo de las transectas.
# pasar abundancias a frecuencias relativas
library(dplyr)
zonaif <- zonai %>%
mutate(total = car_1 + car_2 +car_3) %>%
mutate(fcar_1 = car_1/total, fcar_2 = car_2/total, fcar_3 = car_3/total)
# estad´siticas descriptivas
library(Rmisc)
library(tidyverse)
est_car_1 <- summarySE(zonaif, measurevar="fcar_1", groupvars="cuadrado")
colnames(est_car_1)[3] <- "media"
est_car_1
est_car_2 <- summarySE(zonaif, measurevar="fcar_2", groupvars="cuadrado")
colnames(est_car_2)[3] <- "media"
est_car_2
est_car_3 <- summarySE(zonaif, measurevar="fcar_3", groupvars="cuadrado")
colnames(est_car_3)[3] <- "media"
est_car_3
library(ggplot2)
barras <- rbind(est_car_1, est_car_2, est_car_3)
spp <- c("car_1","car_1","car_1",
"car_2","car_2","car_2",
"car_3","car_3","car_3")
barras <- cbind(barras, spp)
barras
# gráfica de baras
ggplot(barras, aes(x = cuadrado, y = media,
fill = spp)) +
geom_bar(position=position_dodge(), stat="identity") +
geom_errorbar(aes(ymin=media-se, ymax=media+se), width=.2,
position=position_dodge(.9)) +
xlab("Zona") + ylab("Frecuencia Relativa")
Construimos una tabla de contingencia para cada especie con los datos originales de abundancia.
# separamos los datos por especie
C_1_car_1 <- zonai[zonai$cuadrado==1, 3]
C_2_car_1 <- zonai[zonai$cuadrado==2, 3]
C_3_car_1 <- zonai[zonai$cuadrado==3, 3]
# especie car_1
asoc_car_1 <- rbind(C_1_car_1,C_2_car_1,C_3_car_1)
rownames(asoc_car_1) <- c("C1","C2","C3")
colnames(asoc_car_1) <- c("tA","tB","tC","tD","tE")
# tabla de contingencia
library(gt)
tab_asoc_1 <- as.data.frame(asoc_car_1)
tab_asoc_1 %>%
gt(rownames_to_stub = TRUE) %>%
tab_header(
title = "Tabla 1. Abundancia de car_1 en cinco transectas (tA-tE)
de la costa rocosa desde la zona de marea alta (C1)
hasta la zona de marea baja (C3)",
subtitle = "Transectas"
)
Tabla 1. Abundancia de car_1 en cinco transectas (tA-tE) de la costa rocosa desde la zona de marea alta (C1) hasta la zona de marea baja (C3) | |||||
---|---|---|---|---|---|
Transectas | |||||
tA | tB | tC | tD | tE | |
C1 | 20 | 10 | 100 | 30 | 13 |
C2 | 50 | 20 | 30 | 50 | 33 |
C3 | 30 | 2 | 10 | 10 | 23 |
# repetir para cada especie
Ahora una prueba de \(\chi^2\) para cada especie:
chisq.test(asoc_car_1)
##
## Pearson's Chi-squared test
##
## data: asoc_car_1
## X-squared = 108.76, df = 8, p-value < 2.2e-16
La prueba de \(\chi^2\) indica si existe o no independencia (o al contrario, asociación) entre las variables categóricas, en este caso transecta y zona, pero no nos indica cuáles valores determinan la no-independencia. Una gráfica de mosaico nos indica cuáles valores están significativamente por debajo (rojo) o por encima (azul) de lo esperado.
# especie 1
library(vcd)
mosaic(asoc_car_1, shade = TRUE, legend = FALSE,
labeling_args = list(set_varnames = c(A = "zona", B = "transecta")),
set_labels = list(A = c("C1","C2","C3"),
B = c("t1","t2","t3","t4","t5")))