library(readxl)            # readxl: Para la carga de datos desde archivos Excel.
library(dplyr)             # dplyr: Para la manipulación y transformación de datos.
library(lubridate)         # lubridate: Para el manejo y procesamiento de fechas y tiempos.
library(ggplot2)           # ggplot2: Para la creación de gráficos y visualizaciones.
library(table1)            # table1: Para la creación de tablas de características estadísticas.
library(patchwork)         # patchwork: para visualizar más de una gráfica a la vez.

Punto 1 - Salinidad

Para estudiar la relación entre ciertas características del suelo y la producción de biomasa (gr) de una planta forrajera natural se obtuvieron 45 muestras en diferentes ambientes, y en cada muestra se estimó la biomasa (respuesta Y) y se registraron las características (covariables X) del suelo en el que crecía (pH, Salinidad, Zinc y Potasio).

# Cargar los datos
library(readr)
load("C:/Users/Salomé Lema/Desktop/Yo/Universidad/2026 - 1/Bioestad/Parcial 1/Salinidad.RData")

Base_datos = Salinidad

require(ggplot2)
require(table1)
require(patchwork)

a. Análisis exploratorio univariado

Biomasa

Se realizó un análisis exloratorio univariado de la variable Biomasa, con el fin de describir su comportamiento general en las muestras estudiadas. Para ello se calcularon las medidas de la media y la mediana de dicha variable.

Los gráficos construídos (histograma y diagrama de cajas) permiten identificar la forma de la distribución, permitiendo evidenciar si es simpetrica o presenta sesgo.

table1(~Biomasa, data=Base_datos) # Para indicar la media y la mediana de la biomasa
Overall
(N=45)
Biomasa
Mean (SD) 1080 (546)
Median [Min, Max] 992 [370, 2340]
# Histograma
ggplot(Base_datos, aes(x=Biomasa))+geom_histogram(fill= "#752678", col= "#752678")+theme_bw()+ggtitle("Histograma de Biomasa")

# Diagrama de cajas
ggplot(Base_datos, aes(y=Biomasa))+geom_boxplot(fill="#752678", width=0.3)+ggtitle("Diagrama de Cajas de Biomasa")

# table1(~.,data = Salinidad)

Los datos indican que la mediana se encuentra un poco más cercana al cuartil inferior que al superior. Además de que el diagrama de cajas muestra una distribución asimétrica positiva, la mediana se encuentra ligeramente desplazada dentro del rango intercuartílico (está un poco más cerca al cuartil inferior que al superior) y el bigote superior presenta mayor longitud que el inferior, lo que evidencia una cola hacia valores altos. Esto coincide claramente con los valores estadísticos descriptivos, en los cuales se puede observar que la media es mayor que la mediana, indicando así que hay ciertos valores elevados que incrementan el promedio. Los resultados sugieren que la biomasa presenta una distribución sesgada hacia la derecha. Es importante añadir que la desviación estándar indica una variabilidad considerable en la producción de biomasa entre ambientes.


pH

Para la variable pH se realizó un análisis descriptivo univariado con el objetivo de caracterizar las condiciones de acidez o alcalinidad del suelo en las muestras. Se calcularon las medidas de tendencia central, complementadas con un histograma y un diagrama de cajas.

table1(~pH, data=Base_datos) # Para indicar la media y la mediana del pH
Overall
(N=45)
pH
Mean (SD) 4.61 (1.25)
Median [Min, Max] 4.45 [3.20, 7.45]
# Histograma
ggplot(Base_datos, aes(x=pH))+geom_histogram(fill= "#7D2F80", col= "#7D2F80")+theme_bw()+ggtitle("Histograma de pH")

# Diagrama de cajas
ggplot(Base_datos, aes(y=pH))+geom_boxplot(fill="#7D2F80", width=0.3)+ggtitle("Diagrama de Cajas de pH")

El diagrama de cajas del pH muestra una distribución asimétrica positiva. La media es levemente superior a la mediana; la desviación estándar indica que las muestras son de variabilidad moderada.


Salinidad

Mediante el análisis univariado de la salinidad, se permite describir la concentración de sales presentes en el suelo. Mediante medidas y resumenes gráficos se evaluó la variabilidad de esta característica.

table1(~Salinidad, data=Base_datos) # Para obtener la media y la mediana de la salinidad
Overall
(N=45)
Salinidad
Mean (SD) 30.3 (3.72)
Median [Min, Max] 30.0 [24.0, 38.0]
# Histograma
ggplot(Base_datos, aes(x=Salinidad))+geom_histogram(fill= "#903894", col= "#903894")+theme_bw()+ggtitle("Histograma de Salinidad")

# Diagrama de cajas
ggplot(Base_datos, aes(y=Salinidad))+geom_boxplot(fill="#903894", width=0.3)+ggtitle("Diagrama de Cajas de Salinidad")

El diagrama de cajas de la salinnidad indica una distribución aproximadamente simétrica. La media y la mediana presentan valores muy similares, lo cual indica una ausencia de alguna asimetría significativa. En general, la salinidad presenta una distribución relativamente homogénea en los diferentes ambientes evaluados.


Zinc

Se realizó un análisis exploratorio de la concentración de zinc en el suelo, considerando su importancia como micronutriente para las plantas. Las medidas de tendencia central indican el nivel típico de zinc presente en las muestras.

table1(~Zinc, data=Base_datos) # Para obtener la media y la mediana del Zinc
Overall
(N=45)
Zinc
Mean (SD) 17.8 (8.27)
Median [Min, Max] 19.2 [0.211, 31.3]
# Histograma
ggplot(Base_datos, aes(x=Zinc))+geom_histogram(fill= "#993E9E", col= "#993E9E")+theme_bw()+ggtitle("Histograma de Zinc")

# Diagrama de cajas
ggplot(Base_datos, aes(y=Zinc))+geom_boxplot(fill="#993E9E", width=0.3)+ggtitle("Diagrama de Cajas de Zinc")

El diagrama de cajas de zinc evidencia una distribución asimétrica negativa, debido a que la media es inferior a la mediana; lo cual sugiere la presencia de valores bajos, que reducen el promedio. Se puede evidenciar un valor atípico extremo, cercano a cero. La desviación estándar indica una alta variabilidad de las concentraciones de zinc entre los ambientes evaluados.


Potasio

El análisis univariado del potasio permitió evaluar la disponibilidad de este nutriente esencial en el suelo. Los gráficos exploratorios muestran la distribución de los datos y facilitan la identificación de valores extremos que podrían afectar el análisis bivariado posterior.

table1(~Potasio, data=Base_datos) # Para obtener la media y la mediana del potasio
Overall
(N=45)
Potasio
Mean (SD) 797 (298)
Median [Min, Max] 773 [351, 1440]
# Histograma
ggplot(Base_datos, aes(x=Potasio))+geom_histogram(fill= "#A65BAB", col= "#A65BAB")+theme_bw()+ggtitle("Histograma de Potasio")

# Diagrama de barras
ggplot(Base_datos, aes(y=Potasio))+geom_boxplot(fill="#A65BAB", width=0.3)+ggtitle("Diagrama de Cajas de Potasio")

El diagrama de cajas del potasio muestra una distribución ligeramente asimétrica ligeramente positiva; la media es superior a la mediana, indicando que hay valores altos que incrementan el promedio. La distribución presenta una ligera cola hacia valores elevados, aunque sin presencia de valores atípicos extremos.


b. Análisis exploratorio bivariado

Se realizó un análisis exploratorio bivariado para evaluar la relación entre la biomasa y cada una de las covariables del suelo (pH, salinidad, zinc y potasio). Para cada par de variables se construyeron diagramas de dispersión acompañados de líneas de tendencia, así como su correspondiente cálculo de coeficientes de correlación.

Biomasa - pH
g1=ggplot(Base_datos, aes(x = pH, y= Biomasa))+geom_point(col= "#851876")+theme_bw()+ggtitle("Correlación de 0.9281023")+geom_smooth(method="lm", col= "#C180C2")
cor(y=Base_datos$Biomasa, x = Base_datos$pH)
## [1] 0.9281023

El diagrama de dispersión sugiere una relación positiva entre el pH del suelo y la biomasa; el coeficiente de correlación (0.928) indica que la asociación entre ambas variables es muy fuerte (porque de los 4 coeficientes de correlación obtenidos, es el que tiene un valor más cercano a 1), lo que sugiere que el pH tiene un alto impacto sobre la producción de biomasa, por lo que se puede decir que a medida que el pH aumenta, la biomasa también tiende a incrementarse.


Biomasa - Salinidad
g2=ggplot(Base_datos, aes(x = Salinidad, y= Biomasa))+geom_point(col= "#851876")+theme_bw()+ggtitle("Correlación de -0.06657756")+geom_smooth(method="lm", col= "#C180C2")
cor(y=Base_datos$Biomasa, x = Base_datos$Salinidad)
## [1] -0.06657756

La relación entre la biomasa y la salinidad muestra una tendencia inversa muy débil (similar a la relación biomasa-potasio), evidenciando que a medida que la salinidad aumenta, la biomasa tiende a disminuir ligeramente. Sin embargo, el coeficiente de correlación (-0.066) indica que hay una relación no significativa o prácticamente inexistente, lo que sugiere que la salinidad no tiene un efecto importante sobre la biomasa en este conjunto de datos.


Biomasa - Zinc
g3=ggplot(Base_datos, aes(x = Zinc, y= Biomasa))+geom_point(col= "#851876")+theme_bw()+ggtitle("Correlación de -0.7814625")+geom_smooth(method="lm", col= "#C180C2")
cor(y=Base_datos$Biomasa, x = Base_datos$Zinc)
## [1] -0.7814625

El análisis bivariado entre biomasa y zinc muestra una relación lineal negativa de intensidad fuerte (-0.781), lo cual indica que a medida que aumentan las concentraciones de zinc, la biomasa tiende a disminuir considerablemente. Por lo tanto, el zinc parece tener un efecto importante e inverso sobre la producción de biomasa.


Biomasa - Potasio
g4=ggplot(Base_datos, aes(x = Potasio, y= Biomasa))+geom_point(col= "#851876")+theme_bw()+ggtitle("Correlación de -0.07319518")+geom_smooth(method="lm", col= "#C180C2")
cor(y=Base_datos$Biomasa, x = Base_datos$Potasio)
## [1] -0.07319518

Se observa una relación negativa muy débil entre el potasio y la biomasa. El coeficiente de correlación (-0.073) indica que la asociación entre ambas variables es prácticamente inexistente. Por lo tanto, el potasio no parece tener una influencia importante sobre la producción de biomasa en las condiciones evaluadas.

library(patchwork)
(g1 + g3) / (g2 + g4)


Con base en el análisis exploratorio bivariado anterior, se evidencia que las variables con mayor asociación lineal con la biomasa son el pH y el zinc. El pH presenta una correlación positiva muy fuerte (r = 0.928), ya que es la más cercana a 1, indicando que a mayores valores de pH se observa una mayor producción de biomasa. Por su parte, el zinc muestra una correlación negativa fuerte (r = -0.781), lo cual sugiere que a medida que aumenta su concentración, se disminuye la biomasa.

En contraste, la salinidad (r = -0.066) y el potasio (r = -0.073) presentan correlaciones negativas muy débiles, indicando que no existe una asociación lineal relevante entre estas variables y la biomasa en el conjunto de datos analizado.

En conjunto, los resultados sugieren que, dentro de las covariables evaluadas, el pH y el zinc son las variables más fuertemente asociadas con la producción de biomasa.


Punto 2 - Moluscos

Dos tipos de moluscos A y B fueron sometidos a tres concentraciones distintas de agua de mar (100%, 75% y 50%) y se observó el consumo de oxígeno midiendo la proporción de O2 por unidad de peso seco del molusco.

# Cargar los datos
load ("C:/Users/Salomé Lema/Desktop/Yo/Universidad/2026 - 1/Bioestad/Parcial 1/moluscos.RData")


a. Exploración Univariada de los datos

Realice un análisis exploratorio univariado para cada característica e interpretar.


Tabla Media y Mediana Análisis Univariado
#Número de moluscos que hay en A y en B
# Mostrar todos los datos en una tabla resumida
require(table1)
table1(~.,data = BD_moluscos)
Overall
(N=48)
c_agua
Mean (SD) 75.0 (20.6)
Median [Min, Max] 75.0 [50.0, 100]
molusco
A 24 (50.0%)
B 24 (50.0%)
cons_o
Mean (SD) 9.30 (3.68)
Median [Min, Max] 9.70 [1.80, 18.8]

Es importante mencionar, que dados los datos, el experimento se diseñó de forma equilibrada, para reducir cualquier sesgo que pudiese presentarse ante ambos tipos de moluscos, y las concentraciones presentes de la salinidad en el agua de mar. En cuanto al consumo de oxígeno, de todos los moluscos juntos, se evidencia que el promedio general está al rededor de 9.30; sin embargo, existe una diferencia entre los valores más bajos y altos, debido a que mientras algunos registran 1.80 en la mediana de la concentración de oxígeno, otros llegan a 18.8. Lo que indica que, aunque el grupo tiene un comportamiento central definido, cada molusco reacciona de forma variada dependiendo de las condiciones, en este caso la salinidad.


Gráfico para concentraciones de salinidad del agua
#Gráfico para las concentraciones de agua

ggplot(BD_moluscos, aes(x=c_agua))+
  geom_histogram(fill="#8752B3", color="black", bins=10)+labs(x="Concentración de agua de mar", y="count")

En el histograma se evidencian las tres distintas concentraciones de agua (50,75 y 100%), lo que muestra un equilibrio en el muestreo.


Gráfico para el consumo de oxígeno
require(ggplot2)

#Gráfico para el consumo de 02
ggplot(BD_moluscos, aes(x=cons_o))+
  geom_histogram(fill="#8752B3", color="black", bins=10)+
  theme_bw()+
  ggtitle("Histograma del consumo de O2")+labs(x="Consumo de oxígeno", y="count")


Gráfico para la densidad del oxígeno
#Diagrama de densidad de o2
ggplot(BD_moluscos, aes(x=cons_o))+
  geom_density(fill="#8752B3", color="black", bins=10)+
  theme_bw()+
  ggtitle("Densidad del oxígeno")+labs(x="Consumo de oxígeno", y="densidad")

Este gráfico de densidad ayuda a visualizar mejor cómo se reparte el consumo de oxígeno en toda la muestra. Lo más llamativo es que presenta dos picos principales (lo que en estadística se llama una distribución bimodal). El primer pico, que es más alto, se encuentra cerca de las 6 unidades, confirmando que una gran parte de los moluscos tiene un consumo bajo. El segundo pico aparece alrededor de las 10 u 11 unidades, lo que indica que hay otro grupo importante de individuos con un consumo metabólico más alto.

La gráfica muestra que los datos no se agrupan en un solo punto central, sino que la población parece dividirse en dos comportamientos distintos. Lo que tiene sentido si se considera lo anteriormente dicho, las variaciones en la concentración de agua y las diferencias entre los moluscos tipo A y B están creando estos dos grupos diferenciados de consumo. Después de las 15 unidades, la curva cae suavemente, lo que confirma que los valores muy altos son casos más aislados dentro del experimento.


b. Exploración Bivariada de los datos

Realice un análisis exploratorio bivariado que permita conocer como es el consumo de oxígeno en las distintas concentraciones de agua de mar. y si estas conclusiones son las mismas para cada tipo de molusco


Tabla de media y mediana de consumo de oxígeno en distintas concentraciones de agua
#Tabla cuanti y cuali
table1(~cons_o |as.factor(c_agua),data = BD_moluscos)
50
(N=16)
75
(N=16)
100
(N=16)
Overall
(N=48)
cons_o
Mean (SD) 12.3 (3.20) 6.99 (2.80) 8.67 (3.00) 9.30 (3.68)
Median [Min, Max] 11.5 [6.38, 18.8] 6.43 [1.80, 13.2] 8.60 [3.68, 14.0] 9.70 [1.80, 18.8]


Análisis de la tabla

De acuerdo a la tabla presentada y teniendo presente que hay tres niveles de salinidad en la concentración de agua, correspondiendo al 50%, 75% y 100%, la tabla muestra que la mayor demanda metabólica ocurre en la concentración más baja, es decir 50%, alcanzando un promedio de 12.3 del concumo de oxígeno; por el contrario, en mayores concentraciones de salinidad, como 75% se genera el consumo más bajo y estable, con una media de 6.99.

En términos generales, no se observa una relación lineal simple, debido a que el consumo de oxígeno cae drásticamente al pasar del 50% al 75%, para luego presentar un aumento de la media al llegar al 100% de concentración, con 8.67 Esta fluctuación sugiere que los moluscos enfrentan condiciones fisiológicas distintas en cada nivel, siendo el grupo del 50% el que presenta una variabilidad más amplia en su respuesta.


Consumo de oxígeno en distintas concentraciones de agua sin tener en cuenta moluscos
# Gráfica de Correlación del consumo del oxígeno y las concentraciones de agua
#Esta funciona y se ve más bonita
require(ggplot2)
ggplot(BD_moluscos,aes(y=cons_o,x=as.factor(c_agua)))+geom_boxplot(fill="deeppink4",color="black", bins=10)+theme_bw()+ggtitle("Consumo de O2 en correlación a las concentraciones de agua")+labs(x="Concentración de agua de mar", y="consumo de oxígeno")


Análisis de la gráfica sin tener presente los moluscos

El diagrama de cajas ilustra visualmente la distribución del consumo de oxígeno para cada nivel de salinidad, confirmando que la mayor captación de oxígeno ocurre al 50% de concentración, donde el diagrama de la caja se ubica en la parte superior de la escala con una mediana superior a 10 unidades. Se observa que este grupo no solo tiene el consumo más alto, sino también una mayor dispersión en sus valores, evidenciada por la amplitud de sus “bigotes” que llegan hasta casi las 20 unidades. En contraste, el grupo del 75% muestra la caja más baja y compacta, lo que verifica un consumo reducido y una respuesta biológica mucho más homogénea entre los molucos muestreados.


Consumo de oxígeno en distintas concentraciones de agua teniendo presente los moluscos
#Para ver si las variables cambian o no dependiendo del molusco que se encuentre en el ambiente

ggplot(BD_moluscos, aes(x=as.factor(c_agua), y=cons_o, fill=molusco)) +
  geom_boxplot(position="dodge") +
  scale_fill_manual(values=c("#9932CC", "deeppink4")) +
  theme_bw()+labs(x="Concentración de agua de mar", y="consumo de oxígeno")


Análisis de las gráficas teniendo presente los moluscos

El anterior diagrama de cajas muestra el consumo de oxígeno por especie (A y B), revelando que el molusco B presenta una respuesta metabólica mucho más extrema y variable que el mosluco A. Mientras que en la concentración del 50% el molusco B alcanza niveles de consumo más alto de los datos muestreados, su rendimiento se ve afectado en las concentraciones del 75 y 100%, mostrando una sensibilidad marcada a los cambios de salinidas. Por otro lado, el molusco A evidencia un comportamiento más estable a los cambios de salinidad, aunque también es notorio que consume más oxígeno al 50%, sus medianas se mantienen en rangos más estrechos, que podría deberse a que tienen una resistencia distinta al estrés osmótico.

El análisis bivariado demuestra que las especies no reaccionan de la misma manera: el molusco A parece tener un metabolismo más predecible, mientras que el molusco B es altamente dependiente de la concentración de agua de mar. Especialmente al 100% de salinidad, se observa una diferencia clara donde el molusco A mantiene un consumo superior al del molusco B, que su mediana desciende notablemente. Esta distinción es fundamental, porque indica que la salinidad del agua afecta de forma desproporcionada a la especie B, lo que podría influir en su supervivencia o distribución en entornos naturales con variaciones de salinidad.