4.Tabla de distribución de Frecuencia
4.1 Tabla generada con Sturges
TDF_CGP_Completo <- rbind(
TDF_CGP,
data.frame(
Li = "Total",
Ls = " ",
MC = " ",
ni = sum(TDF_CGP$ni),
hi = 100,
Niasc = " ",
Nidsc = " ",
Hiasc = " ",
Hidsc = " "
)
)
# ================================
# TABLA GT
# ================================
library(gt)
library(dplyr)
tabla_CGP <- TDF_CGP_Completo %>%
gt() %>%
tab_header(
title = md("*Tabla Nº1*"),
subtitle = md("**Distribución de los porcentajes de vidrio en los residuos sólidos en el estudio de la calidad
de agua en Europa(1991-2017)**")
) %>%
tab_source_note(
source_note = md("Autor: Grupo 3")
) %>%
tab_options(
table.border.top.color = "black",
table.border.bottom.color = "black",
column_labels.border.bottom.color = "black",
row.striping.include_table_body = TRUE
)
tabla_CGP
| Tabla Nº1 |
| Distribución de los porcentajes de vidrio en los residuos sólidos en el estudio de la calidad
de agua en Europa(1991-2017) |
| Li |
Ls |
MC |
ni |
hi |
Niasc |
Nidsc |
Hiasc |
Hidsc |
| 2.2 |
3.48 |
2.84 |
4697 |
23.61 |
4697 |
19893 |
24 |
100 |
| 3.48 |
4.76 |
4.12 |
83 |
0.42 |
4780 |
15196 |
24 |
76 |
| 4.76 |
6.04 |
5.4 |
657 |
3.30 |
5437 |
15113 |
27 |
76 |
| 6.04 |
7.32 |
6.68 |
126 |
0.63 |
5563 |
14456 |
28 |
73 |
| 7.32 |
8.6 |
7.96 |
3291 |
16.54 |
8854 |
14330 |
44 |
72 |
| 8.6 |
9.88 |
9.24 |
754 |
3.79 |
9608 |
11039 |
48 |
55 |
| 9.88 |
11.16 |
10.52 |
10203 |
51.29 |
19811 |
10285 |
100 |
52 |
| 20.12 |
21.4 |
20.76 |
82 |
0.41 |
19893 |
82 |
100 |
0 |
| Total |
|
|
19893 |
100.00 |
|
|
|
|
| Autor: Grupo 3 |
4.2 Tabla Simplificada
#TABLA 2-----------------------------------------------------------
# =========================
# TABLA Nº2 (SIMPLIFICADA)
# =========================
# Crear 10 intervalos redondeados
cortes <- seq(
floor(min(CGP)),
ceiling(max(CGP)),
length.out = 11
)
# Histograma sin dibujar
histoP <- hist(
CGP,
breaks = cortes,
plot = FALSE
)
# Extraer información
LimInf <- histoP$breaks[-length(histoP$breaks)]
LimSup <- histoP$breaks[-1]
Mc <- round((LimInf + LimSup)/2, 1)
ni <- histoP$counts
hi <- round((ni/sum(ni))*100, 2)
# Crear tabla
TDF_Histo_CGP <- data.frame(
LimInf,
LimSup,
Mc,
ni,
hi
)
# Eliminar intervalos vacíos
TDF_Histo_CGP <- subset(TDF_Histo_CGP, ni > 0)
# Recalcular acumuladas
TDF_Histo_CGP$Ni_asc <- cumsum(TDF_Histo_CGP$ni)
TDF_Histo_CGP$Ni_dsc <- rev(cumsum(rev(TDF_Histo_CGP$ni)))
TDF_Histo_CGP$Hi_asc <- round(cumsum(TDF_Histo_CGP$hi),2)
TDF_Histo_CGP$Hi_dsc <- round(rev(cumsum(rev(TDF_Histo_CGP$hi))),2)
# Agregar fila total
TDF_Histo_CGP_Completo <- rbind(
TDF_Histo_CGP,
data.frame(
LimInf = "Total",
LimSup = "",
Mc = "",
ni = sum(TDF_Histo_CGP$ni),
hi = 100,
Ni_asc = "",
Ni_dsc = "",
Hi_asc = "",
Hi_dsc = ""
)
)
# =========================
# TABLA GT
# =========================
library(gt)
tabla_Histo_CGP <- TDF_Histo_CGP_Completo %>%
gt() %>%
tab_header(
title = md("*Tabla Nº2*"),
subtitle = md("**Distribución de los porcentajes de vidrio agrupados en los residuos sólidos en el estudio de la calidad
de agua en Europa(1991-2017)**")
) %>%
cols_label(
LimInf = "Límite Inferior",
LimSup = "Límite Superior",
Mc = "Marca de Clase",
ni = "ni",
hi = "hi (%)",
Ni_asc = "Ni ↑",
Ni_dsc = "Ni ↓",
Hi_asc = "Hi ↑ (%)",
Hi_dsc = "Hi ↓ (%)"
) %>%
tab_source_note(
source_note = md("Autor: Grupo 3")
) %>%
tab_options(
table.border.top.color = "black",
table.border.bottom.color = "black",
column_labels.border.bottom.color = "black",
row.striping.include_table_body = TRUE
)
tabla_Histo_CGP
| Tabla Nº2 |
| Distribución de los porcentajes de vidrio agrupados en los residuos sólidos en el estudio de la calidad
de agua en Europa(1991-2017) |
| Límite Inferior |
Límite Superior |
Marca de Clase |
ni |
hi (%) |
Ni ↑ |
Ni ↓ |
Hi ↑ (%) |
Hi ↓ (%) |
| 2 |
4 |
3 |
4753 |
23.89 |
4753 |
19893 |
23.89 |
100.01 |
| 4 |
6 |
5 |
684 |
3.44 |
5437 |
15140 |
27.33 |
76.12 |
| 6 |
8 |
7 |
3373 |
16.96 |
8810 |
14456 |
44.29 |
72.68 |
| 8 |
10 |
9 |
11000 |
55.30 |
19810 |
11083 |
99.59 |
55.72 |
| 10 |
12 |
11 |
1 |
0.01 |
19811 |
83 |
99.6 |
0.42 |
| 20 |
22 |
21 |
82 |
0.41 |
19893 |
82 |
100.01 |
0.41 |
| Total |
|
|
19893 |
100.00 |
|
|
|
|
| Autor: Grupo 3 |
5. Gráficas
5.1 Histograma
# =========================
# GRÁFICA Nº1
# HISTOGRAMA
# =========================
# Intervalos de la Tabla 1 (sin los intervalos con ni = 0)
cortes <- c(TDF_CGP$Li, max(TDF_CGP$Ls))
# Histograma
hist(
CGP,
breaks = cortes,
col = "lightblue",
border = "black",
main = "Gráfica Nº1: Distribución de los porcentajes de vidrio en los residuos
sólidos en el estudio de la calidad
de agua en Europa(1991-2017)",
xlab = "Marca de clase",
ylab = "Frecuencia",
xaxt = "n"
)
# Mostrar las marcas de clase en lugar de los límites
axis(
side = 1,
at = TDF_CGP$MC,
labels = round(TDF_CGP$MC, 1),
las = 2,
cex.axis = 0.8
)
grid()

5.2 Histograma General
# =========================
# GRÁFICA Nº2
# HISTOGRAMA BASADO EN TABLA 2
# =========================
# Histograma usando los mismos intervalos de la Tabla 2
hist(
CGP,
breaks = c(TDF_Histo_CGP$LimInf,
max(TDF_Histo_CGP$LimSup)),
col = "deepskyblue",
border = "black",
main = "Gráfica Nº2: Distribución de frecuencias agrupado
de los porcentajes de vidrio en los residuos
sólidos en el estudio de la calidad
de agua en Europa(1991-2017)",
xlab = "Marca de clase",
ylab = "Frecuencia",
xaxt = "n"
)
# Mostrar las marcas de clase en el eje X
axis(
side = 1,
at = TDF_Histo_CGP$Mc,
labels = round(TDF_Histo_CGP$Mc, 1),
las = 2,
cex.axis = 0.8
)
grid()

5.3 Histograma de Frecuencias global
# =========================
# GRÁFICA Nº3
# Frecuencia Global
# =========================
barplot(
TDF_Histo_CGP$ni,
names.arg = TDF_Histo_CGP$Mc,
col = "limegreen",
border = "black",
main = "Gráfica Nº3: Distribución de frecuencias de los porcentajes de vidrio en los residuos
sólidos en el estudio de la calidad
de agua en Europa(1991-2017)",
xlab = "Marcas de clase",
ylab = "Frecuencia absoluta",
ylim = c(0, 20000)
)
grid()

5.4 Histograma de Frecuencia relativa
# =========================
# GRÁFICA Nº4
# Porcentaje Local
# =========================
barplot(
TDF_Histo_CGP$hi,
names.arg = TDF_Histo_CGP$Mc,
col = "royalblue",
border = "black",
main = "Gráfica Nº4: Distribución de frecuencias relativas agrupado
de los porcentajes de vidrio en los residuos
sólidos en el estudio de la calidad
de agua en Europa(1991-2017)",
xlab = "Marcas de clase",
ylab = "Porcentaje (%)",
ylim = c(0, max(TDF_Histo_CGP$hi) * 1.15)
)
grid()

5.5 Histograma de Frecuencia global
# =========================
# GRÁFICA Nº5
# Porcentaje Global
# =========================
hi_global <- round((TDF_Histo_CGP$ni / 20000) * 100, 2)
barplot(
hi_global,
names.arg = round(TDF_Histo_CGP$Mc, 1),
col = "navy",
border = "black",
main = "Gráfica Nº5: Distribución de frecuencias relativas agrupado
de los porcentajes de vidrio en los residuos
sólidos en el estudio de la calidad
de agua en Europa(1991-2017)",
xlab = "Marca de clase",
ylab = "Porcentaje respecto al total (%)",
ylim = c(0, 100)
)
grid()

5.5 Póligono de Frecuencia
# =========================
# HISTOGRAMA + POLÍGONO
# =========================
# Amplitud de clase
A <- TDF_Histo_CGP$Mc[2] - TDF_Histo_CGP$Mc[1]
# Histograma
hist(
CGP,
breaks = c(TDF_Histo_CGP$LimInf,
max(TDF_Histo_CGP$LimSup)),
freq = TRUE,
col = "lightblue",
border = "black",
main = "Gráfica Nº6:Polígono de Frecuencias de los porcentajes de vidrio en los residuos
sólidos en el estudio de la calidad
de agua en Europa(1991-2017)",
xlab = "Porcentaje de vidrio",
ylab = "Frecuencia"
)
## Warning in plot.histogram(r, freq = freq1, col = col, border = border, angle =
## angle, : the AREAS in the plot are wrong -- rather use 'freq = FALSE'
# Puntos para cerrar el polígono
Mc_pol <- c(
TDF_Histo_CGP$Mc[1] - A,
TDF_Histo_CGP$Mc,
TDF_Histo_CGP$Mc[length(TDF_Histo_CGP$Mc)] + A
)
ni_pol <- c(
0,
TDF_Histo_CGP$ni,
0
)
# Polígono
lines(
Mc_pol,
ni_pol,
type = "o",
pch = 16,
lwd = 3,
col = "red"
)
grid()

5.5 Póligono de Frecuencia Relativa
# Posiciones de las barras
bp <- barplot(
TDF_Histo_CGP$hi,
names.arg = round(TDF_Histo_CGP$Mc, 1),
col = "lightblue",
border = "black",
main = "Gráfica Nº7:Polígono de Frecuencias relativas de los porcentajes de vidrio en los residuos
sólidos en el estudio de la calidad
de agua en Europa(1991-2017)",
xlab = "Marcas de clase",
ylab = "Frecuencia relativa (%)",
ylim = c(0, max(TDF_Histo_CGP$hi) * 1.15)
)
# Polígono cerrado
x_pol <- c(
bp[1] - (bp[2] - bp[1]), # punto inicial
bp,
bp[length(bp)] + (bp[length(bp)] - bp[length(bp)-1]) # punto final
)
y_pol <- c(
0,
TDF_Histo_CGP$hi,
0
)
# Dibujar polígono
lines(
x_pol,
y_pol,
type = "o",
pch = 16,
lwd = 3,
col = "red"
)
grid()
legend(
"topright",
legend = c("Frecuencia relativa (%)"),
col = "red",
lwd = 3,
pch = 16,
bty = "n"
)

5.6 Bloxplot
# =========================
# BOXPLOT CON ATÍPICOS
# =========================
boxplot(
CGP,
horizontal = TRUE,
col = "lightblue",
outline = TRUE,
main = "Gráfica Nº8: Boxplot de los porcentajes de vidrio en los residuos
sólidos en el estudio de la calidad
de agua en Europa(1991-2017)"
)
# Media
points(
mean(CGP),
1,
pch = 19,
col = "red",
cex = 1.5
)
legend(
"topright",
legend = c("Media", "Valores atípicos"),
pch = c(19, 1),
col = c("red", "black"),
bty = "n"
)

5.7 Ojiva ascendente y descendente
# =========================
# OJIVAS
# =========================
par(mar = c(10,4,7,2))
plot(
TDF_Histo_CGP$LimInf,
TDF_Histo_CGP$Ni_dsc,
main = "Gráfica Nº9: Ojiva ascendente y descendente de los porcentajes
de vidrio en los residuos
sólidos en el estudio de la calidad
de agua en Europa(1991-2017)",
xlab = "Porcentaje de vidrio (%)",
ylab = "Cantidad",
col = "red",
type = "o",
lwd = 2
)
lines(
TDF_Histo_CGP$LimSup,
TDF_Histo_CGP$Ni_asc,
col = "green",
type = "o",
lwd = 2
)
legend(
"right",
legend = c(
"Ojiva descendente",
"Ojiva ascendente"
),
col = c("red", "green"),
pch = c(16, 16),
lty = 1,
bty = "n"
)

5.8 Ojiva de Frecuencia relativa
# =========================
# OJIVAS PORCENTUALES
# =========================
par(mar = c(10,4,7,2))
plot(
TDF_Histo_CGP$LimSup,
TDF_Histo_CGP$Hi_asc,
type = "o",
col = "blue",
pch = 16,
lwd = 2,
main = "Gráfica Nº10: Ojiva ascendente y descendente
de frecuencia relativa de los porcentajes
de vidrio en los residuos sólidos en el estudio de la calidad
de agua en Europa(1991-2017)",
xlab = "Porcentaje de vidrio",
ylab = "Porcentaje acumulado (%)",
ylim = c(0, 100)
)
# Ojiva Descendente
lines(
TDF_Histo_CGP$LimInf,
TDF_Histo_CGP$Hi_dsc,
type = "o",
col = "red",
pch = 17,
lwd = 2
)
grid()
legend(
"right",
legend = c(
"Ojiva Ascendente (%)",
"Ojiva Descendente (%)"
),
col = c("blue", "red"),
pch = c(16, 17),
lty = 1,
bty = "n"
)

6. Indicadores estadísticos
6.1 Indicadores de Tendencia Central
media <- round(mean(CGP), 2)
mediana <- round(median(CGP), 2)
# Moda como intervalo
indice_moda <- which.max(TDF_Histo_CGP$ni)
moda <- paste0(
"[",
TDF_Histo_CGP$LimInf[indice_moda],
" ; ",
TDF_Histo_CGP$LimSup[indice_moda],
"]"
)
6.2 Dispersión
varianza <- round(var(CGP), 2)
desv_est <- round(sd(CGP), 2)
cv <- round((desv_est / media) * 100, 2)
6.3 Asimetría
# Asimetría
asimetria <- round(
mean((CGP - mean(CGP))^3) /
sd(CGP)^3,
2
)
# Curtosis
curtosis <- round(
mean((CGP - mean(CGP))^4) /
sd(CGP)^4 - 3,
2
)
6.4 Valores atipicos
atipicos <- boxplot.stats(CGP)$out
n_atipicos <- length(atipicos)
6.5 Tabla de indicadores
tabla_indicadores <- data.frame(
Variable = "composition_glass_percent",
Rango = paste0(
"[",
round(min(CGP), 2),
" ; ",
round(max(CGP), 2),
"]"
),
X = media,
Me = mediana,
Mo = moda,
V = varianza,
Sd = desv_est,
Cv = cv,
As = asimetria,
K = curtosis,
Valores_Atipicos = n_atipicos
)
tabla_indicadores_gt <- tabla_indicadores %>%
gt() %>%
tab_header(
title = md("*Tabla Nº3*"),
subtitle = md("**Indicadores estadísticos de porcentajes
de vidrio en los residuos sólidos en el estudio de la calidad
de agua en Europa(1991-2017)**")
) %>%
tab_source_note(
source_note = md("Autor: Grupo 3")
)
tabla_indicadores_gt
| Tabla Nº3 |
| Indicadores estadísticos de porcentajes
de vidrio en los residuos sólidos en el estudio de la calidad
de agua en Europa(1991-2017) |
| Variable |
Rango |
X |
Me |
Mo |
V |
Sd |
Cv |
As |
K |
Valores_Atipicos |
| composition_glass_percent |
[2.2 ; 21.4] |
7.66 |
10 |
[8 ; 10] |
10.75 |
3.28 |
42.82 |
-0.58 |
0.16 |
82 |
| Autor: Grupo 3 |
7.Conclusión
#El comportamiento de la variable Porcentaje de vidrio en los residuos sólidos sigue la siguiente manera: fluctúa entre 2,2 % y 21,4 % y sus valores giran en torno a la media aritmética de 7,66 %, con una desviación estándar de 3,28 %, siendo un conjunto de datos moderadamente heterogéneo, ya que su coeficiente de variación es de 42,82 %. El conjunto de valores presenta una distribución leptocúrtica ligera (Curtosis = 0,16), lo que indica una concentración de datos alrededor del centro ligeramente superior a la de una distribución normal. Además, muestra una asimetría negativa moderada (Asimetría = -0,58), por lo que los valores tienden a concentrarse hacia la parte alta de la distribución, con una cola más extendida hacia los valores bajos. Finalmente, se identificaron 82 valores atípicos (N = 82), lo que evidencia la presencia de observaciones que se alejan del comportamiento general de los datos. Por todo lo anterior, la variable Porcentaje de vidrio en los residuos sólidos presenta una dispersión moderada en los valores registrados, reflejando diferencias en la composición de vidrio de los residuos sólidos incluidos en el conjunto de datos analizado.