# Tema: Estadística Descriptiva
# Autor: Grupo 1
# Fecha: 25/11/2025

setwd("C:/Users/LENOVO/OneDrive/Escritorio/ESTADISTICA")
datos <- read.csv("china_water_pollution_data.csv")

# Convertir la fecha correctamente
datos$Date <- as.Date(datos$Date)

# Extraer mes en número
datos$Month <- format(datos$Date, "%m")

# Crear tabla de frecuencias del mes
Mes <- datos$Month
TDF_mes <- data.frame(table(Mes))

# Frecuencia absoluta
ni <- TDF_mes$Freq
N <- sum(ni)

# Frecuencia relativa %
hi <- round((ni / N) * 100, 2)

# Ajustar para asegurar EXACTAMENTE 100%
hi[length(hi)] <- 100 - sum(hi[-length(hi)])

# Acumuladas
Ni_asc <- cumsum(ni)
Ni_desc <- rev(cumsum(rev(ni)))

Hi_asc <- round(cumsum(hi), 2)
Hi_asc[length(Hi_asc)] <- 100   # asegurar 100%

Hi_desc <- round(rev(cumsum(rev(hi))), 2)
Hi_desc[1] <- 100               # asegurar 100% arriba

# Tabla final con nombres EXACTOS usando check.names = FALSE
Tabla_Final <- data.frame(
  Mes = TDF_mes$Mes,
  ni = ni,
  "hi(%)" = hi,
  "Ni asc" = Ni_asc,
  "Ni desc" = Ni_desc,
  "Hi asc(%)" = Hi_asc,
  "Hi desc(%)" = Hi_desc,
  check.names = FALSE
)

# Agregar fila de TOTAL
Total <- data.frame(
  Mes = "TOTAL",
  ni = N,
  "hi(%)" = 100,
  "Ni asc" = "-",
  "Ni desc" = "-",
  "Hi asc(%)" = "-",
  "Hi desc(%)" = "-",
  check.names = FALSE
)

Tabla_Final <- rbind(Tabla_Final, Total)

# Mostrar tabla bonita
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(
  Tabla_Final,
  align = "c",
  caption = "Tabla de distribución de frecuencias mensuales de la contaminación del agua en China"
) %>%
  kable_styling(
    full_width = FALSE,
    position = "center",
    bootstrap_options = c("striped", "hover", "condensed")
  )
Tabla de distribución de frecuencias mensuales de la contaminación del agua en China
Mes ni hi(%) Ni asc Ni desc Hi asc(%) Hi desc(%)
01 241 8.03 241 3000 8.03 100
02 226 7.53 467 2759 15.56 91.97
03 266 8.87 733 2533 24.43 84.44
04 232 7.73 965 2267 32.16 75.57
05 253 8.43 1218 2035 40.59 67.84
06 261 8.70 1479 1782 49.29 59.41
07 310 10.33 1789 1521 59.62 50.71
08 246 8.20 2035 1211 67.82 40.38
09 231 7.70 2266 965 75.52 32.18
10 258 8.60 2524 734 84.12 24.48
11 225 7.50 2749 476 91.62 15.88
12 251 8.38 3000 251 100 8.38
TOTAL 3000 100.00
# Tabla de frecuencias absolutas del mes
TDF_Mes <- data.frame(table(datos$Month))
ni_mes <- TDF_Mes$Freq

# Gráfico de barras - Frecuencia absoluta local
barplot(ni,
        main = "Gráfica N°1: Distribución de la contaminación del agua según 
        el mes",
        xlab = "Mes (01-12)",
        ylab = "Cantidad de registros",
        col = "skyblue",
        ylim = c(0, max(ni)),
        names.arg = TDF_mes$Mes,  # ya es literal de tu tabla
        las = 2,
        cex.names = 0.8)

# Gráfico de barras - Porcentaje local
barplot(hi,
        main = "Gráfica N°2: Distribución porcentual de los meses en los que se 
        llevó a cabo el estudio de contaminación del agua",
        xlab = "Mes (01-12)",
        ylab = "Porcentaje (%)",
        col = "lightgreen",
        names.arg = TDF_mes$Mes,
        las = 2,
        cex.names = 0.8)

# Gráfico de barras - Frecuencia absoluta global
barplot(ni,
        main = "Gráfica N°3: Distribución de la contaminación del agua según 
        el mes",
        xlab = "Mes (01-12)",
        ylab = "Cantidad de registros",
        col = "skyblue",
        ylim = c(0,3000),
        names.arg = TDF_mes$Mes,  # ya es literal de tu tabla
        las = 2,
        cex.names = 0.8)

# Gráfico de barras - Porcentaje global
barplot(hi,
        main = "Gráfica N°4: Distribución porcentual de los meses en los 
        que se llevó a cabo el estudio de contaminación del agua",
        xlab = "Mes (01-12)",
        ylab = "Porcentaje (%)",
        col = "lightgreen",
        ylim = c(0,100),
        names.arg = TDF_mes$Mes,
        las = 2,
        cex.names = 0.8)