#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 
Nivel_nitrato <- datos$Nitrate.Level..mg.L.

#Tabla de distribución de frecuencia

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

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

kable(TDF_nitrato_total, align = 'c',
      caption = "Tabla de Distribucion de Frecuencia del Nivel de Concentración 
      de Nitrato (mg/L) en los países analizados") %>%
  kable_styling(full_width = FALSE, position = "center",
                bootstrap_options = c("striped", "hover", "condensed"))
Tabla de Distribucion de Frecuencia del Nivel de Concentración de Nitrato (mg/L) en los países analizados
Lim inf Lim sup MC ni hi(%) Ni asc Ni desc Hi asc(%) Hi desc(%)
0.05 4.21 2.13 235 7.83 235 3000 7.83 100
4.21 8.37 6.29 248 8.27 483 2765 16.1 92.17
8.37 12.54 10.455 268 8.93 751 2517 25.03 83.9
12.54 16.7 14.62 271 9.03 1022 2249 34.07 74.97
16.7 20.86 18.78 239 7.97 1261 1978 42.03 65.93
20.86 25.02 22.94 251 8.37 1512 1739 50.4 57.97
25.02 29.18 27.1 237 7.9 1749 1488 58.3 49.6
29.18 33.34 31.26 248 8.27 1997 1251 66.57 41.7
33.34 37.51 35.425 234 7.8 2231 1003 74.37 33.43
37.51 41.67 39.59 250 8.33 2481 769 82.7 25.63
41.67 45.83 43.75 252 8.4 2733 519 91.1 17.3
45.83 49.99 47.91 267 8.9 3000 267 100 8.9
TOTAL
3000 100
#Simplificación con el histograma
Hist_Nitrato <- hist(Nivel_nitrato,breaks = 10,plot=F)
k <- length(Hist_Nitrato$breaks)
Li <- Hist_Nitrato$breaks[1:(length(Hist_Nitrato$breaks)-1)]
Ls <- Hist_Nitrato$breaks[2:length(Hist_Nitrato$breaks)]
ni <- Hist_Nitrato$counts

sum(ni)
## [1] 3000
MC <- Hist_Nitrato$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_nitrato <- 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_nitrato) <- 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_nitrato_total, align = 'c', 
      caption = "Tabla de Distribución de frecuencias del nivel de concentración
      de nitrato (mg/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 del nivel de concentración de nitrato (mg/L) en los países analizados
Lim inf Lim sup MC ni hi(%) Ni asc Ni desc Hi asc(%) Hi desc(%)
0.05 4.21 2.13 235 7.83 235 3000 7.83 100
4.21 8.37 6.29 248 8.27 483 2765 16.1 92.17
8.37 12.54 10.455 268 8.93 751 2517 25.03 83.9
12.54 16.7 14.62 271 9.03 1022 2249 34.07 74.97
16.7 20.86 18.78 239 7.97 1261 1978 42.03 65.93
20.86 25.02 22.94 251 8.37 1512 1739 50.4 57.97
25.02 29.18 27.1 237 7.9 1749 1488 58.3 49.6
29.18 33.34 31.26 248 8.27 1997 1251 66.57 41.7
33.34 37.51 35.425 234 7.8 2231 1003 74.37 33.43
37.51 41.67 39.59 250 8.33 2481 769 82.7 25.63
41.67 45.83 43.75 252 8.4 2733 519 91.1 17.3
45.83 49.99 47.91 267 8.9 3000 267 100 8.9
TOTAL
3000 100
# GRAFICAS

# Histograma
hist(Nivel_nitrato, breaks = 11,
     main = "Gráfica N°1: Distribución de la concentración de nitratos (mg/L) 
     presente en el estudio sobre contaminación del agua y enfermedades asociadas",
     xlab = "Niveles de Nitrato (mg/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_Nitrato$breaks,
     labels = Hist_Nitrato$breaks, las = 1,
     cex.axis = 0.9)

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

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

# Local
hist(Nivel_nitrato, breaks = 11,
     main = "Gráfica N°4:Distribución de la concentración de nitratos (mg/L)
     presente en el estudio sobre contaminación del agua y enfermedades asociadas",
     xlab = "Niveles de Nitrato (mg/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_Nitrato$breaks,
     labels = Hist_Nitrato$breaks, las = 1,
     cex.axis = 0.9)

barplot(TDF_nitrato$'hi(%)',space=0,
        col = "lightblue",
        main ="Gráfica N°5:Distribución de la concentración de nitratos presente 
        en el estudio sobre contaminación del agua y enfermedades",
        xlab="Niveles de Nitrato (mg/L)",
        ylab="Porcentaje (%)",
        ylim = c(0,14),
        names.arg = TDF_nitrato$MC)

# Diagrama de Ojiva Ascendente y Descendente
plot(Li ,Ni_desc,
     main = "Gráfica N°6:Ojiva Ascenfente y Descendente de la Distribución de 
     la concentración de nitratos (mg/L) presente en el estudio sobre 
     contaminación del agua y enfermedades asociadas",
     xlab = "Niveles de Nitrato (mg/L)",
     ylab = "Cantidad",
     xlim = c(0.05,49.99),
     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 Ascendente y Descendente de la Distribución de la
     concentración de nitratos (mg/L) presente en el estudio sobre 
     contaminación del agua y enfermedades asociadas", 
     xlab = " Niveles de Nitrato(%)",
     ylab = "Porcentaje (%)",
     xlim = c(0.05,49.99),
     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(Nivel_nitrato,
        horizontal = TRUE,
        main = "Gráfica N°4:Distribución de la concentración de nitratos (mg/L)
        presente en el estudio sobre contaminación del agua y 
        enfermedades asociadas ", 
        xlab = " Niveles de Nitrato (mg/L)",
        col = "purple",
        outline = TRUE,
        pch = 1)

# INDICADORES ESTADISTICOS

# Indicadores de Tendencia Central

# Media aritmética
media <- round(mean(Nivel_nitrato), 2)
media
## [1] 25.08
# Moda
max_frecuencia <- max(TDF_nitrato$ni)
moda <- TDF_nitrato$MC[TDF_nitrato$ni == max_frecuencia]
moda
## [1] 47.5
# Mediana
mediana <- median(Nivel_nitrato)
mediana
## [1] 24.79
# INDICADORES DE DISPERSIÓN #
# Varianza
varianza <- var(Nivel_nitrato)
varianza
## [1] 210.4
# Desviación Estándar
sd <- sd(Nivel_nitrato)
sd
## [1] 14.50517
# Coeficiente de Variación
cv <- round((sd / media) * 100, 2)
cv
## [1] 57.84
# INDICADORES DE FORMA #

# Coeficiente deAsimetría
library("e1071")
asimetria <- skewness(Nivel_nitrato, type = 2)
asimetria
## [1] 0.01884981
#Curtosis
curtosis <- kurtosis(Nivel_nitrato)
curtosis
## [1] -1.215034
tabla_indicadores <- data.frame("Variable" =c(" Nivel de Nitrato (mg/L)"),
                                "Rango" = c("[ 0.05;49.99]"),
                                "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 nitratos en el agua")
Conclusiones sobre la variable de la concetración de nitratos en el agua
Variable Rango X Me Mo V Sd Cv As K Valores.Atipicos
Nivel de Nitrato (mg/L) [ 0.05;49.99] 25.08 24.79 No hay moda 210.4 14.51 57.84 0.0188 -1.22 No hay presencia de valores atipicos