2. Tabla de Distribución de Frecuencia
#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
Li <-round(seq(from=min,to=max-A,by=A),2)
Li[1] <- min(Oxigeno_disuelto)
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(Oxigeno_disuelto >= Li[i] & Oxigeno_disuelto < Ls[i])
} else {
ni[i] <- sum(Oxigeno_disuelto >= Li[i] & Oxigeno_disuelto <= Ls[i])
}
}
sum(ni)
## [1] 2997
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)))
TDFOxigeno_disuelto <- data.frame(
Li, Ls, Mc, ni, round(hi, 2), Ni_asc, Ni_desc,
round(Hi_asc, 2), round(Hi_desc, 2)
)
colnames(TDFOxigeno_disuelto)<-
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="-")
TDFOxigeno_disuelto<-rbind(TDFOxigeno_disuelto,totales)
#Simplificación con el histograma
Hist_Oxigeno_disuelto<-hist(Oxigeno_disuelto,breaks = 8,plot = F)
k<-length(Hist_Oxigeno_disuelto$breaks)
Li<-Hist_Oxigeno_disuelto$breaks[1:(length(Hist_Oxigeno_disuelto$breaks)-1
)]
Ls<-Hist_Oxigeno_disuelto$breaks[2:length(Hist_Oxigeno_disuelto$breaks)]
ni<-Hist_Oxigeno_disuelto$counts
sum(ni)
## [1] 3000
Mc<-Hist_Oxigeno_disuelto$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)))
TDFOxigeno_disuelto<-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(TDFOxigeno_disuelto)<-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="-")
TDFOxigeno_disuelto_total<-rbind(TDFOxigeno_disuelto,totales)
library(knitr)
library(kableExtra)
kable(TDFOxigeno_disuelto_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"))
Tabla de Frecuencias de Nitrógeno Total de estudio de contaminación del
agua en China en el año 2023
|
Lim inf
|
Lim sup
|
MC
|
|
0
|
2
|
1
|
4
|
0.13
|
4
|
3000
|
0.13
|
100
|
|
2
|
4
|
3
|
55
|
1.83
|
59
|
2996
|
1.97
|
99.87
|
|
4
|
6
|
5
|
413
|
13.77
|
472
|
2941
|
15.73
|
98.03
|
|
6
|
8
|
7
|
1017
|
33.9
|
1489
|
2528
|
49.63
|
84.27
|
|
8
|
10
|
9
|
1042
|
34.73
|
2531
|
1511
|
84.37
|
50.37
|
|
10
|
12
|
11
|
412
|
13.73
|
2943
|
469
|
98.1
|
15.63
|
|
12
|
14
|
13
|
54
|
1.8
|
2997
|
57
|
99.9
|
1.9
|
|
14
|
16
|
15
|
3
|
0.1
|
3000
|
3
|
100
|
0.1
|
|
TOTAL
|
|
|
3000
|
100
|
|
|
|
|
3. Gráficas
# GRAFICAS
#Histograma
hist(Oxigeno_disuelto,breaks = 10,
main =
"Gráfica N°1: Distribución de la cantidad de Oxígeno Disuelto de estudio
de contaminación del agua en China en el año 2023",
xlab = " Oxígeno Disuelto (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_Oxigeno_disuelto$breaks,labels =
Hist_Oxigeno_disuelto$breaks,las=1,
cex.axis=0.9)

#Global
hist(Oxigeno_disuelto, breaks = 10,
main =
"Gráfica N°2: Distribución de la cantidad de Oxígeno Disuelto de estudio
de contaminación del agua en China en el año 2023",
xlab = " Oxígeno Disuelto(mg/L)",
ylab = "Cantidad",
ylim = c(0, length(Oxigeno_disuelto)),
col = "pink",
cex.main = 1.3,
cex.lab = 1,
cex.axis = 0.9,
xaxt = "n")
axis(1, at = Hist_Oxigeno_disuelto$breaks,
labels = Hist_Oxigeno_disuelto$breaks, las = 1,
cex.axis = 0.9)

barplot(
height = round(TDFOxigeno_disuelto$hi,0),
space=0,
col = "skyblue",
main =
"Gráfica N°3: Distribución porcentual de Oxígeno Disuelto de estudio
de contaminación del agua en China en el año 2023 ",
xlab="Oxígeno Disuelto (mg/L)",
ylab="Porcentaje (%)",
names.arg =round(TDFOxigeno_disuelto$MC,1),
ylim = c(0,100))

# Local
hist(Oxigeno_disuelto, breaks = 10,
main =
"Gráfica N°4:Distribución porcentual para el Oxígeno Disuelto de estudio
de contaminación del agua en China en el año 2023",
xlab = "Oxígeno Disuelto (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_Oxigeno_disuelto$breaks,
labels = Hist_Oxigeno_disuelto$breaks, las = 1,
cex.axis = 0.9)

barplot(TDFOxigeno_disuelto$hi,space=0,
col = "lightblue",
main ="Gráfica N°5: Distribución porcentual para el Oxígeno Disuelto de
estudio
de contaminación del agua en China en el año 2023",
xlab="Oxígeno Disuelto (mg/L)",
ylab="Porcentaje (%)",
ylim = c(0,40),
names.arg = TDFOxigeno_disuelto$MC)

# Diagrama de Caja
boxplot(Oxigeno_disuelto,
horizontal = TRUE,
main = "Gráfica N°6:Distribución de frecuencia para el Oxígeno Disuelto
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(Oxigeno_disuelto,
horizontal = TRUE,
plot = FALSE)
valores_atipicos <- bp$out
min_atipico <- min(valores_atipicos)
max_atipico <- max(valores_atipicos)
min_atipico
## [1] 1.47
max_atipico
## [1] 14.49
# 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 Oxígeno Disuelto de estudio de contaminación del
agua en China en el año 2023",
xlab = "Oxígeno Disuelto (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 Oxígeno Disuelto de estudio de contaminación del
agua en China en el año 2023",
xlab = "Oxígeno Disuelto (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(Oxigeno_disuelto), 2)
media
## [1] 8.01
# Moda
max_ni <- max(TDFOxigeno_disuelto$ni)
moda <- TDFOxigeno_disuelto$MC[TDFOxigeno_disuelto$ni == max_ni]
moda
## [1] 9
# Mediana
mediana <- median(Oxigeno_disuelto)
mediana
## [1] 8.03
# Varianza
varianza <- var(Oxigeno_disuelto)
varianza
## [1] 3.898718
# Desviación Estándar
sd <- sd(Oxigeno_disuelto)
sd
## [1] 1.974517
# Coeficiente de Variación
cv <- round((sd / media) * 100, 2)
cv
## [1] 24.65
# Asimetría
library(e1071)
asimetria <- skewness(Oxigeno_disuelto, type = 2)
asimetria
## [1] 0.005597006
#Curtosis
curtosis <- kurtosis(Oxigeno_disuelto)
curtosis
## [1] -0.1355801
5. Tabla de Indicadores
tabla_indicadores <- data.frame("Variable" =c("Nitrógeno Total
(mg/L)"),
"Rango" =
c("[1.47;14.49]"),
"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.47;14.49]")
library(knitr)
kable(tabla_indicadores, align = 'c', caption =
"Conclusiones de la variable
Oxígeno Disuelto (mg/L)")
Conclusiones de la variable Oxígeno Disuelto (mg/L)
| Nitrógeno Total |
|
|
|
|
|
|
|
|
|
|
| (mg/L) |
[1.47;14.49] |
8.01 |
8.03 |
9 |
3.9 |
1.97 |
24.65 |
0.01 |
-0.14 |
[1.47;14.49] |
6. Conclusión