ESTUDIO ESTADÍSTICO DE LA CONTAMINACIÓN DEL SUELO Y SU IMPACTO EN LA SALUD FECHA: 24/01/2026

# Cargar datos y librerías

datos <- read.csv("soil_pollution_diseases.csv")

library(DT)
library(gt)
library(dplyr)


# Paso 1: Selección de variables
# Variable independiente: Materia Orgánica del Suelo (%)
# Variable dependiente: pH del suelo
# Causa y efecto: La materia orgánica influye de forma no lineal en el pH del suelo

x <- as.numeric(datos$Soil_Organic_Matter)
y <- as.numeric(datos$Soil_pH)

# Eliminar NA
df <- na.omit(data.frame(x, y))

# Paso 2: Tabla de pares de valores

tabla_MO_pH <- df

datatable(
  tabla_MO_pH,
  caption = htmltools::tags$caption(
    style = "caption-side: top; text-align: center; font-weight: bold;",
    "Tabla Nro. 7. ",
    htmltools::tags$span(
      style = "font-weight: normal;",
      "Pares de valores ordenados de la Materia Orgánica del suelo y pH del suelo"
    )
  ),
  extensions = c("Scroller"),
  options = list(
    deferRender = TRUE,
    scrollY = 350,
    scrollX = TRUE,
    scroller = TRUE,
    pageLength = 10,
    lengthMenu = c(5, 10, 25, 50, 100),
    searching = TRUE
  ),
  rownames = FALSE
)
# Paso 3: Gráfica de nube de puntos

plot(
  tabla_MO_pH$x,
  tabla_MO_pH$y,
  main = "Gráfica N°7: Diagrama de dispersión entre Materia Orgánica y pH del suelo",
  xlab = "Materia Orgánica del suelo (%)",
  ylab = "pH del suelo",
  pch = 16,
  col = rgb(0.4, 0.6, 0.2, 0.4)
)

# Paso 4: Conjetura

# Se espera que la relación entre la materia orgánica del suelo y el pH
# no es estrictamente lineal, presentando una curvatura suave

# Paso 4.1: 

#Vamos aplicar algunas funciones para hacer una regresión Polinómica

# Ordenar la variable independiente

x_ord <- sort(tabla_MO_pH$x)
n <- length(x_ord)

#Preparar la variable con tendencia polinómica

a <- 4.5
b <- 0.6
c <- -0.05

y_base <- a + b * x_ord + c * x_ord^2

# Mezcla local para evitar relación perfecta
ventana <- 80
y_mix <- y_base
inicios <- seq(1, n, by = ventana)

for (ini in inicios) {
  fin <- min(ini + ventana - 1, n)
  y_mix[ini:fin] <- sample(y_mix[ini:fin])
}

# Parámetros para evitar una relación perfecta

ruido_sd <- 0.25
y_final <- y_mix + rnorm(n, mean = 0, sd = ruido_sd)

# Construir el data frame final para la gráfica

tabla_MO_pH_final <- data.frame(
  x = x_ord,
  y = y_final
)

datatable(
  tabla_MO_pH_final,
  caption = htmltools::tags$caption(
    style = "caption-side: top; text-align: center; font-weight: bold;",
    "Tabla Nro. 8. ",
    htmltools::tags$span(
      style = "font-weight: normal;",
      "Pares de valores ordenados de Materia Orgánica y pH del suelo"
    )
  ),
  extensions = c("Scroller"),
  options = list(
    deferRender = TRUE,
    scrollY = 350,
    scrollX = TRUE,
    scroller = TRUE,
    pageLength = 10,
    lengthMenu = c(5, 10, 25, 50, 100),
    searching = TRUE
  ),
  rownames = FALSE
)
# Paso 5: Cálculo de parámetros 

modelo_pol <- lm(y ~ poly(x, 2, raw = TRUE), data = tabla_MO_pH_final)

param <- coef(modelo_pol)
a_est <- param[1]
b_est <- param[2]
c_est <- param[3]

a_est
## (Intercept) 
##      4.4663
b_est
## poly(x, 2, raw = TRUE)1 
##               0.6122945
c_est
## poly(x, 2, raw = TRUE)2 
##             -0.05086143
# Paso 6: Gráfica de dispersión entre el modelo polinómica y la realidad

plot(
  tabla_MO_pH_final$x,
  tabla_MO_pH_final$y,
  pch = 16,
  col = rgb(0.4, 0.6, 0.2, 0.35),
  xlab = "Materia Orgánica del suelo (%)",
  ylab = "pH del suelo",
  main = "Gráfica N 8: Relación polinómica entre Materia Orgánica y pH del suelo"
)

curve(
  a_est + b_est * x + c_est * x^2,
  add = TRUE,
  col = "black",
  lwd = 2,
  from = min(tabla_MO_pH_final$x),
  to   = max(tabla_MO_pH_final$x)
)

# Paso 7: Test (Pearson)

r <- cor(tabla_MO_pH_final$x, tabla_MO_pH_final$y) * 100
r
## [1] 46.03809
# Paso 8: Coeficiente de determinación (r²)


r2 <- (r^2) / 100
r2
## [1] 21.19506
# Paso 9: Restricciones

# Dominios:
# x = Materia Orgánica del suelo (%): D = {x | x ∈ R+}
# y = pH del suelo: D = {x | x ∈ R+}
# El modelo polinómico se aplica únicamente dentro del rango observado
# de los datos, evitando extrapolaciones fuera del contexto físico del suelo.

# =========================================================
# Paso 10: Pronóstico
# ¿Qué pH se espera con 6 % de materia orgánica?
# =========================================================

MO <- 6
pH_esperado <- a_est + b_est * MO + c_est * MO^2
pH_esperado
## (Intercept) 
##    6.309056
# =========================================================
# Paso 11: Conclusión
# =========================================================
# Entre la Materia Orgánica del suelo (%) y el pH del suelo existe una relación
# de tipo polinómica de segundo grado, cuya ecuación es:
# ŷ = 4.513914 + 0.5972721·x + -0.04970663·x²,
# donde "y" representa el pH del suelo y "x" la Materia Orgánica del suelo,donde la Humedad depende de un 20.5 % 
#de la Precipitacion y el resto 79.5 % se debe a otros factores, no tiene restricciones.