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.