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