#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
| 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 |