#Tema: Estadística Descriptiva
#Fecha: 23/11/2025
#Autor:Anahi Sosa
#Carga de librerias
library(knitr)
library(kableExtra)
1. Carga de Datos
#Carga de datos
getwd()
## [1] "/cloud/project"
setwd("/cloud/project")
datos<- read.csv("china_water_pollution_data.csv",header = TRUE, sep = ",",
dec = ".")
3. Tabla de distribución de frecuencia
#Manualmente
min <-min(MP_Cadmio)
max <-max(MP_Cadmio)
R <-max-min
K <- floor(1+3.33*log10(length(MP_Cadmio)))
A <-R/K
Li <-round(seq(from=min,to=max-A,by=A),2)
Li[1] <- min(MP_Cadmio)
Ls <-round(seq(from=min+A,to=max,by=A),2)
Mc <-(Li+Ls)/2
tol <- 1e-9
ni <- numeric(K)
for (i in 1:K) {
if (i < K) {
ni[i] <- sum(MP_Cadmio >= Li[i] & MP_Cadmio < Ls[i])
} else {
ni[i] <- sum(MP_Cadmio >= Li[i] & MP_Cadmio <= Ls[i])
}
}
sum(ni)
## [1] 2979
hi <-ni/sum(ni)*100
Ni_asc<-cumsum(ni)
Hi_asc<-cumsum(hi)
Ni_desc<-rev(cumsum(rev(ni)))
Hi_desc<-rev(cumsum(rev(hi)))
TDFMP_Cadmio <- data.frame(
Li, Ls, Mc, ni, round(hi, 2), Ni_asc, Ni_desc, round(Hi_asc, 2), round(Hi_desc, 2)
)
colnames(TDFMP_Cadmio)<- c("Li","Ls","Mc","ni","hi","Ni_asc(%)","Ni_desc(%)","Hi_asc","Hi_desc")
#Crear fila de totales
totales<-c(
Li="-",
Ls="-",
Mc="-",
ni=sum(ni),
hi=sum(hi),
Ni_asc="-",
Ni_desc="-",
Hi_asc="-",
Hi_desc="-")
TDFMP_Cadmio<-rbind(TDFMP_Cadmio,totales)
#Simplificación con el histograma
Hist_MP_Cadmio<-hist(MP_Cadmio,breaks = 8,plot = F)
k<-length(Hist_MP_Cadmio$breaks)
Li<-Hist_MP_Cadmio$breaks[1:(length(Hist_MP_Cadmio$breaks)-1)]
Ls<-Hist_MP_Cadmio$breaks[2:length(Hist_MP_Cadmio$breaks)]
ni<-Hist_MP_Cadmio$counts
sum(ni)
## [1] 2979
Mc<-Hist_MP_Cadmio$mids
hi<-(ni/sum(ni))
sum(hi)
## [1] 1
Ni_asc<-cumsum(ni)
Hi_asc<-cumsum(hi)
Ni_desc<-rev(cumsum(rev(ni)))
Hi_desc<-rev(cumsum(rev(hi)))
TDFMP_Cadmio<-data.frame(Li=round(Li,2),
Ls=round(Ls,2),
Mc=round(Mc,2),
ni=ni,
hi=round(hi*100,2),
Ni_asc=Ni_asc,
Ni_desc=Ni_desc,
Hi_asc=round(Hi_asc*100,2),
Hi_desc=round(Hi_desc*100,2))
colnames(TDFMP_Cadmio)<-c("Lim inf","Lim sup","MC","ni","hi(%)","Ni asc","Ni desc","Hi asc(%)","Hi desc(%)")
#Crear fila de totales
totales<-c(Li="TOTAL",
Ls="-",
Mc="-",
ni=sum(ni),
hi=sum(hi*100),
Ni_asc="-",
Ni_desc="-",
Hi_asc="-",
Hi_desc="-")
TDFMP_Cadmio_total<-rbind(TDFMP_Cadmio,totales)
library(knitr)
library(kableExtra)
kable(TDFMP_Cadmio_total, align = 'c', caption = "Tabla de Frecuencias de metales pesados
de Cadmio de estudio de contaminación del agua en China en el año 2023 ") %>%
kable_styling(full_width = FALSE, position = "center", bootstrap_options = c("striped", "hover", "condensed"))
Tabla de Frecuencias de metales pesados de Cadmio de estudio de
contaminación del agua en China en el año 2023
|
Lim inf
|
Lim sup
|
MC
|
ni
|
hi(%)
|
Ni asc
|
Ni desc
|
Hi asc(%)
|
Hi desc(%)
|
|
0
|
0.2
|
0.1
|
193
|
6.48
|
193
|
2979
|
6.48
|
100
|
|
0.2
|
0.4
|
0.3
|
719
|
24.14
|
912
|
2786
|
30.61
|
93.52
|
|
0.4
|
0.6
|
0.5
|
1190
|
39.95
|
2102
|
2067
|
70.56
|
69.39
|
|
0.6
|
0.8
|
0.7
|
699
|
23.46
|
2801
|
877
|
94.02
|
29.44
|
|
0.8
|
1
|
0.9
|
163
|
5.47
|
2964
|
178
|
99.5
|
5.98
|
|
1
|
1.2
|
1.1
|
14
|
0.47
|
2978
|
15
|
99.97
|
0.5
|
|
1.2
|
1.4
|
1.3
|
1
|
0.03
|
2979
|
1
|
100
|
0.03
|
|
TOTAL
|
|
|
2979
|
100
|
|
|
|
|
4. Gráficas
4.1 Histograma
#Histograma
hist(MP_Cadmio,breaks = 10,
main = "Gráfica N°1: Distribución de la cantidad de metales pesados
de Cadmio de estudio de contaminación del agua
en China en el año 2023",
xlab = " Metales Pesados - Cadmio (µg/L) ",
ylab = "Cantidad",
ylim = c(0,max(ni)),
col = "pink",
cex.main=1.3,
cex.lab=1,
cex.axis=0.9,
xaxt="n")
axis(1,at=Hist_MP_Cadmio$breaks,labels = Hist_MP_Cadmio$breaks,las=1,
cex.axis=0.9)

4.2 Histograma general
# Gráfico
hist(MP_Cadmio, breaks = 10,
main = "Gráfica N°2: Distribución de la cantidad de metales pesados
de cadmio en el estudio de contaminación
del agua en China 2023",
xlab = "Metales Pesados Cadmio (µg/L)",
ylab = "Cantidad",
ylim = c(0, 2979),
col = "pink",
cex.main = 1.3,
cex.lab = 1,
cex.axis = 0.9,
xaxt = "n",
yaxt = "n")
# Forzar marcas del eje Y incluyendo 2979
ticks_y <- c(seq(0, 2500, by = 500), 2979)
# Eje X
axis(1,
at = Hist_MP_Cadmio$breaks,
labels = round(Hist_MP_Cadmio$breaks, 2),
las = 1,
cex.axis = 0.9)
axis(2, at = ticks_y,
labels = ticks_y,
las = 1,
cex.axis = 0.9)

4.3 Histograma Porcentual general
barplot(
height = TDFMP_Cadmio$hi,
space = 0,
col = "skyblue",
main = "Gráfica N°3: Distribución porcentual de metales pesados de Cadmio
de estudio de contaminación del agua en China en el año 2023",
xlab = "Metales Pesados - Cadmio (µg/L)",
ylab = "Porcentaje (%)",
names.arg = TDFMP_Cadmio$MC,
ylim = c(0, 100)
)

4.4 Histograma por sector de estudio
# Local
hist(MP_Cadmio, breaks = 10,
main ="Gráfica N°4:Distribución porcentual de metales pesados
de cadmio de estudio de contaminación del agua
en China en el año 2023",
xlab = "Metales Pesados - Cadmio (µg/L)",
ylab = "Cantidad",
ylim = c(0,max(ni)),
col = "purple",
cex.main = 1.3,
cex.lab = 1,
cex.axis = 0.9,
xaxt = "n")
axis(1, at = Hist_MP_Cadmio$breaks,
labels = Hist_MP_Cadmio$breaks, las = 1,
cex.axis = 0.9)

4.5 Histograma Porcentual por sector de estudio
barplot(
height = TDFMP_Cadmio$hi,
space = 0,
col = "skyblue",
main = "Gráfica N°5: Distribución porcentual de metales pesados de cadmio
de estudio de contaminación del agua en China en el año 2023",
xlab = "Metales Pesados - Cadmio (µg/L)",
ylab = "Porcentaje (%)",
names.arg = TDFMP_Cadmio$MC,
ylim = c(0, 40)
)

5. Diagrama de Caja
boxplot(MP_Cadmio,
horizontal = TRUE,
main = "Gráfica N°6:Distribución de frecuencia de metales pesados de
cadmio de estudio de contaminación del agua
en China en el año 2023 ",
xlab = "Metales Pesados -Cadmio (µg/L) ",
col = "purple",
outline = TRUE,
pch = 1)

summary(MP_Cadmio)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.3700 0.5000 0.5046 0.6300 1.3000
6. Ojivas
6.1 Ojivas Ascendente y Descendente (ni)
# Diagrama de Ojiva Ascendente y Descendente
plot(Li, Ni_asc,
main = "Gráfica N°7: Distribución de frecuencias acumuladas Ascendente y
Descendente de metales pesados de cadmio en el estudio
de contaminación del agua en China, 2023",
xlab = "Metales Pesados – Cadmio (µg/L)",
ylab = "Cantidad",
xlim = c(min(Li), max(Ls)),
ylim = c(0, 2979),
col = "orange",
type = "o",
lwd = 3,
las = 1,
xaxt = "n",
yaxt = "n",
cex.axis = 0.8)
lines(Ls, Ni_desc,
col = "green",
type = "o",
lwd = 3)
# Eje X
axis(1, at = Li, las = 1)
# Eje Y completo hasta 2979
axis(2,
at = c(seq(0, 2500, by = 500), 2979),
labels = c(seq(0, 2500, by = 500), 2979),
las = 1)

6.2 Ojiva Ascendente y Descendente (hi)
# Diagrama de Ojiva Ascendente y Descendente Porcentual
plot(Li, Hi_desc *100,
main = "Gráfica N°8: Distribución porcentual acumulada Ascendente y
Descendente de metales pesados de cadmio
de contaminación del agua en China en el año 2023",
xlab = "Metales Pesados - Cadmio (µg/L)",
ylab = "Cantidad",
xlim = c(min(Li), max(Ls)),
col = "red",
cex.axis = 0.8,
type = "o",
lwd = 3,
las = 1,
xaxt = "n")
lines(Ls, Hi_asc *100,
col = "blue",
type = "o",
lwd = 3)
axis(1, at = Li, las = 1)

7. Indicadores Estadísticos
7.1 Indicadores de Tendencia Cental
# Media aritmética
media <- round(mean(MP_Cadmio), 2)
media
## [1] 0.5
# Moda
max_ni <- max(TDFMP_Cadmio$ni)
moda <- TDFMP_Cadmio$MC[TDFMP_Cadmio$ni == max_ni]
moda
## [1] 0.5
# Mediana
mediana <- median(MP_Cadmio)
mediana
## [1] 0.5
7.2 Indicadores de Dispersión
# Varianza
varianza <- var(MP_Cadmio)
varianza
## [1] 0.03704278
# Desviación Estándar
sd <- sd(MP_Cadmio)
sd
## [1] 0.192465
# Coeficiente de Variación
cv <- round((sd / media) * 100, 2)
cv
## [1] 38.49
8. Tabla Resumen
tabla_indicadores <- data.frame("Variable" =c("Metales Pesados -Cd (µg/L)"),
"Rango" = c("[0;1.3]"),
"X" = c(media),
"Me" = c(round(mediana,2)),
"Mo" = c(moda),
"V" = c(round(varianza,2)),
"Sd" = c(round(sd,2)),
"Cv" = c(cv),
"As" = c(round(asimetria,2)),
"K" = c(round(curtosis,2)),
"Valores Atipicos" = "[1.0;1.3]")
library(knitr)
kable(tabla_indicadores, align = 'c', caption = "Conclusiones de la variable
Metales Pesados -Cd (µg/L)")
Conclusiones de la variable Metales Pesados -Cd
(µg/L)
| Metales Pesados -Cd (µg/L) |
[0;1.3] |
0.5 |
0.5 |
0.5 |
0.04 |
0.19 |
38.49 |
0.08 |
-0.13 |
[1.0;1.3] |
9. Conclusión
La variable Metales Pesados Cadmio(µg/L) fluctua entre 0 y 1.3 y sus
valores giran entorno a 0.5, con una desviación estandar de 0.19 siendo
un conjunto de valores heterogéneo. Los valores se acumulan de manera
moderada en la parte baja de la variable. Con valores atípicos que parte
1 a 1.3, por lo anterior Metales Pesados Cadmio (µg/L) es siendo
moderadamente bueno para el caso de analisis de contaminación del agua
en China en el año 2023.