#carga de librerias
library(kableExtra)
library(knitr)
library(magrittr)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following object is masked from 'package:kableExtra':
##
## group_rows
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
#carga de datos
getwd()
## [1] "/cloud/project"
setwd("/cloud/project")
datos<- read.csv("china_water_pollution_data.csv",header = TRUE, sep = ",",
dec = ".")
#extraccion variable cuantitativa continua
Nitrógeno_Total <- datos$Total_Nitrogen_mg_L
#Tabla de distribución de frecuencia
#Manualmente
min <-min(Nitrógeno_Total)
max <-max(Nitrógeno_Total)
R <-max-min
K <- floor(1+3.33*log10(length(Nitrógeno_Total)))
A <-R/K
Li <-round(seq(from=min,to=max-A,by=A),2)
Li[1] <- min(Nitrógeno_Total)
Ls <-round(seq(from=min+A,to=max,by=A),2)
Mc <-(Li+Ls)/2
tol <- 1e-9
ni <- numeric(K)
for (i in 1:K) {
if (i < K) {
ni[i] <- sum(Nitrógeno_Total >= Li[i] & Nitrógeno_Total < Ls[i])
} else {
ni[i] <- sum(Nitrógeno_Total >= Li[i] & Nitrógeno_Total <= Ls[i])
}
}
sum(ni)
## [1] 3023
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)))
TDFNitrógeno_Total <- data.frame(
Li, Ls, Mc, ni, round(hi, 2), Ni_asc, Ni_desc,
round(Hi_asc, 2), round(Hi_desc, 2)
)
colnames(TDFNitrógeno_Total)<-
c("Li","Ls","Mc","ni","hi","Ni_asc(%)","Ni_desc(%)","H
i_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="-")
TDFNitrógeno_Total<-rbind(TDFNitrógeno_Total,totales)
#Simplificación con el histograma
Hist_Nitrógeno_Total<-hist(Nitrógeno_Total,breaks = 8,plot = F)
k<-length(Hist_Nitrógeno_Total$breaks)
Li<-Hist_Nitrógeno_Total$breaks[1:(length(Hist_Nitrógeno_Total$breaks)-1
)]
Ls<-Hist_Nitrógeno_Total$breaks[2:length(Hist_Nitrógeno_Total$breaks)]
ni<-Hist_Nitrógeno_Total$counts
sum(ni)
## [1] 3000
Mc<-Hist_Nitrógeno_Total$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)))
TDFNitrógeno_Total<-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(TDFNitrógeno_Total)<-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="-")
TDFNitrógeno_Total_total<-rbind(TDFNitrógeno_Total,totales)
library(knitr)
library(kableExtra)
kable(TDFNitrógeno_Total_total, align = 'c', caption = "Tabla de
Frecuencias de Nitrógeno Total de estudio de
contaminación del agua en China en el año 2023 ") %>%
kable_styling(full_width = FALSE, position = "center",
bootstrap_options = c("striped", "hover",
"condensed"))
| Lim inf | Lim sup |
MC
| ||||||
|---|---|---|---|---|---|---|---|---|
| 1 | 1.5 | 1.25 | 3 | 0.1 | 3 | 3000 | 0.1 | 100 |
| 1.5 | 2 | 1.75 | 57 | 1.9 | 60 | 2997 | 2 | 99.9 |
| 2 | 2.5 | 2.25 | 421 | 14.03 | 481 | 2940 | 16.03 | 98 |
| 2.5 | 3 | 2.75 | 1016 | 33.87 | 1497 | 2519 | 49.9 | 83.97 |
| 3 | 3.5 | 3.25 | 1026 | 34.2 | 2523 | 1503 | 84.1 | 50.1 |
| 3.5 | 4 | 3.75 | 398 | 13.27 | 2921 | 477 | 97.37 | 15.9 |
| 4 | 4.5 | 4.25 | 75 | 2.5 | 2996 | 79 | 99.87 | 2.63 |
| 4.5 | 5 | 4.75 | 4 | 0.13 | 3000 | 4 | 100 | 0.13 |
| TOTAL |
|
|
3000 | 100 |
|
|
|
|
# GRAFICAS
#Histograma
hist(Nitrógeno_Total,breaks = 10,
main =
"Gráfica N°1: Distribución de la cantidad de Nitrógeno Total de estudio
de contaminación del agua en China en el año 2023",
xlab = " Nitrógeno Total (mg/L) ",
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_Nitrógeno_Total$breaks,labels =
Hist_Nitrógeno_Total$breaks,las=1,
cex.axis=0.9)
#Global
hist(Nitrógeno_Total, breaks = 10,
main =
"Gráfica N°2: Distribución de la cantidad de Nitrógeno Totalde estudio
de contaminación del agua en China en el año 2023",
xlab = " Nitrógeno Total (mg/L)",
ylab = "Cantidad",
ylim = c(0, length(Nitrógeno_Total)),
col = "pink",
cex.main = 1.3,
cex.lab = 1,
cex.axis = 0.9,
xaxt = "n")
axis(1, at = Hist_Nitrógeno_Total$breaks,
labels = Hist_Nitrógeno_Total$breaks, las = 1,
cex.axis = 0.9)
barplot(
height = round(TDFNitrógeno_Total$hi,0),
space=0,
col = "skyblue",
main =
"Gráfica N°3: Distribución porcentual del Nitrógeno Total de estudio
de contaminación del agua en China en el año 2023 ",
xlab="Nitrógeno Total (mg/L)",
ylab="Porcentaje (%)",
names.arg =round(TDFNitrógeno_Total$MC,1),
ylim = c(0,100))
# Local
hist(Nitrógeno_Total, breaks = 10,
main =
"Gráfica N°4:Distribución porcentual para el Nitrógeno Total de estudio
de contaminación del agua en China en el año 2023",
xlab = "Nitrógeno Total (mg/L)",
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_Nitrógeno_Total$breaks,
labels = Hist_Nitrógeno_Total$breaks, las = 1,
cex.axis = 0.9)
barplot(TDFNitrógeno_Total$hi,space=0,
col = "lightblue",
main ="Gráfica N°5: Distribución porcentual para el Nitrógeno Totalde
estudio
de contaminación del agua en China en el año 2023",
xlab="Nitrógeno Total (mg/L)",
ylab="Porcentaje (%)",
ylim = c(0,40),
names.arg = TDFNitrógeno_Total$MC)
# Diagrama de Caja
boxplot(Nitrógeno_Total,
horizontal = TRUE,
main = "Gráfica N°6:Distribución de frecuencia para el Nitrógeno Total
de estudio de contaminación del agua en China en el año 2023 ",
xlab = " Nitrógeno Total (mg/L) ",
col = "purple",
outline = TRUE,
pch = 1)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.230 1.630 1.980 1.983 2.320 3.840
bp <- boxplot(Nitrógeno_Total,
horizontal = TRUE,
plot = FALSE)
valores_atipicos <- bp$out
min_atipico <- min(valores_atipicos)
max_atipico <- max(valores_atipicos)
min_atipico
## [1] 1.27
max_atipico
## [1] 4.7
# Diagrama de Ojiva Ascendente y Descendente
plot(Li, Ni_asc,
main =
"Gráfica N°7: Distribución de frecuencias acumuladas Ascendente y
Descendente para el Nitrógeno Total de estudio de contaminación del
agua en China en el año 2023",
xlab = "Nitrógeno Total (mg/L)",
ylab = "Cantidad",
xlim = c(min(Li), max(Ls)),
col = "orange",
cex.axis = 0.8,
type = "o",
lwd = 3,
las = 1,
xaxt = "n")
lines(Ls, Ni_desc,
col = "green",
type = "o",
lwd = 3)
axis(1, at = Li, las = 1)
# Diagrama de Ojiva Ascendente y Descendente Porcentual
plot(Li, Hi_desc *100,
main =
"Gráfica N°8: Distribución porcentual acumulada Ascendente y
Descendente para el Nitrógeno Total de estudio de contaminación del
agua en China en el año 2023",
xlab = "Nitrógeno Total (mg/L)",
ylab = "Cantidad",
xlim = c(min(Li), max(Ls)),
col = "red",
cex.axis = 0.8,
type = "o",
lwd = 3,
las = 1,
xaxt = "n")
lines(Ls, Hi_asc *100,
col = "blue",
type = "o",
lwd = 3)
axis(1, at = Li, las = 1)
# 4. Indicadores
# Media aritmética
media <- round(mean(Nitrógeno_Total), 2)
media
## [1] 3.01
# Moda
max_ni <- max(TDFNitrógeno_Total$ni)
moda <- TDFNitrógeno_Total$MC[TDFNitrógeno_Total$ni == max_ni]
moda
## [1] 3.25
# Mediana
mediana <- median(Nitrógeno_Total)
mediana
## [1] 3.01
# Varianza
varianza <- var(Nitrógeno_Total)
varianza
## [1] 0.2483291
# Desviación Estándar
sd <- sd(Nitrógeno_Total)
sd
## [1] 0.4983263
# Coeficiente de Variación
cv <- round((sd / media) * 100, 2)
cv
## [1] 16.56
# Asimetría
library(e1071)
asimetria <- skewness(Nitrógeno_Total, type = 2)
asimetria
## [1] 0.03543315
#Curtosis
curtosis <- kurtosis(Nitrógeno_Total)
curtosis
## [1] -0.06616814
tabla_indicadores <- data.frame("Variable" =c("Nitrógeno Total
(mg/L)"),
"Rango" =
c("[1.27;4.7]"),
"X" = c(media),
"Me" =
c(round(mediana,2)),
"Mo" = c(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" =
"[1.27;4.7]")
library(knitr)
kable(tabla_indicadores, align = 'c', caption =
"Conclusiones de la variable
Nitrógeno Total (mg/L)")
| Variable | Rango | X | Me | Mo | V | Sd | Cv | As | K | Valores.Atipicos |
|---|---|---|---|---|---|---|---|---|---|---|
| Nitrógeno Total | ||||||||||
| (mg/L) | [1.27;4.7] | 3.01 | 3.01 | 3.25 | 0.25 | 0.5 | 16.56 | 0.04 | -0.07 | [1.27;4.7] |