# Estadística Descriptiva: Nivel de Contaminación
# Autor: Camila Zambrano
# Fecha: 25/11/2025
# Carga de librerías
library(knitr)
library(kableExtra)
1. Carga de datos
getwd()
## [1] "C:/Users/Usuario/Documents/Camila/Estadística"
setwd("~/Camila/Estadística/R")
datos <- read.csv(
"china_water_pollution_data.csv",
header = TRUE,
sep = ";",
dec = ","
)
3. Tabla de distribución de frecuencia
TDF_nivel_contaminacion <- data.frame(table(Nivel_contaminacion))
ni <- TDF_nivel_contaminacion$Freq
hi <- round((ni / sum(ni)) * 100, 2)
Nivel_contaminacion <- TDF_nivel_contaminacion$Nivel_contaminacion
TDF_nivel_contaminacion <- data.frame(Nivel_contaminacion, ni, hi)
# Agregar fila TOTAL
Sumatoria <- data.frame(
Nivel_contaminacion = "TOTAL",
ni = sum(ni),
hi = 100
)
TDF_nivel_contaminacion_suma <- rbind(TDF_nivel_contaminacion, Sumatoria)
# Renombrar columnas para presentación
colnames(TDF_nivel_contaminacion_suma) <- c("Nivel de contaminación", "ni", "hi (%)")
colnames(TDF_nivel_contaminacion) <- c("Nivel de contaminación", "ni", "hi (%)")
# Mostrar tabla con estilo
library(knitr)
library(kableExtra)
# Mostrar tabla con estilo
kable(
TDF_nivel_contaminacion_suma,
align = "c",
caption = "Tabla N°5: Tabla de Distribución de Frecuencias de los Niveles de contaminación
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 N°5: Tabla de Distribución de Frecuencias de los Niveles de
contaminación de estudio de contaminación del agua en China en el año
2023.
|
Nivel de contaminación
|
ni
|
hi (%)
|
|
Excellent
|
594
|
19.80
|
|
Good
|
622
|
20.73
|
|
Moderate
|
588
|
19.60
|
|
Poor
|
587
|
19.57
|
|
Very Poor
|
609
|
20.30
|
|
TOTAL
|
3000
|
100.00
|
4. Gráficas
4.1 Diagrama de Barras Local
barplot(
TDF_nivel_contaminacion$ni,
main = "Gráfica N°1: Distribución de frecuencia de los Niveles de contaminación
de estudio de contaminación del agua en China en el año 2023",
xlab = "Niveles de contaminación",
ylab = "Cantidad",
col = "skyblue",
cex.names = 0.8,
ylim = c(0, max(TDF_nivel_contaminacion$ni) * 1.2),
las = 3,
names.arg = TDF_nivel_contaminacion$`Nivel de contaminación`
)

4.2 Diagrama de Barras Porcentual Local
barplot(
TDF_nivel_contaminacion$`hi (%)`,
main = "Gráfica N°2: Distribución porcentual de los Niveles de contaminación
de estudio de contaminación del agua en China en el año 2023",
xlab = "Niveles de contaminación",
ylab = "Porcentaje",
col = "green",
ylim = c(0, max(TDF_nivel_contaminacion$`hi (%)`) * 1.2),
las = 1,
cex.names = 0.8,
names.arg = TDF_nivel_contaminacion$`Nivel de contaminación`
)

4.3 Diagrama de Barras Global
barplot(
TDF_nivel_contaminacion$ni,
main = "Gráfica N°3: Distribución de frecuencias de los Niveles de contaminación
de estudio de contaminación del agua en China en el año 2023",
xlab = "Niveles de contaminación",
ylab = "Cantidad",
col = "pink",
ylim = c(0, sum(TDF_nivel_contaminacion$ni)),
las = 1,
cex.names = 0.8,
names.arg = TDF_nivel_contaminacion$`Nivel de contaminación`
)

4.4 Diagrama de Barras Porcentual Global
barplot(
TDF_nivel_contaminacion$`hi (%)`,
main = "Gráfica N°4: Distribución porcentual de los Niveles de contaminación
de estudio de contaminación del agua en China en el año 2023",
xlab = "Niveles de contaminación",
ylab = "Porcentaje",
col = "skyblue",
ylim = c(0, 100),
las = 1,
cex.names = 0.8,
names.arg = TDF_nivel_contaminacion$`Nivel de contaminación`
)

4.5 Diagrama Circular
colores <- heat.colors(nrow(TDF_nivel_contaminacion))
pie(
TDF_nivel_contaminacion$`hi (%)`,
main = "Gráfica N°5: Distribución porcentual de los Niveles de contaminación
de estudio de contaminación del agua en China en el año 2023",
labels = paste0(TDF_nivel_contaminacion$`hi (%)`, "%"),
col = colores
)
legend(
"topright",
legend = TDF_nivel_contaminacion$`Nivel de contaminación`,
fill = colores,
cex = 0.8
)

5. Indicadores Estadísticos
# Moda
moda <- TDF_nivel_contaminacion$`Nivel de contaminación`[
which.max(TDF_nivel_contaminacion$ni)
]
moda
## [1] Good
## Levels: Excellent Good Moderate Poor Very Poor
6. Tabla de Indicadores
tabla_indicadores <- data.frame(
Variable = "Nivel de contaminación",
Rango = "-",
X = "-",
Me = "-",
Mo = as.character(moda),
V = "-",
Sd = "-",
Cv = "-",
As = "-",
K = "-",
`Valores Atipicos` = "No hay valores atípicos",
check.names = FALSE
)
kable(
tabla_indicadores,
align = "c",
caption = "Conclusiones de la variable Nivel de contaminación"
)
Conclusiones de la variable Nivel de contaminación
| Nivel de contaminación |
- |
- |
- |
Good |
- |
- |
- |
- |
- |
No hay valores atípicos |
7. Conclusión
La variable ordinal Nivel de contaminación fluctúa o se encuentra
entre Very Poor y Excellent. En el análisis de tendencia central, no se
identifica una mediana definida, debido a que la frecuencia acumulada no
permite ubicar un valor central único dentro del orden ordinal de las
categorías. Sin embargo, la moda corresponde al nivel Good, lo que
indica que esta categoría es la que se presenta con mayor frecuencia en
el estudio.