#Carga de datos
getwd()
## [1] "/cloud/project"
setwd("/cloud/project")
datos <- read.csv("water_pollution_disease.csv",header = TRUE,sep = ",",dec = ".")
#Extraccion variable Cuantitativa Continua
Nivel_contaminante <- na.omit (datos$Contaminant.Level..ppm.)
#Tabla de distribución de frecuencia
#Manualmente
min <-min(Nivel_contaminante)
max <-max(Nivel_contaminante)
R <-max-min
K <- floor(1+3.33*log10(length(Nivel_contaminante)))
A <-R/K
Li <-round(seq(from=min,to=max-A,by=A),2)
Ls <-round(seq(from=min+A,to=max,by=A),2)
Mc <-(Li+Ls)/2
ni<-c()
for (i in 1:K) {
if (i < K) {
ni[i] <- length(subset(Nivel_contaminante, Nivel_contaminante >= Li[i] & Nivel_contaminante < Ls[i]))
} else {
ni[i] <- length(subset(Nivel_contaminante, Nivel_contaminante >= Li[i] & Nivel_contaminante <= Ls[i]))
}
}
sum(ni)
## [1] 3000
hi <-ni/sum(ni)*100
Ni_asc<-cumsum(ni)
Hi_asc<-cumsum(hi)
Ni_desc<-rev(cumsum(rev(ni)))
Hi_desc<-rev(cumsum(rev(hi)))
TDFnivel_contaminante <- data.frame(
Li, Ls, Mc, ni, round(hi, 2), Ni_asc, Ni_desc, round(Hi_asc, 2), round(Hi_desc, 2)
)
colnames(TDFnivel_contaminante) <- c("Li","Ls","Mc","ni","hi","Ni_asc(%)","Ni_desc(%)","Hi_asc","Hi_desc")
#Crear fila de totales
totales<-c(
Li="-",
Ls="-",
Mc="-",
ni=sum(ni),
hi=sum(hi),
Ni_asc="-",
Ni_desc="-",
Hi_asc="-",
Hi_desc="-")
TDFnivel_contaminante<-rbind(TDFnivel_contaminante,totales)
#Simplificación con el histograma
Hist_Nivel_contaminante<-hist(Nivel_contaminante,breaks = 8,plot = F)
k<-length(Hist_Nivel_contaminante$breaks)
Li<-Hist_Nivel_contaminante$breaks[1:(length(Hist_Nivel_contaminante$breaks)-1)]
Ls<-Hist_Nivel_contaminante$breaks[2:length(Hist_Nivel_contaminante$breaks)]
ni<-Hist_Nivel_contaminante$counts
sum(ni)
## [1] 3000
Mc<-Hist_Nivel_contaminante$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)))
TDFnivel_contaminante<-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(TDFnivel_contaminante)<-c("Lim inf","Lim sup","MC","ni","hi(%)","Ni asc","Ni desc","Hi asc(%)","Hi desc(%)")
#Crear fila de totales
totales<-c(Li="TOTAL",
Ls="-",
Mc="-",
ni=sum(ni),
hi=sum(hi*100),
Ni_asc="-",
Ni_desc="-",
Hi_asc="-",
Hi_desc="-")
TDFnivel_contaminante_total<-rbind(TDFnivel_contaminante,totales)
library(knitr)
library(kableExtra)
kable(TDFnivel_contaminante_total, align = 'c', caption = "Tabla de Frecuencias de Concentración de Contaminantes en el Agua") %>%
kable_styling(full_width = FALSE, position = "center", bootstrap_options = c("striped", "hover", "condensed"))
Tabla de Frecuencias de Concentración de Contaminantes en el Agua
Lim inf
|
Lim sup
|
MC
|
ni
|
hi(%)
|
Ni asc
|
Ni desc
|
Hi asc(%)
|
Hi desc(%)
|
0
|
1
|
0.5
|
314
|
10.47
|
314
|
3000
|
10.47
|
100
|
1
|
2
|
1.5
|
280
|
9.33
|
594
|
2686
|
19.8
|
89.53
|
2
|
3
|
2.5
|
303
|
10.1
|
897
|
2406
|
29.9
|
80.2
|
3
|
4
|
3.5
|
308
|
10.27
|
1205
|
2103
|
40.17
|
70.1
|
4
|
5
|
4.5
|
313
|
10.43
|
1518
|
1795
|
50.6
|
59.83
|
5
|
6
|
5.5
|
306
|
10.2
|
1824
|
1482
|
60.8
|
49.4
|
6
|
7
|
6.5
|
300
|
10
|
2124
|
1176
|
70.8
|
39.2
|
7
|
8
|
7.5
|
309
|
10.3
|
2433
|
876
|
81.1
|
29.2
|
8
|
9
|
8.5
|
287
|
9.57
|
2720
|
567
|
90.67
|
18.9
|
9
|
10
|
9.5
|
280
|
9.33
|
3000
|
280
|
100
|
9.33
|
TOTAL
|
|
|
3000
|
100
|
|
|
|
|
#Gráficas
#Histograma
hist(Nivel_contaminante,breaks = 10,
main = "Gráfica N°1: Distribución de niveles de contaminante de los
países del estudio de contaminación del agua",
xlab = "Tasa de nivel de contaminante(%)",
ylab = "Cantidad",
ylim = c(0,max(ni)),
col = "pink",
cex.main=1.3,
cex.lab=1,
cex.axis=0.9,
xaxt="n")
axis(1,at=Hist_Nivel_contaminante$breaks,labels = Hist_Nivel_contaminante$breaks,las=1,
cex.axis=0.9)

#Global
hist(Nivel_contaminante, breaks = 10,
main = "Gráfica N°2: Distribución de niveles de contaminante de los
países del estudio de contaminación del agua",
xlab = "Tasa de contaminante(%)",
ylab = "Cantidad",
ylim = c(0, length(Nivel_contaminante)),
col = "pink",
cex.main = 1.3,
cex.lab = 1,
cex.axis = 0.9,
xaxt = "n")
axis(1, at = Hist_Nivel_contaminante$breaks,
labels = Hist_Nivel_contaminante$breaks, las = 1,
cex.axis = 0.9)

barplot(TDFnivel_contaminante$hi,
space=0,
col = "skyblue",
main ="Gráfica N°3: Distribución porcentual de frecuencias relativas
para niveles de contaminante de los paises en el estudio de
contaminación del agua ",
xlab="Tasa de contaminante(%)",
ylab="Porcentaje (%)",
names.arg= TDFnivel_contaminante$MC,
ylim = c(0,100))

# Local
hist(Nivel_contaminante, breaks = 10,
main ="Gráfica N°4:Distribución porcentual para niveles de contaminante
de los países en el estudio de contaminación del agua",
xlab = "Tasa de contamiante(%)",
ylab = "Cantidad",
ylim = c(0,max(ni)),
col = "purple",
cex.main = 1.3,
cex.lab = 1,
cex.axis = 0.9,
xaxt = "n")
axis(1, at = Hist_Nivel_contaminante$breaks,
labels = Hist_Nivel_contaminante$breaks, las = 1,
cex.axis = 0.9)

barplot(TDFnivel_contaminante$hi,space=0,
col = "lightblue",
main ="Gráfica N°5: Distribución porcentual para niveles de
contaminante de los países en el estudio de contaminación del agua ",
xlab="Tasa de contaminante(%)",
ylab="Porcentaje (%)",
ylim = c(0,12),
names.arg = TDFnivel_contaminante$MC)

# Diagrama de Ojiva Ascendente y Descendente
plot(Li ,Ni_desc,
main = "Gráfica N°6: Distribución de frecuencias acumuladas Ascendente y
Descendente para niveles de contaminante de los países en el estudio de
contaminación de el agua",
xlab = " Tasa de contaminante(%)",
ylab = "Cantidad",
xlim = c(0,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 = seq(0, 10, by = 1))

# Diagrama de Ojiva Ascendente y Descendente Porcentual
plot(Li, Hi_desc * 100,
main = "Gráfica N°7: Distribución porcentual acumulada Ascendente y
Descendente para niveles de contaminante de los países en el estudio de
contaminación de el agua ",
xlab = " Tasa de contaminante(%)",
ylab = "Porcentaje (%)",
xlim = c(0,10),
col = "red",
type = "o",
lwd = 2,
xaxt="n")
lines(Ls, Hi_asc * 100,
col = "blue",
type = "o",
lwd = 3)
axis(1, at = seq(0,10,by=1))

# Diagrama de Caja
boxplot(Nivel_contaminante,
horizontal = TRUE,
main = "Gráfica N°8:Distribución de frecuencia para niveles de
contaminante de los países en el estudio de contaminación de el agua ",
xlab = " Tasa de contaminante(%)",
col = "purple",
outline = TRUE,
pch = 1)

# INDICADORES ESTADISTICOS
# Indicadores de Tendencia Central
# Media aritmética
media <- round(mean(Nivel_contaminante), 2)
media
## [1] 4.95
# Moda
max_ni <- max(TDFnivel_contaminante$ni)
moda <- TDFnivel_contaminante$MC[TDFnivel_contaminante$ni == max_ni]
moda
## [1] 0.5
# Mediana
mediana <- median(Nivel_contaminante)
mediana
## [1] 4.95
# INDICADORES DE DISPERSIÓN #
# Varianza
varianza <- var(Nivel_contaminante)
varianza
## [1] 8.180012
# Desviación Estándar
sd <- sd(Nivel_contaminante)
sd
## [1] 2.860072
# Coeficiente de Variación
cv <- round((sd / media) * 100, 2)
cv
## [1] 57.78
# INDICADORES DE FORMA #
# Asimetría
library(e1071)
asimetria <- skewness(Nivel_contaminante, type = 2)
asimetria
## [1] 7.361312e-05
#Curtosis
curtosis <- kurtosis(Nivel_contaminante)
curtosis
## [1] -1.165268
tabla_indicadores <- data.frame("Variable" =c("Tasa de contaminante(%)"),
"Rango" = c("[1.1;9.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,2)),
"K" = c(round(curtosis,2)),
"Valores Atipicos" = "No hay presencia de valores atipicos")
library(knitr)
kable(tabla_indicadores, align = 'c', caption = "Conclusiones de la variable
nivel de contaminación en agua en (ppm)")
Conclusiones de la variable nivel de contaminación en agua en
(ppm)
Tasa de contaminante(%) |
[1.1;9.99] |
4.95 |
4.95 |
No hay moda |
8.18 |
2.86 |
57.78 |
0 |
-1.17 |
No hay presencia de valores atipicos |