#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 
Oxigeno_disuelto <- datos$Dissolved.Oxygen..mg.L.

#Tabla de distribución de frecuencia

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

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

kable(TDF_Oxigeno_total, 
      align = 'c', 
      caption = "Tabla de Distribución del Oxígeno Disuelto (mg/L)en estudio de 
      contaminación del agua y enfermedades asociadas") %>%
  kable_styling(full_width = FALSE, 
                position = "center", 
                bootstrap_options = c("striped", "hover", "condensed"))
Tabla de Distribución del Oxígeno Disuelto (mg/L)en estudio de contaminación del agua y enfermedades asociadas
Lim inf Lim sup MC ni hi(%) Ni asc Ni desc Hi asc(%) Hi desc(%)
3 3.58 3.29 237 7.9 237 3000 7.9 100
3.58 4.17 3.875 264 8.8 501 2763 16.7 92.1
4.17 4.75 4.46 262 8.73 763 2499 25.43 83.3
4.75 5.33 5.04 260 8.67 1023 2237 34.1 74.57
5.33 5.92 5.625 251 8.37 1274 1977 42.47 65.9
5.92 6.5 6.21 228 7.6 1502 1726 50.07 57.53
6.5 7.08 6.79 239 7.97 1741 1498 58.03 49.93
7.08 7.67 7.375 250 8.33 1991 1259 66.37 41.97
7.67 8.25 7.96 250 8.33 2241 1009 74.7 33.63
8.25 8.83 8.54 251 8.37 2492 759 83.07 25.3
8.83 9.42 9.125 262 8.73 2754 508 91.8 16.93
9.42 10 9.71 246 8.2 3000 246 100 8.2
TOTAL
3000 100
#Simplificación con el histograma
Hist_Oxigeno <- hist(Oxigeno_disuelto,breaks = 8,plot=F)
k <- length(Hist_Oxigeno$breaks)
Li <- Hist_Oxigeno$breaks[1:(length(Hist_Oxigeno$breaks)-1)]
Ls <- Hist_Oxigeno$breaks[2:length(Hist_Oxigeno$breaks)]
ni <- Hist_Oxigeno$counts
sum(ni)
## [1] 3000
MC <- Hist_Oxigeno$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_Oxigeno <- 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_Oxigeno) <- 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_Oxigeno_total <- rbind(TDF_Oxigeno,totales)
print(TDF_Oxigeno_total)
##   Lim inf Lim sup  MC   ni hi(%) Ni asc Ni desc Hi asc(%) Hi desc(%)
## 1       3       4 3.5  425 14.17    425    3000     14.17        100
## 2       4       5 4.5  458 15.27    883    2575     29.43      85.83
## 3       5       6 5.5  418 13.93   1301    2117     43.37      70.57
## 4       6       7 6.5  405  13.5   1706    1699     56.87      56.63
## 5       7       8 7.5  429  14.3   2135    1294     71.17      43.13
## 6       8       9 8.5  437 14.57   2572     865     85.73      28.83
## 7       9      10 9.5  428 14.27   3000     428       100      14.27
## 8   TOTAL       -   - 3000   100      -       -         -          -
library(knitr)
library(kableExtra)

kable(TDF_Oxigeno_total, 
      align = 'c', 
      caption = "Tabla de Distribucion de Frecuencias  del oxígeno disuelto en
      el estudio de contaminación del agua y enfermedades asociadas") %>%
  kable_styling(full_width = FALSE, 
                position = "center", 
                bootstrap_options = c("striped", "hover", "condensed"))
Tabla de Distribucion de Frecuencias del oxígeno disuelto en el estudio de contaminación del agua y enfermedades asociadas
Lim inf Lim sup MC ni hi(%) Ni asc Ni desc Hi asc(%) Hi desc(%)
3 4 3.5 425 14.17 425 3000 14.17 100
4 5 4.5 458 15.27 883 2575 29.43 85.83
5 6 5.5 418 13.93 1301 2117 43.37 70.57
6 7 6.5 405 13.5 1706 1699 56.87 56.63
7 8 7.5 429 14.3 2135 1294 71.17 43.13
8 9 8.5 437 14.57 2572 865 85.73 28.83
9 10 9.5 428 14.27 3000 428 100 14.27
TOTAL
3000 100
# GRAFICAS

# Histograma

hist(Oxigeno_disuelto, breaks = 10,
     main = "Gráfica N°1: Distribución del oxígeno disuelto en relación con la 
     contaminación del agua y enfermedades asociadas",
     xlab = "Oxígeno Disuelto(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_Oxigeno$breaks,
     labels = Hist_Oxigeno$breaks, las = 1,
     cex.axis = 0.9)

# Global

hist(Oxigeno_disuelto, breaks = 10,
     main = "Gráfica N°2:  Distribución del oxígeno disuelto en relación con la
     contaminación del agua y enfermedades asociadas",
     xlab = "Oxígeno Disuelto(mg/L)",
     ylab = "Cantidad",
     ylim = c(0, length(Oxigeno_disuelto)),
     col = "purple",
     cex.main = 0.9,
     cex.lab = 1,
     cex.axis = 0.9,
     xaxt = "n")
axis(1, at = Hist_Oxigeno$breaks,
     labels = Hist_Oxigeno$breaks, las = 1,
     cex.axis = 0.9)

barplot(TDF_Oxigeno[["hi(%)"]],
        space=0,
        col = "skyblue",
        main ="Gráfica N°3:Distribución del oxígeno disuelto en relación con la
        contaminación del agua y enfermedades asociadas",
        xlab="Oxígeno Disuelto(mg/L)",
        ylab="Porcentaje (%)",
        names.arg= TDF_Oxigeno$MC,
        ylim = c(0,100))

# Local
hist(Oxigeno_disuelto, breaks = 10,
     main = "Gráfica N°4:Distribución del oxígeno disuelto en relación con la 
     contaminación del agua y enfermedades asociadas",
     xlab = "Oxígeno Disuelto(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_Oxigeno$breaks,
     labels = Hist_Oxigeno$breaks, las = 1,
     cex.axis = 0.9)

barplot(TDF_Oxigeno$'hi(%)',space=0,
        col = "lightblue",
        main ="Gráfica N°5:Distribución del oxígeno disuelto en relación con 
        la contaminación del agua y enfermedades asociadas",
        xlab="Oxígeno Disuelto(mg/L)",
        ylab="Porcentaje (%)",
        ylim = c(0,16),
        names.arg = TDF_Oxigeno$MC)

# Diagrama de Ojiva Ascendente y Descendente
plot(Li ,Ni_desc,
     main = "Gráfica N°6:Ojiva Ascendente y Descendente de la Distribución del 
     oxígeno disuelto (mg/L) en relación con la contaminación del agua 
     y enfermedades asociadas",
     xlab = "Oxígeno Disuelto(mg/L)",
     ylab = "Cantidad",
     xlim = c(3,10),
     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 del 
     oxígeno disuelto (mg/L) en relación con la contaminación del agua y 
     enfermedades asociadas", 
     xlab = "Oxígeno Disuelto (mg/L)",
     ylab = "Porcentaje (%)",
     xlim = c(3,10),
     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(Oxigeno_disuelto,
        horizontal = TRUE,
        main = "Gráfica N°4: Distribución del oxígeno disuelto en relación con 
        la contaminación del agua y enfermedades asociadas", 
        xlab = " Tasa de urbanización(%)",
        col = "purple",
        outline = TRUE,
        pch = 1)

# INDICADORES ESTADISTICOS

# Indicadores de Tendencia Central

# Media aritmética
media <- round(mean(Oxigeno_disuelto), 2)
media
## [1] 6.49
# Moda
max_frecuencia <- max(TDF_Oxigeno$ni)
moda <- TDF_Oxigeno$MC[TDF_Oxigeno$ni == max_frecuencia]
moda
## [1] 4.5
# Mediana
mediana <- median(Oxigeno_disuelto)
mediana
## [1] 6.49
# INDICADORES DE DISPERSIÓN #
# Varianza
varianza <- var(Oxigeno_disuelto)
varianza
## [1] 4.112647
# Desviación Estándar
sd <- sd(Oxigeno_disuelto)
sd
## [1] 2.027966
# Coeficiente de Variación
cv <- round((sd / media) * 100, 2)
cv
## [1] 31.25
# INDICADORES DE FORMA #

# Coeficiente deAsimetría
library("e1071")
asimetria <- skewness(Oxigeno_disuelto, type = 2)
asimetria
## [1] 0.0157273
#Curtosis
curtosis <- kurtosis(Oxigeno_disuelto)
curtosis
## [1] -1.229094
tabla_indicadores <- data.frame("Variable" =c(" Oxígeno Disuelto(%)"),
                                "Rango" = c("[3 ;10]"),
                                "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 del gas presente en el aire y el agua")
Conclusiones sobre la variable del gas presente en el aire y el agua
Variable Rango X Me Mo V Sd Cv As K Valores.Atipicos
Oxígeno Disuelto(%) [3 ;10] 6.49 6.49 No hay moda 4.11 2.03 31.25 0.0157 -1.23 No hay presencia de valores atipicos