#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
Concentracion_plomo <- datos$Lead.Concentration..µg.L.

#Tabla de distribución de frecuencia

#Manualmente
min <- min(Concentracion_plomo)
max <- max(Concentracion_plomo)
R <- max-min
K <- floor(1+3.33*log10(length(Concentracion_plomo)))
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(Concentracion_plomo, Concentracion_plomo >= lim_inf[i] & Concentracion_plomo < lim_sup[i]))
  } else {
    ni[i] <- length(subset(Concentracion_plomo, Concentracion_plomo >= lim_inf[i] & Concentracion_plomo <= 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_Plomo <- 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_Plomo) <- 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_Plomo_total <- rbind(TDF_Plomo, totales)

library(knitr)
library(kableExtra)

kable(TDF_Plomo_total, align = 'c', 
      caption = "Tabla de Distribución de frecuencias  de concentración de Plomo (µg/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 concentración de Plomo (µg/L) en los países analizados
Lim inf Lim sup MC ni hi(%) Ni asc Ni desc Hi asc(%) Hi desc(%)
0 1.67 0.835 268 8.93 268 3000 8.93 100
1.67 3.33 2.5 226 7.53 494 2732 16.47 91.07
3.33 5 4.165 240 8 734 2506 24.47 83.53
5 6.67 5.835 273 9.1 1007 2266 33.57 75.53
6.67 8.33 7.5 254 8.47 1261 1993 42.03 66.43
8.33 10 9.165 228 7.6 1489 1739 49.63 57.97
10 11.67 10.835 236 7.87 1725 1511 57.5 50.37
11.67 13.33 12.5 225 7.5 1950 1275 65 42.5
13.33 15 14.165 293 9.77 2243 1050 74.77 35
15 16.67 15.835 255 8.5 2498 757 83.27 25.23
16.67 18.33 17.5 242 8.07 2740 502 91.33 16.73
18.33 20 19.165 260 8.67 3000 260 100 8.67
TOTAL
3000 100
#Simplificación con el histograma
Hist_Plomo <- hist(Concentracion_plomo,breaks = 10,plot=F)
k <- length(Hist_Plomo$breaks)
Li <- Hist_Plomo$breaks[1:(length(Hist_Plomo$breaks)-1)]
Ls <- Hist_Plomo$breaks[2:length(Hist_Plomo$breaks)]
ni <- Hist_Plomo$counts

sum(ni)
## [1] 3000
MC <- Hist_Plomo$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_Plomo <- 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_Plomo) <- 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= "-")

TDF_Plomo_total <- rbind(TDF_Plomo, totales)

kable(TDF_Plomo_total, align = 'c', 
      caption = "Tabla de Distribución de frecuencias  de concentración de Plomo (µg/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 concentración de Plomo (µg/L) en los países analizados
Lim inf Lim sup MC ni hi(%) Ni asc Ni desc Hi asc(%) Hi desc(%)
0 2 1 317 10.57 317 3000 10.57 100
2 4 3 280 9.33 597 2683 19.9 89.43
4 6 5 289 9.63 886 2403 29.53 80.1
6 8 7 331 11.03 1217 2114 40.57 70.47
8 10 9 272 9.07 1489 1783 49.63 59.43
10 12 11 293 9.77 1782 1511 59.4 50.37
12 14 13 282 9.4 2064 1218 68.8 40.6
14 16 15 331 11.03 2395 936 79.83 31.2
16 18 17 303 10.1 2698 605 89.93 20.17
18 20 19 302 10.07 3000 302 100 10.07
TOTAL
3000 100
# GRAFICAS

# Histograma
hist(Concentracion_plomo, breaks = 11,
     main = "Gráfica N°1: Distribución de la Concentración de Plomo (µg/L)
     presente en el estudio sobre contaminación del agua y enfermedades",
     xlab = "Concentración de Plomo((µg/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_Plomo$breaks,
     labels = Hist_Plomo$breaks, las = 1,
     cex.axis = 0.9)

# Global
hist(Concentracion_plomo, breaks = 11,
     main = "Gráfica N°2:Distribución de la Concentración de Plomo (µg/L)
     presente en el estudio sobre contaminación del agua y enfermedades",
     xlab = "Concentración de Plomo (µg/L)",
     ylab = "Cantidad",
     ylim = c(0, length(Concentracion_plomo)),
     col = "purple",
     cex.main = 1,
     cex.lab = 1,
     cex.axis = 0.9,
     xaxt = "n")
axis(1, at = Hist_Plomo$breaks,
     labels = Hist_Plomo$breaks, las = 1,
     cex.axis = 0.9)

barplot(TDF_Plomo[["hi(%)"]],
        space=0,
        col = "skyblue",
        main ="Gráfica N°3:Distribución de la Concentración de Plomo (µg/L)
        presente en el estudio sobre contaminación del agua",
        xlab="Concentración de Plomo((µg/L)",
        ylab="Porcentaje (%)",
        names.arg= TDF_Plomo$MC,
        ylim = c(0,100))

# Local
hist(Concentracion_plomo, breaks = 11,
     main = "Gráfica N°4:Distribución de la Concentración de Plomo (µg/L)
     presente en el estudio sobre contaminación del agua y enfermedades",
     xlab = "Concentración de Plomo((µg/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_Plomo$breaks,
     labels = Hist_Plomo$breaks, las = 1,
     cex.axis = 0.9)

barplot(TDF_Plomo$'hi(%)',space=0,
        col = "lightblue",
        main ="Gráfica N°5:Distribución de la Concentración de Plomo (µg/L) 
        presente en el estudio sobre contaminación del agua y enfermedades",
        xlab="Concentración de Plomo(µg/L)",
        ylab="Porcentaje (%)",
        ylim = c(0,12),
        cex.main = 0.9,
        cex.lab = 1,
        cex.axis = 0.9,
        names.arg = TDF_Plomo$MC)

# Diagrama de Ojiva Ascendente y Descendente
plot(Li ,Ni_desc,
     main = "Gráfica N°6:Ojiva ascendente y descendente de la distribución 
     local del nivel de concentración de plomo (µg/L)",
     xlab = "Concentración de Plomo(µg/L)",
     ylab = "Cantidad",
     xlim = c(0,20),
     col = "orange",
     cex.axis=0.8,
     type = "o",
     lwd = 3,
     las=1,
     xaxt="n")
lines(Ls,Ni_asc,
      col = "green",
      type = "o",
      lwd = 3)
axis(1, at = unique(round(c(Li, Ls), 2)))

# Diagrama de Ojiva Ascendente y Descendente Porcentual
plot(Li, Hi_desc * 100,
     main = "Gráfica N°7:Ojiva ascendete y descendete de la distribución de la
     Concentración de Plomo (µg/L) presente en el estudio sobre 
     contaminación del agua y enfermedades", 
     xlab = "Concentración de Plomo (µg/L)",
     ylab = "Porcentaje (%)",
     xlim = c(0,20),
     col = "red",
     type = "o",
     lwd = 2,
     xaxt="n")
lines(Ls, Hi_asc * 100,
      col = "blue",
      type = "o",
      lwd = 3)
axis(1, at = unique(round(c(Li, Ls), 2)))

# Diagrama de Caja
boxplot(Concentracion_plomo,
        horizontal = TRUE,
        main = "Gráfica N°8:Distribución de la Concentración de Plomo (µg/L)
        presente en el estudio sobre contaminación del agua", 
        xlab = "Concentración de Plomo((µg/L)",
        col = "purple",
        outline = TRUE,
        pch = 1)

# INDICADORES ESTADISTICOS

# Indicadores de Tendencia Central

# Media aritmética
media <- round(mean(Concentracion_plomo), 2)
media
## [1] 10.05
# Moda
max_frecuencia <- max(TDF_Plomo$ni)
moda <- TDF_Plomo$MC[TDF_Plomo$ni == max_frecuencia]
moda
## [1]  7 15
# Mediana
mediana <- median(Concentracion_plomo)
mediana
## [1] 10.065
# INDICADORES DE DISPERSIÓN #
# Varianza
varianza <- var(Concentracion_plomo)
varianza
## [1] 33.61957
# Desviación Estándar
sd <- sd(Concentracion_plomo)
sd
## [1] 5.798238
# Coeficiente de Variación
cv <- round((sd / media) * 100, 2)
cv
## [1] 57.69
# INDICADORES DE FORMA #

# Coeficiente deAsimetría
library("e1071")
asimetria <- skewness(Concentracion_plomo, type = 2)
asimetria
## [1] -0.02021167
#Curtosis
curtosis <- kurtosis(Concentracion_plomo)
curtosis
## [1] -1.217488
tabla_indicadores <- data.frame("Variable" =c(" Concetración de Plomo (µg/L)"),
                                "Rango" = c("[ 0;20]"),
                                "X" = c(media),
                                "Me" = c(round(mediana,2)),
                                "Mo" = c("No hay moda"),
                                "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 atipicos")

library(knitr)
kable(tabla_indicadores, align = 'c', caption = "Conclusiones sobre la variable
      de la concetración de Plomo en el agua")
Conclusiones sobre la variable de la concetración de Plomo en el agua
Variable Rango X Me Mo V Sd Cv As K Valores.Atipicos
Concetración de Plomo (µg/L) [ 0;20] 10.05 10.07 No hay moda 33.62 5.8 57.69 -0.0202 -1.22 No hay presencia de valores atipicos