# 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 = ".")
Longitud <- datos$Longitude
Longitud <- na.omit(Longitud)
Longitud <- Longitud[Longitud >= 0]
n <- length(Longitud)
n
## [1] 3000
minimo <- min(Longitud)
maximo <- max(Longitud)
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(Longitud >= Li[i] & Longitud < Ls[i])
} else {
ni[i] <- sum(Longitud >= Li[i] & Longitud <= Ls[i])
}
}
hi <- ni/sum(ni)*100
Ni_asc <- cumsum(ni)
Hi_asc <- cumsum(hi)
TDF_Longitud <- data.frame(Li, Ls, Mc, ni, round(hi,2), Ni_asc, round(Hi_asc,2))
colnames(TDF_Longitud) <- c("Lim inf","Lim sup","MC","ni","hi(%)","Ni asc","Hi asc(%)")
kable(TDF_Longitud, align="c",
caption="Tabla de Frecuencias de Longitud según la Regla de Sturges") %>%
kable_styling(full_width = FALSE)
| Lim inf | Lim sup | MC | ni | hi(%) | Ni asc | Hi asc(%) |
|---|---|---|---|---|---|---|
| 100.02 | 102.10 | 101.060 | 236 | 7.87 | 236 | 7.87 |
| 102.10 | 104.18 | 103.140 | 248 | 8.27 | 484 | 16.14 |
| 104.18 | 106.26 | 105.220 | 265 | 8.84 | 749 | 24.97 |
| 106.26 | 108.34 | 107.300 | 260 | 8.67 | 1009 | 33.64 |
| 108.34 | 110.42 | 109.380 | 245 | 8.17 | 1254 | 41.81 |
| 110.42 | 112.51 | 111.465 | 252 | 8.40 | 1506 | 50.22 |
| 112.51 | 114.59 | 113.550 | 252 | 8.40 | 1758 | 58.62 |
| 114.59 | 116.67 | 115.630 | 239 | 7.97 | 1997 | 66.59 |
| 116.67 | 118.75 | 117.710 | 228 | 7.60 | 2225 | 74.19 |
| 118.75 | 120.83 | 119.790 | 261 | 8.70 | 2486 | 82.89 |
| 120.83 | 122.91 | 121.870 | 239 | 7.97 | 2725 | 90.86 |
| 122.91 | 125.00 | 123.955 | 274 | 9.14 | 2999 | 100.00 |
La tabla de distribución de frecuencias de la Longitud 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_Longitud <- hist(Longitud,
breaks = K,
plot = FALSE)
Li <- Hist_Longitud$breaks[-length(Hist_Longitud$breaks)]
Ls <- Hist_Longitud$breaks[-1]
ni <- Hist_Longitud$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 | 102 | 230 | 7.67 |
| 102 | 104 | 236 | 7.87 |
| 104 | 106 | 247 | 8.23 |
| 106 | 108 | 257 | 8.57 |
| 108 | 110 | 243 | 8.10 |
| 110 | 112 | 239 | 7.97 |
| 112 | 114 | 235 | 7.83 |
| 114 | 116 | 220 | 7.33 |
| 116 | 118 | 239 | 7.97 |
| 118 | 120 | 234 | 7.80 |
| 120 | 122 | 252 | 8.40 |
| 122 | 124 | 244 | 8.13 |
| 124 | 126 | 124 | 4.13 |
hist(Longitud, breaks = 10,
main = "Gráfica N°1: Distribución de Longitud
en el estudio de contaminación del agua
en China en el año 2023",
xlab = "Longitud(°)",
ylab = "Cantidad",
ylim = c(0, max(ni)),
col = "lightgreen")
hist(Longitud, breaks = 10,
main = "Gráfica N°2: Distribución general de la Longitud
en el estudio de contaminación del agua en China 2023",
xlab = "Longitud (°)",
ylab = "Cantidad",
ylim = c(0, max(ni)),
col = "lightgreen")
barplot(
height = TDF_Longitud$`hi(%)`,
space = 0,
col = "skyblue",
main = "Gráfica N°3: Distribución porcentual de Longitud
en el estudio de contaminación del agua en China 2023",
xlab = "Longitud (°)",
ylab = "Porcentaje (%)",
names.arg = TDF_Longitud$MC,
ylim = c(0,100)
)
boxplot(Longitud,
horizontal = TRUE,
main = "Gráfica N°6: Diagrama de caja de la Longitud
en el estudio de contaminación del agua en China 2023",
xlab = "Longitud (°)",
col = "green",
outline = TRUE)
summary(Longitud)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 100.0 106.3 112.4 112.5 119.0 125.0
Ni_asc <- cumsum(ni)
Ni_desc <- rev(cumsum(rev(ni)))
plot(Ls, Ni_asc,
type = "o",
col = "orange",
lwd = 3,
xlab = "Longitud (°)",
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 = "Longitud (°)",
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(Longitud),2)
mediana <- median(Longitud)
max_ni <- max(TDF_Longitud$ni)
moda <- TDF_Longitud$MC[TDF_Longitud$ni == max_ni]
media
## [1] 112.55
mediana
## [1] 112.4403
moda
## [1] 123.955
varianza <- var(Longitud)
sd <- sd(Longitud)
cv <- round((sd/media)*100,2)
varianza
## [1] 52.41977
sd
## [1] 7.24015
cv
## [1] 6.43
library(e1071)
asimetria <- skewness(Longitud, type = 2)
curtosis <- kurtosis(Longitud)
asimetria
## [1] 0.01733435
curtosis
## [1] -1.213753
tabla_indicadores <- data.frame(
"Variable" = "Longitud (°)",
"Rango" = paste0("[",min(Longitud),";",max(Longitud),"]"),
"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 Longitud (°)")
| Variable | Rango | X | Me | Mo | V | Sd | Cv | As | K |
|---|---|---|---|---|---|---|---|---|---|
| Longitud (°) | [100.017169;124.995576] | 112.55 | 112.44 | 123.955 | 52.42 | 7.24 | 6.43 | 0.02 | -1.21 |
La variable Longitud (°) fluctúa entre 100.02° y 124.99°, y sus valores giran en torno a 112.55°, con una desviación estándar de 7.24°, siendo un conjunto de datos con variabilidad relativamente baja (CV = 6.43%). Los valores se distribuyen de manera prácticamente simétrica (As ≈ 0.02), lo que indica que no existe una concentración marcada hacia valores extremos, y presentan una curtosis negativa moderada (K = -1.21), evidenciando una distribución más plana que la normal. Por lo anterior, el comportamiento de la variable Longitud (°) puede considerarse estable y representativo de la dispersión geográfica en el estudio de contaminación del agua en China durante el año 2023.