# Estadística Descriptiva: Nivel de Contaminación
# Autor: Camila Zambrano
# Fecha: 25/11/2025
# Carga de librerías
library(knitr)
library(kableExtra)

# Establecer directorio y cargar datos
setwd("C:/Users/Usuario/Documents/Camila/Estadística/R")

datos <- read.csv(
  "china_water_pollution_data.csv",
  header = TRUE,
  sep = ";",
  dec = "," )

# Extraer variable cualitativa ordinal
Nivel_contaminacion <- datos$Pollution_Level

# 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
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
# Diagrama de barras 
options(scipen = 999)
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.5,
  ylim = c(0, 700),
  las = 3,
  names.arg = TDF_nivel_contaminacion$`Nivel de contaminación`
)

# Diagrama de barras (porcentaje)
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, 30),
  las = 1,
  cex.names = 0.6,
  names.arg = TDF_nivel_contaminacion$`Nivel de contaminación`
)

# 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, 3000),
  las = 1,
  cex.names = 0.6,
  names.arg = TDF_nivel_contaminacion$`Nivel de contaminación`
)

# Diagrama de barras global (porcentaje)
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.6,
  names.arg = TDF_nivel_contaminacion$`Nivel de contaminación`
)

# Diagrama circular
n_categorias <- nrow(TDF_nivel_contaminacion)
colores <- heat.colors(n_categorias)

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",
  radius = 1.0,
  labels = paste0(TDF_nivel_contaminacion$`hi (%)`, "%"),
  col = colores,
  cex = 0.9,
  cex.main = 1
)

legend(
  "topright",
  legend = TDF_nivel_contaminacion$`Nivel de contaminación`,
  fill = colores,
  cex = 0.8,
  title = "Leyenda"
)