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

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


#Extraccion variable Cuantitativa discreta
Colera <- datos$Cholera.Cases.per.100.000.people
TDF_colera <- table(Colera)
Tabla_colera <- as.data.frame(TDF_colera)

# Crear agrupación
library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
Tabla_colera <- datos %>%
  mutate(grupo = cut(Cholera.Cases.per.100.000.people,
                     breaks = seq(0, max(Cholera.Cases.per.100.000.people, na.rm = TRUE) + 5, by = 5),
                     right = FALSE)) %>%
  group_by(grupo) %>%
  summarise(ni = n(), .groups = "drop")

# Tabla de distribución de frecuencia

min <- min(Colera)
max <- max(Colera)


ni <- Tabla_colera$ni
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_colera <- data.frame(Tabla_colera$grupo, ni,round(hi,2),
                              Ni_asc,
                              Ni_desc,
                              round(Hi_asc,2),
                              round(Hi_desc,2))

colnames(TDF_colera) <- c("Colera","ni","hi(%)",
                               "Ni asc","Ni desc","Hi asc(%)","Hi desc(%)")

# crear de fila de totales 
totales <-  data.frame( Colera = "TOTAL",
              ni= sum(ni),
              hi= sum(hi),
              Ni_asc= "-",
              Ni_des= "-",
              Hi_asc= "-",
              Hi_des= "-")

colnames(totales) <- c("Colera","ni","hi(%)",
                          "Ni asc","Ni desc","Hi asc(%)","Hi desc(%)")
TDF_colera_total<- rbind(TDF_colera,totales)


# Tabla mas estetica
library(knitr)
library(kableExtra)
## 
## Adjuntando el paquete: 'kableExtra'
## The following object is masked from 'package:dplyr':
## 
##     group_rows
kable(TDF_colera_total, align = 'c',
      caption = "Tabla de Distribucion de Frecuencias de los casos de Cólera 
      (casos/100,000hab)") %>%
  kable_styling(full_width = FALSE, position = "center",
                bootstrap_options = c("striped", "hover", "condensed"))
Tabla de Distribucion de Frecuencias de los casos de Cólera (casos/100,000hab)
Colera ni hi(%) Ni asc Ni desc Hi asc(%) Hi desc(%)
[0,5) 325 10.83 325 3000 10.83 100
[5,10) 285 9.50 610 2675 20.33 89.17
[10,15) 285 9.50 895 2390 29.83 79.67
[15,20) 295 9.83 1190 2105 39.67 70.17
[20,25) 319 10.63 1509 1810 50.3 60.33
[25,30) 307 10.23 1816 1491 60.53 49.7
[30,35) 311 10.37 2127 1184 70.9 39.47
[35,40) 303 10.10 2430 873 81 29.1
[40,45) 306 10.20 2736 570 91.2 19
[45,50) 264 8.80 3000 264 100 8.8
TOTAL 3000 100.00
# GRAFICAS

#Diagrama de barra local
barplot(TDF_colera$ni,
        main = "Gráfica N°1:Distribución de los Casos de Cólera por cada 100.000 
     personas en relación con el estudio sobre la contaminación del agua",
        xlab = "Casos de Cólera por 100. 0000 personas",
        ylab = "Cantidad",
        col = "pink",
        las=2,
        cex.names = 0.7,
        names.arg=TDF_colera$Colera)

barplot(TDF_colera$`hi(%)`,
        col = "skyblue",
        main ="Gráfica N°2:Distribución porcentual de los Casos de Cólera por 
        cada 100.000 personas en relación con el estudio sobre la 
        contaminación del agua",
        xlab = "Casos de Cólera por 100. 0000 personas",
        ylab="Porcentaje (%)",
        las=2,
        cex.names = 0.7,
        names.arg= TDF_colera$Colera,
        ylim = c(0,12))

#Diagrama de barra Global
barplot(TDF_colera$ni,
        main = "Gráfica N°3:Distribución de los Casos de Cólera por cada 100.000 
     personas en relación con el estudio sobre la contaminación del agua",
        xlab = "Casos de Cólera por 100. 0000 personas",
        ylab = "Cantidad",
        ylim = c(0,3000),
        col = "pink",
        las=2,
        cex.names = 0.7,
        names.arg=TDF_colera$Colera)

barplot(TDF_colera$`hi(%)`,
        col = "skyblue",
        main ="Gráfica N°4:Distribución porcentual de los Casos de Cólera por 
        cada 100.000 personas en relación con el estudio sobre 
        la contaminación del agua",
        xlab = "Casos de Cólera por 100. 0000 personas",
        ylab="Porcentaje (%)",
        las=2,
        cex.names = 0.7,
        names.arg= TDF_colera$Colera,
        ylim = c(0,100))

# Diagrama de Ojiva Ascendente y Descendente
x_pos <- 1:length(TDF_colera$Colera)
plot(x_pos ,Ni_desc,
     main = "Gráfica N°5: Ojiva Ascendente y Descendente de la Distribución de
     los Casos de Cólera por cada 100.000 personas en relación con el 
     estudio sobre la contaminación del agua",
     xlab = "Casos de Cólera por 100. 0000 personas",
     ylab = "Cantidad",
     col = "orange",
     type = "p",
     lwd = 3,
     xaxt="n")
lines(x_pos,Ni_asc,
      col = "green",
      type = "p",
      lwd = 3)
axis(side = 1, at = x_pos, labels = TDF_colera$Colera, las = 1, cex.axis = 0.9)

# Diagrama de Ojiva Ascendente y Descendente Porcentual
x_por <- 1:length(TDF_colera$`hi(%)`)
plot(x_pos, Hi_desc * 100,
     main = "Gráfica N°6:Ojiva Ascendente y Descendente de la Distribución 
     porcentual de los Casos de Cólera por cada 100.000 personas 
     en relación con el estudio sobre la contaminación del agua ",
     xlab = "Casos de Cólera por 100. 0000 personas",
     ylab = "Porcentaje (%)",
     col = "red",
     type = "p",
     lwd = 2,
     xaxt="n")
lines(x_pos, Hi_asc * 100,
      col = "blue",
      type = "p",
      lwd = 3)
axis(side = 1, at = x_pos, labels = TDF_colera$Colera, las = 1, cex.axis = 0.9)

# Diagrama de Caja

boxplot(Colera,
        horizontal = TRUE,
        main = "Gráfica N°7:Distribución de los Casos de Cólera por cada 100.000 
     personas en relación con el estudio sobre la contaminación del agua ",
        xlab = "Casos de Cólera por 100. 0000 personas",
        col = "purple",
        outline = TRUE,
        pch = 1)

# INDICADORES ESTADISTICOS

# Indicadores de Tendencia Central

# Media aritmética
media <- round(mean(Colera), 2)
media
## [1] 24.25
# Moda
max_frecuencia <- max(TDF_colera$ni)
moda <- TDF_colera$ni[TDF_colera$ni == max_frecuencia]
moda
## [1] 325
# Mediana
mediana <- median(Colera)
mediana
## [1] 24
# INDICADORES DE DISPERSIÓN #

# Varianza
varianza <- var(Colera)
varianza
## [1] 205.4231
# Desviación Estándar
sd <- sd(Colera)
sd
## [1] 14.33259
# Coeficiente de Variación
cv <- round((sd / media) * 100, 2)
cv
## [1] 59.1
# INDICADORES DE FORMA #

# Asimetría
library(e1071)
asimetria <- skewness(Colera, type = 2)
asimetria
## [1] -0.01077648
#Curtosis
curtosis <- kurtosis(Colera)
curtosis
## [1] -1.182368
tabla_indicadores <- data.frame("Variable" =c("Colera (Casos por 100.000 habitantes)"),
                                "Rango" = c("[0 ; 49]"),
                                "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 atípicos")
library(knitr)
kable(tabla_indicadores, align = 'c', caption = "Conclusiones de la variable
      Colera (Casos por 100.000 habitantes)de los países del estudio de contaminación del agua")
Conclusiones de la variable Colera (Casos por 100.000 habitantes)de los países del estudio de contaminación del agua
Variable Rango X Me Mo V Sd Cv As K Valores.Atipicos
Colera (Casos por 100.000 habitantes) [0 ; 49] 24.25 24 No hay moda 205.42 14.33 59.1 -0.0108 -1.18 No hay presencia de valores atípicos