# Librerías
library(kableExtra)
library(knitr)
library(magrittr)
library(dplyr)
##
## Adjuntando el paquete: 'dplyr'
## The following object is masked from 'package:kableExtra':
##
## group_rows
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(e1071)
# Cargar datos
datos <- read.csv("china_water_pollution_data.csv",
header = TRUE,
sep = ",",
dec = ".")
Conductividad <- datos$Conductivity_uS_cm
Conductividad <- na.omit(Conductividad)
Conductividad <- Conductividad[Conductividad >= 0]
n <- length(Conductividad)
n
## [1] 3000
minimo <- min(Conductividad)
maximo <- max(Conductividad)
R <- maximo - minimo
K <- floor(1 + 3.322 * log10(n))
A <- R / K
Li <- round(seq(from = minimo, to = maximo - A, by = A),2)
Ls <- round(seq(from = minimo + A, to = maximo, by = A),2)
Mc <- (Li + Ls)/2
ni <- numeric(K)
for (i in 1:K) {
if (i < K) {
ni[i] <- sum(Conductividad >= Li[i] & Conductividad < Ls[i])
} else {
ni[i] <- sum(Conductividad >= Li[i] & Conductividad <= Ls[i])
}
}
hi <- ni/sum(ni)*100
Ni_asc <- cumsum(ni)
Hi_asc <- cumsum(hi)
TDF_Conductividad <- data.frame(Li, Ls, Mc, ni, round(hi,2), Ni_asc, round(Hi_asc,2))
colnames(TDF_Conductividad) <- c("Lim inf","Lim sup","MC","ni","hi(%)","Ni asc","Hi asc(%)")
kable(TDF_Conductividad, align="c",
caption="Tabla de Frecuencias de la Conductividad según la Regla de Sturges") %>%
kable_styling(full_width = FALSE)
| Lim inf | Lim sup | MC | ni | hi(%) | Ni asc | Hi asc(%) |
|---|---|---|---|---|---|---|
| 136.85 | 195.69 | 166.270 | 5 | 0.17 | 5 | 0.17 |
| 195.69 | 254.52 | 225.105 | 21 | 0.70 | 26 | 0.87 |
| 254.52 | 313.36 | 283.940 | 79 | 2.63 | 105 | 3.50 |
| 313.36 | 372.20 | 342.780 | 201 | 6.70 | 306 | 10.20 |
| 372.20 | 431.03 | 401.615 | 452 | 15.07 | 758 | 25.27 |
| 431.03 | 489.87 | 460.450 | 658 | 21.93 | 1416 | 47.20 |
| 489.87 | 548.71 | 519.290 | 707 | 23.57 | 2123 | 70.77 |
| 548.71 | 607.54 | 578.125 | 476 | 15.87 | 2599 | 86.63 |
| 607.54 | 666.38 | 636.960 | 272 | 9.07 | 2871 | 95.70 |
| 666.38 | 725.22 | 695.800 | 104 | 3.47 | 2975 | 99.17 |
| 725.22 | 784.05 | 754.635 | 19 | 0.63 | 2994 | 99.80 |
| 784.05 | 842.89 | 813.470 | 6 | 0.20 | 3000 | 100.00 |
La tabla de distribución de frecuencias de la Conductividad fue construida inicialmente aplicando la Regla de Sturges para determinar el número óptimo de clases.
Posteriormente, el procedimiento se simplificó utilizando la función hist(), obteniendo automáticamente los intervalos y frecuencias, confirmando los resultados obtenidos manualmente.
Hist_Conductividad <- hist(Conductividad,
breaks = K,
plot = FALSE)
Li <- Hist_Conductividad$breaks[-length(Hist_Conductividad$breaks)]
Ls <- Hist_Conductividad$breaks[-1]
ni <- Hist_Conductividad$counts
hi <- round((ni/sum(ni))*100,2)
TDF_simplificada <- data.frame(
Lim_inf = round(Li,2),
Lim_sup = round(Ls,2),
ni = ni,
hi = hi
)
kable(TDF_simplificada,
align="c",
caption="Tabla simplificada obtenida mediante hist()")
| Lim_inf | Lim_sup | ni | hi |
|---|---|---|---|
| 100 | 150 | 1 | 0.03 |
| 150 | 200 | 5 | 0.17 |
| 200 | 250 | 15 | 0.50 |
| 250 | 300 | 55 | 1.83 |
| 300 | 350 | 124 | 4.13 |
| 350 | 400 | 287 | 9.57 |
| 400 | 450 | 458 | 15.27 |
| 450 | 500 | 598 | 19.93 |
| 500 | 550 | 593 | 19.77 |
| 550 | 600 | 413 | 13.77 |
| 600 | 650 | 267 | 8.90 |
| 650 | 700 | 129 | 4.30 |
| 700 | 750 | 38 | 1.27 |
| 750 | 800 | 15 | 0.50 |
| 800 | 850 | 2 | 0.07 |
hist(Conductividad, breaks = 10,
main = "Gráfica N°1: Distribución de Conductividad
en el estudio de contaminación del agua
en China en el año 2023",
xlab = "Conductividad (µS/cm)",
ylab = "Cantidad",
ylim = c(0, max(ni)),
col = "lightgreen")
hist(Conductividad, breaks = 10,
main = "Gráfica N°2: Distribución general de la onductividad
en el estudio de contaminación del agua en China 2023",
xlab = "Conductividad (µS/cm)",
ylab = "Cantidad",
ylim = c(0, max(ni)),
col = "lightgreen")
barplot(
height = TDF_Conductividad$`hi(%)`,
space = 0,
col = "skyblue",
main = "Gráfica N°3: Distribución porcentual de Conductividad
en el estudio de contaminación del agua en China 2023",
xlab = "Conductividad (µS/cm)",
ylab = "Porcentaje (%)",
names.arg = TDF_Conductividad$MC,
ylim = c(0,100)
)
boxplot(Conductividad,
horizontal = TRUE,
main = "Gráfica N°6: Diagrama de caja de la Conductividad
en el estudio de contaminación del agua en China 2023",
xlab = "Conductividad (µS/cm)",
col = "green",
outline = TRUE)
summary(Conductividad)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 136.8 430.2 496.3 496.6 561.3 842.9
Ni_asc <- cumsum(ni)
Ni_desc <- rev(cumsum(rev(ni)))
plot(Ls, Ni_asc,
type = "o",
col = "orange",
lwd = 3,
xlab = "Conductividad (µS/cm)",
ylab = "Frecuencia acumulada",
main = "Gráfica N°7: Ojiva Ascendente y Descendente")
lines(Li, Ni_desc,
type = "o",
col = "green",
lwd = 3)
Hi_asc <- cumsum(hi)
Hi_desc <- rev(cumsum(rev(hi)))
plot(Ls, Hi_asc,
type = "o",
col = "blue",
lwd = 3,
xlab = "Conductividad (µS/cm)",
ylab = "Porcentaje acumulado (%)",
main = "Gráfica N°8: Ojiva porcentual Ascendente y Descendente")
lines(Li, Hi_desc,
type = "o",
col = "red",
lwd = 3)
media <- round(mean(Conductividad),2)
mediana <- median(Conductividad)
max_ni <- max(TDF_Conductividad$ni)
moda <- TDF_Conductividad$MC[TDF_Conductividad$ni == max_ni]
media
## [1] 496.56
mediana
## [1] 496.315
moda
## [1] 519.29
varianza <- var(Conductividad)
sd <- sd(Conductividad)
cv <- round((sd/media)*100,2)
varianza
## [1] 9776.187
sd
## [1] 98.8746
cv
## [1] 19.91
library(e1071)
asimetria <- skewness(Conductividad, type = 2)
curtosis <- kurtosis(Conductividad)
asimetria
## [1] -0.03012506
curtosis
## [1] 0.03063271
tabla_indicadores <- data.frame(
"Variable" = "Conductividad (µS/cm)",
"Rango" = paste0("[",min(Conductividad),";",max(Conductividad),"]"),
"X" = media,
"Me" = round(mediana,2),
"Mo" = moda,
"V" = round(varianza,2),
"Sd" = round(sd,2),
"Cv" = cv,
"As" = round(asimetria,2),
"K" = round(curtosis,2)
)
kable(tabla_indicadores, align='c',
caption="Conclusiones de la variable Conductividad (µS/cm)")
| Variable | Rango | X | Me | Mo | V | Sd | Cv | As | K |
|---|---|---|---|---|---|---|---|---|---|
| Conductividad (µS/cm) | [136.85;842.89] | 496.56 | 496.32 | 519.29 | 9776.19 | 98.87 | 19.91 | -0.03 | 0.03 |
La variable Conductividad (µS/cm) fluctúa entre 136.85 y 842.89 µS/cm, y sus valores giran en torno a 496.56 µS/cm, con una desviación estándar de 98.87 µS/cm, siendo un conjunto de datos con variabilidad moderada (CV = 19.91%). Los valores se distribuyen de manera prácticamente simétrica (As ≈ -0.03), lo que indica que no existe una concentración marcada hacia valores bajos o altos, y presentan una curtosis cercana a cero (K = 0.03), evidenciando una distribución aproximadamente normal. Por lo anterior, el comportamiento de la variable Conductividad (µS/cm) puede considerarse estable y representativo para el análisis de la calidad del agua en China durante el año 2023.