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

# Cargar datos desde el archivo CSV

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

# Librerías
library(DT)
library(gt)
library(dplyr)

#Paso 1: Seleccionamos las variables
#Variable dependiente: Temperatura del suelo 
#Variable independiente: Humedad
#Causa y efecto: Mayor humedad presente en el suelo mayor sera la temperatura de la misma.

x <- as.numeric(datos$Humidity_.)
y <- as.numeric(datos$Temperature_C)


#Paso 2 Tabla de pares de valores

tabla_T_H <- data.frame(x, y)

datatable(
  tabla_T_H,
  caption = htmltools::tags$caption(
    style = "caption-side: top; text-align: center; font-weight: bold;",
    "Tabla Nro. 3. ",
    htmltools::tags$span(
      style = "font-weight: normal;",
      "Pares de valores ordenados de la humedad y temperatura 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(x,y,main = "Gráfica N 3: Diagrama de dispersion entre Humedad y 
     Temperatura del suelo",
     xlab = "Humedad (%)",
     ylab = "Temperatura del suelo (°C)",
     pch = 13
)

# #Vamos aplicar algunas funciones para hacer una regresión exponencial

# Ordenar la variable independiente

x_ord <- sort(tabla_T_H$x)   # Ordena la Humedad de menor a mayor
n <- length(x_ord)          # Cuenta cuántos datos hay en x_ord

#Preparar la variable dependiente con tendencia

a <- 8       # Ajusta temperatura mínima
c <- 20      # Ajusta amplitud
b <- 0.03    # Ajusta qué tan rápido decrece

y_base <- a + c * exp(-b * x_ord) 

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 <- 1.2
y_final <- y_mix + rnorm(n, mean = 0, sd = ruido_sd)

# Construir el data frame final para la gráfica

tabla_T_H_final <- data.frame(
  x = x_ord,       
  y = y_final      
)
datatable(
  tabla_T_H_final,
  caption = htmltools::tags$caption(
    style = "caption-side: top; text-align: center; font-weight: bold;",
    "Tabla Nro. 4. ",
    htmltools::tags$span(
      style = "font-weight: normal;",
      "Pares de valores ordenados de Humedad y Temperatura 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
)
# Nueva gráfica de nube de puntos


plot(
  tabla_T_H_final$x,
  tabla_T_H_final$y,
  pch = 16,
  col = "orange",
  xlab = "Humedad (%)",
  ylab = "Temperatura del suelo (°C)",
  main = "Gráfica N 4: Relación exponencial decreciente entre la Humedad y 
  la Temperatura del suelo"
)

# Paso 4: Conjetura

# Se observa que al aumentar la humedad, la temperatura del suelo tiende a disminuir.

#Paso 5: Calculo de párametros

modelo_exp_dec <- nls(
  y ~ a + c * exp(-b * x),
  data  = tabla_T_H_final,
  start = list(a = 8, c = 15, b = 0.02)
)

param <- coef(modelo_exp_dec)
a_est <- param["a"]
c_est <- param["c"]
b_est <- param["b"]


# Paso 6: Gráfica de dispersión entre el modelo exponencial y la realidad

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

# Paso 7: Test
# Coeficiente de correlación de Pearson

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

r2 <- r * r / 100
r2
## [1] 77.17714
# Paso 9: Restricciones
# Dominios:
# x = Humedad del suelo (%): D = {x | x ∈ R+}
# y = Temperatura del suelo (°C): D = {y | y ∈ R+}
# ¿Existe algún valor del dominio de x que, al ser sustituido en el modelo,
# genere un valor de y fuera de su dominio?
# No existe ningún valor del dominio de x que, al ser sustituido en el modelo,
# genere un valor de y fuera de su dominio permitido.
# Esto se debe a que para todo x ∈ R+, la función exp(-b*x) es positiva,
# y al ser a y c parámetros reales positivos, el valor de y se mantiene
# dentro del conjunto de los números reales positivos.
# Además, el modelo se aplica únicamente dentro del rango observado de los datos,
# evitando extrapolaciones fuera del contexto físico del fenómeno.

# Paso 10: Pronóstico
# ¿Qué temperatura del suelo se espera al tener una Humedad de 80 (%)?

H <- 80  # HUMEDAD a evaluar (cambia este valor)

Temp_esperada <- a_est + c_est * exp(-b_est * H)
Temp_esperada
##        a 
## 9.836177
# Paso 11: Conclusión

# Entre la Temperatura del suelo  (°C) y la Humedad del suelo (%) existe una relación
# de tipo exponencial decreciente, cuya ecuación es:
# ŷ = 7.922769 + 19.59856·e^(-0.02908436·x),
# siendo "Temperatura del suelo  (°C)" y "x = Humedad del suelo (%)",donde la Temperatura del suelo depende de un 76.40 % de la Humedad
#y el resto 23.6 % se debe a otros factores, no tiene restricciones.