Punto 1: Datos Salinidad

En el presente informe se estudia 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 y se registraron las características del suelo en el que crecía, siendo 4 las que se tuvieron en cuenta que son: e el pH, la Salinidad y la concentración de Zinc y Potasio. Este estudio se realiza con el fin de determinar si existe algún tipo de relación entre la producción de biomasa y las características del suelo y si la hay cual o cuales características del suelo son las que afectan la producción de biomasa.

Análisis exploratorio univariado

Para estudiar cómo se puede alterar la producción de biomasa en relación a las características del suelo se evaluaron las 4 variables del estudio de las características del suelo. Para esto se calculo los indicadores estadísticos: media, mediana, desviación estándar y el coeficiente de variación(CV(%)), además de agregar el mínimo y el maximo de cada variable. Finalmente se realizaron graficos de distribucion para observar si los variables presentan una estructura o comportamiento sistemático.

library(dplyr)
library(knitr)
library(agricolae)
library(ggplot2)
load("~/Cuarto semestre/Diseño de Experimentos/Taller 1/Recursos/Salinidad.RData")
vars <- c("pH", "Salinidad", "Zinc", "Potasio")

tabla_univariado <- sapply(Salinidad[, vars], function(x) {
    c(
        Media = mean(x, na.rm = TRUE),
        Mediana = median(x, na.rm = TRUE),
        `Desv. Est.` = sd(x, na.rm = TRUE),
        Mínimo = min(x, na.rm = TRUE),
        Máximo = max(x, na.rm = TRUE),
        `CV (%)` = (sd(x, na.rm = TRUE) / mean(x, na.rm = TRUE)) * 100
    )
})


tabla_univariado <- as.data.frame(t(tabla_univariado))
tabla_univariado <- tibble::rownames_to_column(tabla_univariado, var = "Variable")
tabla_univariado <- tabla_univariado %>% 
    mutate(across(where(is.numeric), ~ round(., 2)))


kable(tabla_univariado, caption = "Tabla 1. Medidas descriptivas univariadas (N = 45).")
Tabla 1. Medidas descriptivas univariadas (N = 45).
Variable Media Mediana Desv. Est. Mínimo Máximo CV (%)
pH 4.61 4.45 1.25 3.20 7.45 27.22
Salinidad 30.27 30.00 3.72 24.00 38.00 12.29
Zinc 17.83 19.24 8.27 0.21 31.29 46.40
Potasio 797.38 773.30 297.58 350.73 1441.67 37.32

Gráficos de Distribución

A continuación se presentan los gráficos de distribución para cada variable con separación entre barras:

# Gráfico de pH
ggplot(Salinidad, aes(x = factor(cut(pH, breaks = 6)))) +
  geom_bar(fill = "orange", color = "black", width = 0.6) +
  theme_minimal() +
  labs(title = "Distribución de pH", x = "pH", y = "Frecuencia")+
  theme(axis.text.x = element_text(angle = 30, hjust = 1))

# Gráfico de Salinidad
ggplot(Salinidad, aes(x = factor(cut(Salinidad, breaks = 6)))) +
  geom_bar(fill = "steelblue", color = "black", width = 0.6) +
  theme_minimal() +
  labs(title = "Distribución de Salinidad", x = "Salinidad", y = "Frecuencia")+
  theme(axis.text.x = element_text(angle = 30, hjust = 1))

# Gráfico de Zinc
ggplot(Salinidad, aes(x = factor(cut(Zinc, breaks = 6)))) +
  geom_bar(fill = "purple3", color = "black", width = 0.6) +
  theme_minimal() +
  labs(title = "Distribución de Zinc", x = "Zinc", y = "Frecuencia")+
  theme(axis.text.x = element_text(angle = 30, hjust = 1))

# Gráfico de Potasio
ggplot(Salinidad, aes(x = factor(cut(Potasio, breaks = 6)))) +
  geom_bar(fill = "firebrick", color = "black", width = 0.6) +
  theme_minimal() +
  labs(title = "Distribución de Potasio", x = "Potasio", y = "Frecuencia")+
  theme(axis.text.x = element_text(angle = 30, hjust = 1))

Interpretación del Análisis Univariado:

pH del suelo: Muestra un valor promedio de 4.6, una mediana de 4.45 y una desviación estándar de 1.25 por lo que los valores valores no se alejan demasiado del valor central. presenta una variabilidad moderada, CV = 27.22%. Los datos indican que los suelos estudiados oscilan entre valores de pH de 3,20 y 7,45. Por lo que los suelos estudiados son de naturaleza ácida,neutra y levemente alcalina. En su gráfico de distribución se logra observar que la mayor cantidad de muestras tomadas fueron de pH ácido, siendo el intervalo con mayor frecuencia (3.2,3.91].

Salinidad: Presenta un valor medio de 30.27, una mediana de 30.00 y una desviación estándar de 3,45 que no es muy altal. Además sus valores oscilan en un intervalo entre 24.00 y 38.00. Se obtuvo un coeficiente de variación de 12.29%, lo cual refleja una alta homogeneidad espacial en los niveles de salinidad del suelo entre las 45 muestras tomadas, siendo este el menor coeficiente de variación de las 4 covariables, por lo tanto el más homogéneo de las 4. El gráfico de distribución presenta que el intervalo con mayor frecuencia es (28.7,31].

Zinc: Registrar valores entre 0.21 y 31.29, con una media de 17.83, una mediana de 19.24 y una desviación estándar de 8.27, muy normal teniendo en cuenta en los rangos en los que oscila las concentraciones de zinc. Presenta una alta variabilidad, CV = 46.40%. Esta es la covariable con mayor coeficiente de varianza de las 4, demostrando que es la covariable con más varianza. El gráfico de distribución presenta que el intervalo con mayor frecuencia es (15.7,20.9].

Potasio: Muestra una concentración promedio de 797.38, una mediana de 773,30 y una desviación estándar de 297.58 normal teniendo en cuenta en los rangos en los que oscila las concentraciones de potasio. Sus valores varían en un rango entre 350.73 y 1441.67, con coeficiente de variación relativamente alto ,CV = 37.32%. El gráfico de distribución presenta que el intervalo con mayor frecuencia es (350,533].

Análisis exploratorio bivariado

Para conocer cuáles variables son las que presentan mayor relación con la biomasa se genera una matriz de correlación entre la Biomasa y las tres covariables solicitadas (pH, Salinidad y Zinc), acompañada de gráficos de dispersión con línea de tendencia y su respectivo coeficiente de pearson.

library(ggplot2)
library(patchwork) # Para juntar los 4 gráficos en una sola imagen (opcional)

# 1. Calcular los coeficientes de correlación r para cada covariable con la Biomasa
r_ph  <- round(cor(Salinidad$Biomasa, Salinidad$pH, use = "complete.obs"), 3)
r_sal <- round(cor(Salinidad$Biomasa, Salinidad$Salinidad, use = "complete.obs"), 3)
r_zn  <- round(cor(Salinidad$Biomasa, Salinidad$Zinc, use = "complete.obs"), 3)
r_k   <- round(cor(Salinidad$Biomasa, Salinidad$Potasio, use = "complete.obs"), 3)

# 2. Crear los 4 gráficos de dispersión con el valor de r en el título superior

# Biomasa vs pH
g_ph <- ggplot(Salinidad, aes(x = pH, y = Biomasa)) +
  geom_point(color = "orange", size = 2.5, alpha = 0.8) +
  geom_smooth(method = "lm", color = "black", se = FALSE) +
  theme_minimal() +
  labs(
    title = paste0("Biomasa vs pH (r = ", r_ph, ")"),
    x = "pH del suelo", 
    y = "Biomasa (g)"
  )

# Biomasa vs Salinidad
g_sal <- ggplot(Salinidad, aes(x = Salinidad, y = Biomasa)) +
  geom_point(color = "steelblue", size = 2.5, alpha = 0.8) +
  geom_smooth(method = "lm", color = "black", se = FALSE) +
  theme_minimal() +
  labs(
    title = paste0("Biomasa vs Salinidad (r = ", r_sal, ")"),
    x = "Salinidad del suelo", 
    y = "Biomasa (g)"
  )

# Biomasa vs Zinc
g_zn <- ggplot(Salinidad, aes(x = Zinc, y = Biomasa)) +
  geom_point(color = "purple3", size = 2.5, alpha = 0.8) +
  geom_smooth(method = "lm", color = "black", se = FALSE) +
  theme_minimal() +
  labs(
    title = paste0("Biomasa vs Zinc (r = ", r_zn, ")"),
    x = "Zinc en el suelo", 
    y = "Biomasa (g)"
  )

# Biomasa vs Potasio
g_k <- ggplot(Salinidad, aes(x = Potasio, y = Biomasa)) +
  geom_point(color = "firebrick", size = 2.5, alpha = 0.8) +
  geom_smooth(method = "lm", color = "black", se = FALSE) +
  theme_minimal() +
  labs(
    title = paste0("Biomasa vs Potasio (r = ", r_k, ")"),
    x = "Potasio en el suelo", 
    y = "Biomasa (g)"
  )

# 3. Mostrar los 4 gráficos ordenados en una cuadrícula de 2x2
(g_ph | g_sal) / (g_zn | g_k)

Interpretacion del Analisis Exploratorio Bivariado:

Al analizar los gráficos de correlación lineal de las relaciones bivariadas entre la Biomasa y las características químicas del suelo se logra observar el coeficiente de correlación lineal de todos los gráficos donde los diagrama de “Biomasa vs Salinidad”,”Biomasa vs Zinc” y “Biomasa vs Potasio” presentan un coeficiente de correlación negativo de r = -0.067, r = -0.781 y r = -0.073 respectivamente, de estos 3 únicamente el diagrama del Zinc presenta una coeficiente de correlación fuerte, siendo este de r = -0,781. Por otro lado el diagrama “Biomasa vs pH” es el único de los cuatro que presenta un coeficiente de correlación lineal positivo, además de tener la correlación más fuerte de los cuatro diagramas, siendo esta de = 0.928. En el gráfico se observa una tendencia clara donde cambios en el pH del suelo impactan de forma directa la producción vegetal, haciendo que entre más aumenta el pH o se vuelva más alcalino aumenta la producción de biomasa de la planta forrajera. Por esto el pH es la variable seleccionada para proceder con la categorización en niveles y el análisis de varianza (ANOVA) en el inciso (C), al ser esta la covariable con mayor correlación de las cuatro.

C. Categorización, ANOVA de una vía, verificación de supuestos y prueba LSD

Dado que el pH presentó el mayor coeficiente de correlacion con la Biomasa, se categoriza en 3 niveles (Bajo, Medio, Alto) para evaluar su efecto mediante un Análisis de Varianza (ANOVA).

library(agricolae)
library(knitr)

# 1. Categorización del pH
Salinidad$Nivel_pH <- cut(
  Salinidad$pH, 
  breaks = quantile(Salinidad$pH, probs = seq(0, 1, length.out = 4)), 
  include.lowest = TRUE, 
  labels = c("Bajo", "Medio", "Alto")
)

# 2. Modelo ANOVA
modelo_anova <- aov(Biomasa ~ Nivel_pH, data = Salinidad)
summary_aov <- summary(modelo_anova)[[1]]

# Tabla ANOVA
tabla_anova <- data.frame(
  `Fuente de Variación` = c("Nivel de pH", "Residuales"),
  `GL` = summary_aov$Df,
  `Suma Cuadrados` = round(summary_aov$`Sum Sq`, 2),
  `Cuadrado Medio` = round(summary_aov$`Mean Sq`, 2),
  `F Calculado` = c(round(summary_aov$`F value`[1], 2), "-"),
  `Valor p` = c(format.pval(summary_aov$`Pr(>F)`[1], digits = 3), "-"),
  check.names = FALSE
)

# 3. Supuestos
residuos <- residuals(modelo_anova)
shapiro_test <- shapiro.test(residuos)
bartlett_test <- bartlett.test(Biomasa ~ Nivel_pH, data = Salinidad)

tabla_supuestos <- data.frame(
  `Supuesto Evaluado` = c("Normalidad (Shapiro-Wilk)", "Homocedasticidad (Bartlett)"),
  `Estadístico` = round(c(shapiro_test$statistic, bartlett_test$statistic), 3),
  `Valor p` = round(c(shapiro_test$p.value, bartlett_test$p.value), 4),
  `Conclusión` = c(
    ifelse(shapiro_test$p.value > 0.05, "Cumple supuesto (p > 0.05)", "No cumple"),
    ifelse(bartlett_test$p.value > 0.05, "Cumple supuesto (p > 0.05)", "No cumple")
  ),
  check.names = FALSE
)

# 4. Prueba LSD de Fisher
lsd_res <- LSD.test(modelo_anova, "Nivel_pH", p.adj = "none")
tabla_lsd <- data.frame(
  `Nivel pH` = rownames(lsd_res$groups),
  `Biomasa Promedio (g)` = round(lsd_res$groups$Biomasa, 2),
  `Grupo Significación` = lsd_res$groups$groups,
  check.names = FALSE
)

1. Tabla del Análisis de Varianza (ANOVA)

kable(tabla_anova, align = "c")
Fuente de Variación GL Suma Cuadrados Cuadrado Medio F Calculado Valor p
Nivel de pH 2 7712683 3856341.6 29.89 8.45e-09
Residuales 42 5418235 129005.6 - -

2. Verificación de Supuestos Estadísticos

kable(tabla_supuestos, align = "c")
Supuesto Evaluado Estadístico Valor p Conclusión
W Normalidad (Shapiro-Wilk) 0.973 0.3749 Cumple supuesto (p > 0.05)
Bartlett’s K-squared Homocedasticidad (Bartlett) 20.084 0.0000 No cumple
par(mfrow = c(1, 2))
plot(modelo_anova, which = 1, main = "Homocedasticidad", caption = "")
plot(modelo_anova, which = 2, main = "Normalidad (Q-Q Plot)", caption = "")

par(mfrow = c(1, 1))

3. Prueba de Comparación Múltiple (LSD de Fisher)

kable(tabla_lsd, align = "c")
Nivel pH Biomasa Promedio (g) Grupo Significación
Alto 1605.39 a
Medio 1048.11 b
Bajo 593.02 c

Interpretación de Resultados

Evaluación del Análisis de Varianza (ANOVA): Para determinar si existen diferencias significativas en la acumulación de biomasa de las plantas según los diferentes niveles de pH, estos se clasifican en tres; bajo, medio y alto. Luego se llevó a cabo un Análisis de Varianza (ANOVA) de un solo factor. Al observar los resultados de la “Tabla del Análisis de Varianza (ANOVA)”, la fuente de variación correspondientes al Nivel de pH registró una Suma de Cuadrados de 7712683 con 2 grados de libertad (GL), resultando en un Cuadrado Medio de 3856341.6. El estadístico F calculado alcanzó un valor de 29.89, con un valor p asociado de 8.4510-9 (p<0.001). Dado que el valor p es considerablemente inferior al nivel de significancia estándar (=0.05), se rechaza la hipótesis nula (H0) la cual propone que no existe un efecto o diferencia en el uso del pH con relación a la biomasa producida. Se demuestra con estos resultados estadísticos que el nivel de pH ejerce un efecto significativo sobre los niveles de biomasa producida.

Diagnóstico de Supuestos Estadísticos del Modelo: Con el fin de garantizar la validez inferencial del ANOVA, se procedió a verificar los supuestos fundamentales sobre los residuos del modelo:

Normalidad: La prueba de normalidad de Shapiro-Wilk arrojó un estadístico W=0.973 con un valor p de 0.3749. Dado que p>0.05, no existe evidencia suficiente para rechazar la hipótesis de normalidad, concluyendo que los residuos se distribuyen normalmente. Esta afirmación se corrobora visualmente en el gráfico Normalidad (Q-Q Plot), aquí se observa que la mayoría de los cuantiles observados se alinean estrechamente a lo largo de la línea teórica esperada, observándose únicamente pequeñas desviaciones en los extremos que no influyen significativamente la validez de este supuesto.

Homocedasticidad (Igualdad de Varianzas): Para evaluar la homogeneidad de varianzas entre los tratamientos, se aplicó la prueba de Bartlett, obteniendo un estadístico K2=20.084 con un valor p de 0.0000 (p<0.05). Este resultado indica estadísticamente que no se cumple el supuesto de homocedasticidad. Al examinar el gráfico de Homocedasticidad (Residuals vs Fitted values), se evidencia un patrón de dispersión variable: a medida que el valor ajustado aumenta, la dispersión de los residuos se ve incrementa considerablemente, siendo la variabilidad en el nivel de pH Alto evidentemente mayor que en los niveles Medio y Bajo.

Comparación Múltiple de Medias (Prueba LSD de Fisher): Ya que el ANOVA identificó diferencias significativas, se realizó una prueba de comparación de medias de LSD de Fisher (=0.05) para contrastar los grupos individualmente, esto se logra observar en la tabla “Prueba de Comparación Múltiple (LSD de Fisher)”, donde se claficica en 3 grupos identificados por letras “a”, “b” y “c”. Donde

pH Alto: Presentó la biomasa promedio más elevada con 1,605.39g, ubicándose de manera exclusiva en el grupo de significación a.

pH Medio: Alcanzó un rendimiento intermedio de 1,048.11g, clasificándose en el grupo b.

pH Bajo: Registró la menor cantidad de biomasa promedio con 593.02g, formando el grupo c.

Al poseer letras distintas, se concluye que todos los niveles de pH difieren de forma estadísticamente significativa entre sí. Se evidencia una tendencia directamente proporcional, a medida que se incrementa el nivel de pH, la biomasa también incrementa de cierto modo.