UNIVERSIDAD CENTRAL DEL ECUADOR
ESTUDIO ESTADÍSTICO DE LA CONTAMINACIÓN DEL SUELO Y SU IMPACTO EN LA SALUD
FECHA: 19/11/2025
# =========================
# ESTADÍSTICA Descriptiva
# Fecha: 19/11/2025
# =========================
# -------------------------
# Cargar datos
# -------------------------
setwd("C:/Users/Alexander/Downloads")
datos <- read.csv("soil_pollution_diseases.csv",
sep = ",",
stringsAsFactors = FALSE)
# -------------------------
# Variable Cuantitativa Continua
# -------------------------
Precipitacion <- datos$Rainfall_mm
# Número de clases manual
k <- floor(1 + 3.3 * log10(length(Precipitacion)))
min_val <- min(Precipitacion)
max_val <- max(Precipitacion)
R <- max_val - min_val
A <- R / k
Li <- round(seq(from = min_val, to = max_val - A, by = A), 4)
Ls <- round(seq(from = min_val + A, to = max_val, by = A), 4)
MC <- round((Li + Ls) / 2, 2)
ni <- numeric(length(Li))
for (i in 1:length(Li)) {
if (i < length(Li)) {
ni[i] <- sum(Precipitacion >= Li[i] & Precipitacion < Ls[i])
} else {
ni[i] <- sum(Precipitacion >= Li[i] & Precipitacion <= max_val)
}
}
hi <- round(ni / sum(ni) * 100, 2)
Niasc <- cumsum(ni)
Nidsc <- rev(cumsum(rev(ni)))
Hiasc <- round(cumsum(hi), 2)
Hidsc <- round(rev(cumsum(rev(hi))), 2)
TDFPrecipitacion <- data.frame(Li, Ls, MC, ni, hi, Niasc, Nidsc, Hiasc, Hidsc)
# Totales
TDFPrecipitacionCompleto <- rbind(
TDFPrecipitacion,
data.frame(Li = "Total", Ls = "-", MC = "-", ni = sum(ni), hi = 100,
Niasc = "-", Nidsc = "-", Hiasc = "-", Hidsc = "-")
)
# Tabla GT
library(gt)
library(dplyr)
tabla_Precipitacion <- TDFPrecipitacionCompleto %>%
gt() %>%
fmt_number(
columns = hi,
decimals = 2
) %>%
tab_header(
title = md("*Tabla Nº5*"),
subtitle = md("**Tabla de Precipitación (mm)**")
) %>%
tab_source_note(
source_note = md("Autor: Grupo 3")
) %>%
tab_style(
style = cell_text(weight = "bold"),
locations = cells_body(rows = Li == "Total")
)
# Mostrar tabla completa de Precipitación
tabla_Precipitacion
| Tabla Nº5 | ||||||||
| Tabla de Precipitación (mm) | ||||||||
| Li | Ls | MC | ni | hi | Niasc | Nidsc | Hiasc | Hidsc |
|---|---|---|---|---|---|---|---|---|
| 0 | 33.3083 | 16.65 | 238 | 7.93 | 238 | 3000 | 7.93 | 99.99 |
| 33.3083 | 66.6167 | 49.96 | 251 | 8.37 | 489 | 2762 | 16.3 | 92.06 |
| 66.6167 | 99.925 | 83.27 | 256 | 8.53 | 745 | 2511 | 24.83 | 83.69 |
| 99.925 | 133.2333 | 116.58 | 250 | 8.33 | 995 | 2255 | 33.16 | 75.16 |
| 133.2333 | 166.5417 | 149.89 | 241 | 8.03 | 1236 | 2005 | 41.19 | 66.83 |
| 166.5417 | 199.85 | 183.2 | 268 | 8.93 | 1504 | 1764 | 50.12 | 58.8 |
| 199.85 | 233.1583 | 216.5 | 263 | 8.77 | 1767 | 1496 | 58.89 | 49.87 |
| 233.1583 | 266.4667 | 249.81 | 244 | 8.13 | 2011 | 1233 | 67.02 | 41.1 |
| 266.4667 | 299.775 | 283.12 | 239 | 7.97 | 2250 | 989 | 74.99 | 32.97 |
| 299.775 | 333.0833 | 316.43 | 238 | 7.93 | 2488 | 750 | 82.92 | 25 |
| 333.0833 | 366.3917 | 349.74 | 245 | 8.17 | 2733 | 512 | 91.09 | 17.07 |
| 366.3917 | 399.7 | 383.05 | 267 | 8.90 | 3000 | 267 | 99.99 | 8.9 |
| Total | - | - | 3000 | 100.00 | - | - | - | - |
| Autor: Grupo 3 | ||||||||
# Histograma
histoP <- hist(
Precipitacion,
main = "Distribución de la Precipitación (mm)",
xlab = "Precipitación (mm)",
ylab = "Cantidad",
col = "blue"
)
# Tabla simplificada basada en el histograma
LimInf <- histoP$breaks[1:(length(histoP$breaks)-1)]
LimSup <- histoP$breaks[2:length(histoP$breaks)]
Mc_hist <- histoP$mids
ni_hist <- histoP$counts
hi_hist <- round(ni_hist / sum(ni_hist) * 100, 2)
hi_hist[length(hi_hist)] <- hi_hist[length(hi_hist)] + (100 - sum(hi_hist))
Ni_asc <- cumsum(ni_hist)
Ni_dsc <- rev(cumsum(rev(ni_hist)))
Hi_asc <- round(cumsum(hi_hist), 2)
Hi_dsc <- round(rev(cumsum(rev(hi_hist))), 2)
TDFP <- data.frame(LimInf, LimSup, Mc = Mc_hist, ni = ni_hist,
hi = hi_hist, Ni_asc, Ni_dsc, Hi_asc, Hi_dsc)
TDFPCompleto <- rbind(
TDFP,
data.frame(LimInf = "Total", LimSup = "-", Mc = "-", ni = sum(ni_hist),
hi = 100, Ni_asc = "-", Ni_dsc = "-", Hi_asc = "-", Hi_dsc = "-")
)
tablaPre <- TDFPCompleto %>%
gt() %>%
tab_header(
title = md("*Tabla Nº6*"),
subtitle = md("**Tabla simplificada de Precipitación (mm)**")
) %>%
tab_source_note(
source_note = md("Autor: Grupo 3")
) %>%
tab_style(
style = cell_text(weight = "bold"),
locations = cells_body(rows = LimInf == "Total")
)
# Mostrar tabla simplificada basada en el histograma
tablaPre
| Tabla Nº6 | ||||||||
| Tabla simplificada de Precipitación (mm) | ||||||||
| LimInf | LimSup | Mc | ni | hi | Ni_asc | Ni_dsc | Hi_asc | Hi_dsc |
|---|---|---|---|---|---|---|---|---|
| 0 | 50 | 25 | 365 | 12.17 | 365 | 3000 | 12.17 | 100 |
| 50 | 100 | 75 | 382 | 12.73 | 747 | 2635 | 24.9 | 87.83 |
| 100 | 150 | 125 | 367 | 12.23 | 1114 | 2253 | 37.13 | 75.1 |
| 150 | 200 | 175 | 392 | 13.07 | 1506 | 1886 | 50.2 | 62.87 |
| 200 | 250 | 225 | 385 | 12.83 | 1891 | 1494 | 63.03 | 49.8 |
| 250 | 300 | 275 | 360 | 12.00 | 2251 | 1109 | 75.03 | 36.97 |
| 300 | 350 | 325 | 349 | 11.63 | 2600 | 749 | 86.66 | 24.97 |
| 350 | 400 | 375 | 400 | 13.34 | 3000 | 400 | 100 | 13.34 |
| Total | - | - | 3000 | 100.00 | - | - | - | - |
| Autor: Grupo 3 | ||||||||
# Graficas
hist(Precipitacion, breaks = seq(min_val, max_val, A),
main = "Gráfica Nº23: Frecuencia Local de la Precipitación",
xlab = "Precipitación (mm)", ylab = "Frecuencia",
col = "#4A90E2")
hist(Precipitacion, breaks = seq(min_val, max_val, A),
main = "Gráfica Nº24: Frecuencia Global de la Precipitación",
xlab = "Precipitación (mm)", ylab = "Frecuencia",
col = "green", ylim = c(0, 3000))
barplot(TDFPrecipitacion$hi,
space = 0, col = "skyblue",
main = "Gráfica Nº25: Porcentaje Local de la Precipitación",
xlab = "Precipitación (mm)", ylab = "Porcentaje (%)",
names.arg = TDFPrecipitacion$MC, ylim = c(0, max(TDFPrecipitacion$hi)))
barplot(TDFPrecipitacion$hi,
space = 0, col = "yellow",
main = "Gráfica Nº26: Porcentaje Global de la Precipitación",
xlab = "Precipitación (mm)", ylab = "Porcentaje (%)",
names.arg = TDFPrecipitacion$MC, ylim = c(0, 100))
boxplot(Precipitacion,
horizontal = TRUE, col = "pink",
main = "Gráfica Nº27: Distribución de la Precipitación (mm)",
xlab = "Precipitación (mm)")
# Ojivas
plot(Li, Nidsc, type = "o", col = "red", lwd = 3,
main = "Gráfica Nº28: Frecuencia Ascendente y Descendente",
xlab = "Precipitación (mm)", ylab = "Cantidad", xaxt = "n")
lines(Ls, Niasc, type = "o", col = "green", lwd = 3)
axis(1, at = round(seq(min_val, max_val, length.out = 10), 0))
plot(Li, Hidsc, type = "o", col = "red", lwd = 2,
main = "Gráfica Nº29: Distribución Porcentual Ascendente y Descendente",
xlab = "Precipitación (mm)", ylab = "Porcentaje (%)", xaxt = "n")
lines(Ls, Hiasc, type = "o", col = "blue", lwd = 3)
axis(1, at = round(seq(min_val, max_val, length.out = 10), 0))
# INDICADORES ESTADISTICOS
media <- round(mean(Precipitacion), 2)
mediana <- round(median(Precipitacion), 2)
Tabla_Prec <- as.data.frame(table(Precipitacion))
moda <- as.numeric(names(Tabla_Prec)[Tabla_Prec$Freq == max(Tabla_Prec$Freq)])
varianza <- round(var(Precipitacion), 2)
desviacion <- round(sd(Precipitacion), 2)
cv <- round((desviacion / media) * 100, 2)
library(e1071)
asimetria <- round(skewness(Precipitacion, type = 2), 2)
curtosis <- round(kurtosis(Precipitacion), 2)
# Tabla resumen indicadores
tabla_indicadores <- data.frame(
Variable = "Precipitación",
Rango = paste0("[", min_val, " ; ", max_val, "]"),
X = media,
Me = mediana,
Mo = paste(moda, collapse = ", "),
V = varianza,
Sd = desviacion,
Cv = cv,
As = asimetria,
K = curtosis,
Valores_Atipicos = "No hay valores atípicos"
)
tabla_indicadores_gt <- tabla_indicadores %>%
gt() %>%
tab_header(
title = md("*Tabla N°7*"),
subtitle = md("**Indicadores Estadísticos de Precipitación (mm)**")
) %>%
tab_source_note(source_note = md("Autor: Grupo 3"))
# Mostrar tabla de indicadores estadísticos
tabla_indicadores_gt
| Tabla N°7 | ||||||||||
| Indicadores Estadísticos de Precipitación (mm) | ||||||||||
| Variable | Rango | X | Me | Mo | V | Sd | Cv | As | K | Valores_Atipicos |
|---|---|---|---|---|---|---|---|---|---|---|
| Precipitación | [0 ; 399.7] | 200.32 | 199 | NA | 13287.6 | 115.27 | 57.54 | 0.01 | -1.19 | No hay valores atípicos |
| Autor: Grupo 3 | ||||||||||
##============##
## CONCLUSION ##
##============##
# La variable Precipitación fluctua entre 0 y 399.7 y gira entorno a 200.32 con una desviación estandar de 115.27 siendo un conjuto de datos heterogeneo, los valores de acumulan de manera debil en la parte media de la variable. Sin presencia de valores atípicos.