#UNIVERSIDAD CENTRAL DEL ECUADOR 
#Facultad de Ingeniería en Geología, Minas, Petroleos y Ambiental 
#Ingeniería Ambiental
#Autor: Grupo 4
#fecha:

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

#extraccion variable cuantitativa continua 
Recuento_Bacteria <- datos$Bacteria.Count..CFU.mL.

#Tabla de distribución de frecuencia

#Manualmente
min <- min(Recuento_Bacteria)
max <- max(Recuento_Bacteria)
R <- max-min
K <- floor(1+3.33*log10(length(Recuento_Bacteria)))
A <- R/K
lim_inf <- round(seq(from=min,to=max-A,by=A),2)
lim_sup <- round(seq(from=min+A,to=max,by=A),2)
MC <- (lim_inf+lim_sup)/2


ni <- c()
for (i in 1:K) {
  if (i < K) {
    ni[i] <- length(subset(Recuento_Bacteria, Recuento_Bacteria >= lim_inf[i] & Recuento_Bacteria < lim_sup[i]))
  } else {
    ni[i] <- length(subset(Recuento_Bacteria, Recuento_Bacteria >= lim_inf[i] & Recuento_Bacteria <= lim_sup[i]))
  }
}


sum(ni)
## [1] 3000
hi <- ni/sum(ni)*100
sum(hi)
## [1] 100
Ni_asc <- cumsum(ni)
Hi_asc <- cumsum(hi)
Ni_desc <- rev(cumsum(rev(ni)))
Hi_desc <- rev(cumsum(rev(hi)))



TDF_Bacteria <- data.frame(lim_inf,
                          lim_sup,
                          MC,ni,
                          round(hi,2), 
                          Ni_asc,
                          Ni_desc,
                          round(Hi_asc,2),
                          round(Hi_desc,2))

colnames(TDF_Bacteria) <- c("Lim inf","Lim sup","MC","ni","hi(%)",
                           "Ni asc","Ni desc","Hi asc(%)","Hi desc(%)")

# crear de fila de totales
totales <- c( lim_inf= "TOTAL",
              lim_sup= "-",
              MC= "-",
              ni= sum(ni),
              hi= sum(hi),
              Ni_asc= "-",
              Ni_des= "-",
              Hi_asc= "-",
              Hi_des= "-")

TDF_Bacteria_total <- rbind(TDF_Bacteria, totales)

# Tabla mas estetica
library(knitr)
library(kableExtra)

kable(TDF_Bacteria_total, align = 'c', 
      caption = "Tabla de Distribución de frecuencias de la cantidad de bactrias  
      (CFU/L) en los países analizados") %>%
  kable_styling(full_width = FALSE, position = "center", 
                bootstrap_options = c("striped", "hover", "condensed"))
Tabla de Distribución de frecuencias de la cantidad de bactrias
(CFU/L) en los países analizados
Lim inf Lim sup MC ni hi(%) Ni asc Ni desc Hi asc(%) Hi desc(%)
0 416.5 208.25 252 8.4 252 3000 8.4 100
416.5 833 624.75 231 7.7 483 2748 16.1 91.6
833 1249.5 1041.25 259 8.63 742 2517 24.73 83.9
1249.5 1666 1457.75 272 9.07 1014 2258 33.8 75.27
1666 2082.5 1874.25 235 7.83 1249 1986 41.63 66.2
2082.5 2499 2290.75 274 9.13 1523 1751 50.77 58.37
2499 2915.5 2707.25 225 7.5 1748 1477 58.27 49.23
2915.5 3332 3123.75 268 8.93 2016 1252 67.2 41.73
3332 3748.5 3540.25 244 8.13 2260 984 75.33 32.8
3748.5 4165 3956.75 250 8.33 2510 740 83.67 24.67
4165 4581.5 4373.25 253 8.43 2763 490 92.1 16.33
4581.5 4998 4789.75 237 7.9 3000 237 100 7.9
TOTAL
3000 100
#Simplificación con el histograma
Hist_Bacteria <- hist(Recuento_Bacteria,breaks = 10,plot=F)
k <- length(Hist_Bacteria$breaks)
Li <- Hist_Bacteria$breaks[1:(length(Hist_Bacteria$breaks)-1)]
Ls <- Hist_Bacteria$breaks[2:length(Hist_Bacteria$breaks)]
ni <- Hist_Bacteria$counts


sum(ni)
## [1] 3000
MC <- Hist_Bacteria$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)))
TDF_Bacteria <- 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(TDF_Bacteria) <- c("Lim inf","Lim sup","MC","ni","hi(%)",
                           "Ni asc","Ni desc","Hi asc(%)","Hi desc(%)")

# crear de fila de totales
totales <- c( lim_inf= "TOTAL",
              lim_sup= "-",
              MC= "-",
              ni= sum(ni),
              hi= sum(hi*100),
              Ni_asc= "-",
              Ni_des= "-",
              Hi_asc= "-",
              Hi_des= "-")

library(knitr)
library(kableExtra)

kable(TDF_Bacteria_total, align = 'c', 
      caption = "Tabla de Distribución de frecuencias de la cantidad de bactrias  
      (CFU/L) en los países analizados") %>%
  kable_styling(full_width = FALSE, position = "center", 
                bootstrap_options = c("striped", "hover", "condensed"))
Tabla de Distribución de frecuencias de la cantidad de bactrias
(CFU/L) en los países analizados
Lim inf Lim sup MC ni hi(%) Ni asc Ni desc Hi asc(%) Hi desc(%)
0 416.5 208.25 252 8.4 252 3000 8.4 100
416.5 833 624.75 231 7.7 483 2748 16.1 91.6
833 1249.5 1041.25 259 8.63 742 2517 24.73 83.9
1249.5 1666 1457.75 272 9.07 1014 2258 33.8 75.27
1666 2082.5 1874.25 235 7.83 1249 1986 41.63 66.2
2082.5 2499 2290.75 274 9.13 1523 1751 50.77 58.37
2499 2915.5 2707.25 225 7.5 1748 1477 58.27 49.23
2915.5 3332 3123.75 268 8.93 2016 1252 67.2 41.73
3332 3748.5 3540.25 244 8.13 2260 984 75.33 32.8
3748.5 4165 3956.75 250 8.33 2510 740 83.67 24.67
4165 4581.5 4373.25 253 8.43 2763 490 92.1 16.33
4581.5 4998 4789.75 237 7.9 3000 237 100 7.9
TOTAL
3000 100
# GRAFICAS

# Histograma
hist(Recuento_Bacteria, breaks = 11,
     main = "Gráfica N°1: Distribución de la cantidad de bacterias (CFU/L)
     presente en el estudio sobre contaminación del agua y enfermedades asociadas",
     xlab = "Recuento de Bacterias (CFU/L)",
     ylab = "Cantidad",
     ylim = c(0, max(ni)),
     col = "purple",
     cex.main = 0.9,
     cex.lab = 1,
     cex.axis = 0.9,
     xaxt = "n")
axis(1, at = Hist_Bacteria$breaks,
     labels = Hist_Bacteria$breaks, las = 1,
     cex.axis = 0.9)

# Global
hist(Recuento_Bacteria, breaks = 11,
     main = "Gráfica N°2:Distribución de la cantidad de bacterias (CFU/L) 
     presente en el estudio sobre contaminación del agua y enfermedades asociadas",
     xlab = "Recuento de Bacterias (CFU/L)",
     ylab = "Cantidad",
     ylim = c(0, length(Recuento_Bacteria)),
     col = "purple",
     cex.main = 0.9,
     cex.lab = 1,
     cex.axis = 0.9,
     xaxt = "n")
axis(1, at = Hist_Bacteria$breaks,
     labels = Hist_Bacteria$breaks, las = 1,
     cex.axis = 0.9)

barplot(TDF_Bacteria[["hi(%)"]],
        space=0,
        col = "skyblue",
        main ="Gráfica N°3:Distribución de la cantidad de bacterias (CFU/L)
        presente en el estudio sobre contaminación del agua y enfermedades",
        cex.main = 0.9,
        xlab="Recuento de Bacterias (CFU/L)",
        ylab="Porcentaje (%)",
        names.arg= TDF_Bacteria$MC,
        ylim = c(0,100))

# Local
hist(Recuento_Bacteria, breaks = 11,
     main = "Gráfica N°4:Distribución de la cantidad de bacterias (CFU/L)
        presente en el estudio sobre contaminación del agua y enfermedades asociadas",
     xlab = "Recuento de Bacteria (CFU/L)",
     ylab = "Cantidad",
     ylim = c(0,max(ni)),
     col = "purple",
     cex.main = 0.9,
     cex.lab = 1,
     cex.axis = 0.9,
     xaxt = "n")
axis(1, at = Hist_Bacteria$breaks,
     labels = Hist_Bacteria$breaks, las = 1,
     cex.axis = 0.9)

barplot(TDF_Bacteria$'hi(%)',space=0,
        col = "lightblue",
        main ="Gráfica N°5:Distribución de la cantidad de bacterias (CFU/L)
        presente en el estudio sobre contaminación del agua y enfermedades",
        xlab="Recuento de Bacteria (CFU/L)",
        cex.main = 1,
        ylab="Porcentaje (%)",
        ylim = c(0,14),
        names.arg = TDF_Bacteria$MC)

# Diagrama de Ojiva Ascendente y Descendente

plot(Ls,Ni_asc,
     main = "Gráfica N°6:Ojiva Ascendente y Descendente de la Distribución de la 
     cantidad de bacterias (CFU/L) presente en el estudio sobre contaminación 
     del agua y enfermedades asociadas",
     xlab = " Recuento de Bacteria (CFU/L)",
     ylab = "Cantidad",
     xlim = c(0,4998),
     col = "orange",
     cex.main = 0.9,
     cex.axis=0.8,
     type = "o",
     lwd = 3,
     las=1,
     xaxt="n")
lines(Li ,Ni_desc,
      col = "green",
      type = "o",
      lwd = 3)
axis(1, at = sort(unique(c(Ls, Li))))

# Diagrama de Ojiva Ascendente y Descendente Porcentual

plot(Ls, Hi_asc * 100,
     main = "Gráfica N°7:Ojiva Ascendente y Descendente de la Distribución de la 
     cantidad de bacterias (CFU/L) presente en el estudio sobre contaminación 
     del agua y enfermedades asociadas ",
     xlab = "Recuento de Bacteria (CFU/L)",
     ylab = "Porcentaje (%)",
     cex.main = 0.9,
     xlim = c(0,5000),
     col = "red",
     type = "o",
     lwd = 2,
     xaxt="n")
lines(Li, Hi_desc * 100,
      col = "blue",
      type = "o",
      lwd = 3)
axis(1, at = sort(unique(c(Ls, Li))))

# Diagrama de Caja

boxplot(Recuento_Bacteria,
        horizontal = TRUE,
        main = "Gráfica N°8:Distribución de la cantidad de bacterias (CFU/L)
        presente en el estudio sobre contaminación del agua 
        y enfermedades asociadas",
        xlab="Recuento de Bacteria (CFU/L)",
        xlab = "Recuento de Bacteria (CFU/L)",
        col = "purple",
        outline = TRUE,
        pch = 1)
## Warning in (function (z, notch = FALSE, width = NULL, varwidth = FALSE, :
## Duplicated argument xlab = "Recuento de Bacteria (CFU/L)" is disregarded

# INDICADORES ESTADISTICOS

# Indicadores de Tendencia Central

# Media aritmética
media <- round(mean(Recuento_Bacteria), 2)
media
## [1] 2488.48
# Moda
max_frecuencia <- max(TDF_Bacteria$ni)
moda <- TDF_Bacteria$MC[TDF_Bacteria$ni == max_frecuencia]
moda
## [1] 1250
# Mediana
mediana <- median(Recuento_Bacteria)
mediana
## [1] 2469
# INDICADORES DE DISPERSIÓN #

# Varianza
varianza <- var(Recuento_Bacteria)
varianza
## [1] 2048968
# Desviación Estándar
sd <- sd(Recuento_Bacteria)
sd
## [1] 1431.422
# Coeficiente de Variación
cv <- round((sd / media) * 100, 2)
cv
## [1] 57.52
# INDICADORES DE FORMA #
# Asimetría
library(e1071)
asimetria <- skewness(Recuento_Bacteria, type = 2)
asimetria
## [1] 0.01098353
#Curtosis
curtosis <- kurtosis(Recuento_Bacteria)
curtosis
## [1] -1.189556
tabla_indicadores <- data.frame("Variable" =c("Recuento de Bacteria (CFU/L)"),
                                "Rango" = c("[0 ;4998]"),
                                "X" = c(media),
                                "Me" = c(round(mediana,2)),
                                "Mo" = c("[1250]"),
                                "V" = c(round(varianza,2)),
                                "Sd" = c(round(sd,2)),
                                "Cv" = c(cv),
                                "As" = c(round(asimetria,4)),
                                "K" = c(round(curtosis,2)),
                                "Valores Atipicos" = "No hay presencia de  valores atípicos")
library(knitr)
kable(tabla_indicadores, align = 'c', caption = "Conclusiones de la variable
      Recuento de Bacteria (CFU/L) en el estudio de la contaminación del agua")
Conclusiones de la variable Recuento de Bacteria (CFU/L) en el estudio de la contaminación del agua
Variable Rango X Me Mo V Sd Cv As K Valores.Atipicos
Recuento de Bacteria (CFU/L) [0 ;4998] 2488.48 2469 [1250] 2048968 1431.42 57.52 0.011 -1.19 No hay presencia de valores atípicos