title: “Semanas 21 y 22: Tablas de Frecuencias, Histogramas y Ojiva”
output: html_document
CLASE N. 21: Tablas de Frecuencias Agrupadas, Histograma y Poligono
de Frecuencias
1. Datos de Entrada (Edades de 50 Personas)
edades <- c(38, 15, 12, 42, 35, 62, 18, 47, 28, 27, 36, 11, 22, 19, 42,
38, 25, 32, 16, 10, 42, 35, 28, 11, 16, 21, 35, 32, 28, 47,
18, 31, 26, 16, 52, 19, 23, 35, 41, 62, 16, 10, 31, 18, 38,
28, 31, 16, 42, 31)
n <- length(edades)
2. Parametros y Tabla de Frecuencias (Semana 21)
k <- round(1 + 3.322 * log10(n))
valor_max <- max(edades)
valor_min <- min(edades)
rango <- valor_max - valor_min
amplitud <- ceiling(rango / k)
cortes <- seq(valor_min, valor_min + k * amplitud, by = amplitud)
intervalos <- cut(edades, breaks = cortes, right = FALSE, include.lowest = TRUE)
frec_abs <- table(intervalos)
frec_rel <- prop.table(frec_abs)
frec_rel_pct <- frec_rel * 100
marcas_clase <- cortes[-length(cortes)] + amplitud / 2
tabla_s21 <- data.frame(
Clase = names(frec_abs),
Marca_xi = marcas_clase,
Frec_Abs_ni = as.numeric(frec_abs),
Frec_Rel_fi = round(as.numeric(frec_rel), 3),
Porcentaje_pct = paste0(round(as.numeric(frec_rel_pct), 1), "%")
)
knitr::kable(tabla_s21, caption = "Tabla de Frecuencias Agrupadas - Semana 21")
Tabla de Frecuencias Agrupadas - Semana 21
| [10,18) |
14 |
11 |
0.22 |
22% |
| [18,26) |
22 |
9 |
0.18 |
18% |
| [26,34) |
30 |
12 |
0.24 |
24% |
| [34,42) |
38 |
9 |
0.18 |
18% |
| [42,50) |
46 |
6 |
0.12 |
12% |
| [50,58) |
54 |
1 |
0.02 |
2% |
| [58,66] |
62 |
2 |
0.04 |
4% |
3. Graficos - Semana 21
par(mfrow = c(1, 2))
hist(edades, breaks = cortes, right = FALSE, col = "skyblue",
main = "Histograma y Poligono de Frecuencias",
xlab = "Edad (anos)", ylab = "Frecuencia Absoluta (ni)",
border = "white", xaxt = "n")
axis(1, at = cortes)
lines(marcas_clase, frec_abs, type = "b", col = "forestgreen", pch = 19, lwd = 2)
plot(marcas_clase, frec_abs, type = "o", col = "forestgreen", pch = 19, lwd = 2,
main = "Poligono de Frecuencias Absolutas",
xlab = "Marca de Clase (xi)", ylab = "Frecuencia Absoluta (ni)",
xaxt = "n")
axis(1, at = marcas_clase)
grid()
polygon(c(min(marcas_clase), marcas_clase, max(marcas_clase)),
c(0, frec_abs, 0), col = rgb(0.1, 0.7, 0.3, 0.25), border = NA)

par(mfrow = c(1, 1))
CLASE N. 22: Frecuencias Acumuladas, Histograma Acumulado y
Ojiva
4. Tabla de Frecuencias Acumuladas (Semana 22)
frec_abs_acum <- cumsum(frec_abs)
frec_rel_acum <- cumsum(frec_rel)
frec_rel_acum_pct <- cumsum(frec_rel_pct)
tabla_s22 <- data.frame(
Clase = names(frec_abs),
Marca_xi = marcas_clase,
Frec_Abs_ni = as.numeric(frec_abs),
Frec_Rel_fi = round(as.numeric(frec_rel), 3),
Porcentaje_pct = paste0(round(as.numeric(frec_rel_pct), 1), "%"),
Frec_Acum_Ni = as.numeric(frec_abs_acum),
Porcentaje_Acum_Fi = paste0(round(as.numeric(frec_rel_acum_pct), 1), "%")
)
knitr::kable(tabla_s22, caption = "Tabla de Frecuencias Acumuladas - Semana 22")
Tabla de Frecuencias Acumuladas - Semana 22
| [10,18) |
14 |
11 |
0.22 |
22% |
11 |
22% |
| [18,26) |
22 |
9 |
0.18 |
18% |
20 |
40% |
| [26,34) |
30 |
12 |
0.24 |
24% |
32 |
64% |
| [34,42) |
38 |
9 |
0.18 |
18% |
41 |
82% |
| [42,50) |
46 |
6 |
0.12 |
12% |
47 |
94% |
| [50,58) |
54 |
1 |
0.02 |
2% |
48 |
96% |
| [58,66] |
62 |
2 |
0.04 |
4% |
50 |
100% |
5. Graficos - Semana 22
par(mfrow = c(1, 2))
barplot(frec_abs_acum, space = 0, col = "palegreen3", border = "darkgreen",
main = "Histograma de Frecuencias Acumuladas",
xlab = "Intervalos de Clase", ylab = "Frecuencia Acumulada (Ni)")
limites_superiores <- cortes[-1]
plot(limites_superiores, frec_rel_acum_pct, type = "b", col = "blue4", pch = 18, lwd = 2,
main = "Ojiva (Porcentaje Acumulado)",
xlab = "Edad (Limite Superior)", ylab = "Porcentaje Acumulado (%)",
ylim = c(0, 100))
grid()
abline(h = c(25, 50, 75, 100), col = "gray60", lty = 2)

par(mfrow = c(1, 1))
6. Funcion de Distribucion Empirica (ECDF)
plot(ecdf(edades), col = "purple", lwd = 2,
main = "Funcion de Distribucion Empirica (ECDF)",
xlab = "Edad (anos)", ylab = "Fn(Edad)")
grid()
