# Estadística Descriptiva: Nivel de Contaminación
# Autor: Grupo 1
# Fecha: 25/11/2025


# Establecer directorio y cargar datos
setwd("C:/Users/LENOVO/OneDrive/Escritorio/ESTADISTICA")
datos <- read.csv("china_water_pollution_data.csv")

# Extraer variable cualitativa ordinal
Nivel_cont <- datos$Pollution_Level

# Calcular frecuencias absolutas y relativas
ni <- table(Nivel_cont)                  
hi <- round(100 * ni / sum(ni), 2)       

# Crear dataframe con resultados
TDF_Nivel <- data.frame(
  Nivel = names(ni),
  ni = as.numeric(ni),
  hi = as.numeric(hi)
)

# Ordenar por jerarquía (Muy Alta → Muy Baja)
jerarquia <- c("Muy Alta","Alta","Media","Baja","Muy Baja")
TDF_Nivel <- TDF_Nivel[order(factor(TDF_Nivel$Nivel, levels = jerarquia)), ]
rownames(TDF_Nivel) <- NULL

# Agregar fila TOTAL
Sumatoria <- data.frame(
  Nivel = "TOTAL",
  ni = sum(TDF_Nivel$ni),
  hi = sum(TDF_Nivel$hi)
)

TDF_Nivel_suma <- rbind(TDF_Nivel, Sumatoria)

# Renombrar columnas
colnames(TDF_Nivel_suma) <- c("Nivel","ni","hi (%)")


# Mostrar tabla con estilo

library(knitr)
## Warning: package 'knitr' was built under R version 4.5.2
library(kableExtra)
## Warning: package 'kableExtra' was built under R version 4.5.2
kable(TDF_Nivel_suma, align = 'c',
      caption = "Tabla de Distribución de Frecuencias de Nivel de Contaminación") %>%
  kable_styling(full_width = FALSE, position = "center",
                bootstrap_options = c("striped", "hover", "condensed"))
Tabla de Distribución de Frecuencias de Nivel de Contaminación
Nivel 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 barrras local
options(scipen = 999)
barplot(TDF_Nivel$ni,
        main = "Gráfica N°1: Distribución de los niveles de contaminación del 
        agua en China",
        xlab = "Nivel de Contaminante",
        ylab = "Cantidad",
        col = "skyblue",
        cex.names = 0.5,      
        ylim = c(0, 700),
        las = 3,              
        names.arg = TDF_Nivel$Nivel)

barplot(TDF_Nivel$hi,
        main="Gráfica N°2: Distribución porcentual niveles de contaminación del 
        agua en China",
        xlab = "Nivel de Contaminante",
        ylab = "Porcentaje (%)",
        col = "green",
        ylim = c(0,30),
        las=1,
        names.arg=TDF_Nivel$Nivel)

# Diagrama de barrras global
barplot(TDF_Nivel$ni,
        main="Gráfica N°3: Distribución de cantidad de niveles de 
        contaminación del agua en China",
        ylab = "Cantidad",
        col = "pink",
        ylim = c(0,sum(ni)),
        las=1,
        cex.axis = 0.7,
        las=1,
        names.arg = TDF_Nivel$Nivel)

barplot(TDF_Nivel$hi,
        main="Gráfica N°4: Distribución porcentual de niveles de 
        contaminación del agua en China",
        ylab = "Porcentaje (%)",
        col = "skyblue",
        ylim = c(0,100),
        names.arg=TDF_Nivel$Nivel)

# Diagrma circular

pie(TDF_Nivel$hi,
    main = "Gráfica N° 5: Distribución porcentual de de niveles de 
        contaminación del agua en China",
    radius = 1,
    labels = paste0(TDF_Nivel$hi,"%"),
    col = colores <- c(heat.colors(3)),
    cex=1,
    cex.main=1.2)

legend("topright",
       legend = TDF_Nivel$Nivel,
       fill = colores <- c(heat.colors(3)),
       cex = 0.95,
       title = "Leyenda")