1 📊 Mis datos

datos21 <- c(38, 15, 10, 12, 62, 46, 25, 56, 27, 24, 23, 21, 20, 25, 38, 27, 48, 35, 50, 65, 59, 58, 47, 42, 37, 35, 32, 40, 28, 14, 12, 24, 66, 73, 72, 70, 68, 65, 54, 48, 34, 33, 21, 19, 61, 59, 47, 46, 30, 30)
datos21
 [1] 38 15 10 12 62 46 25 56 27 24 23 21 20 25 38 27 48 35 50 65 59 58 47 42 37
[26] 35 32 40 28 14 12 24 66 73 72 70 68 65 54 48 34 33 21 19 61 59 47 46 30 30
  • Estos son los datos con los cuales vamos a trabajar, que son edades de personas al azar.

2 🔢 Tabla de Frecuencia individuale

Warning in fun(libname, pkgname): couldn't connect to display ":0"
system might not have X11 capabilities; in case of errors when using dfSummary(), set st_options(use.x11 = FALSE)
Freq % Valid % Valid Cum. % Total % Total Cum.
10 1 2 2 2 2
12 2 4 6 4 6
14 1 2 8 2 8
15 1 2 10 2 10
19 1 2 12 2 12
20 1 2 14 2 14
21 2 4 18 4 18
23 1 2 20 2 20
24 2 4 24 4 24
25 2 4 28 4 28
27 2 4 32 4 32
28 1 2 34 2 34
30 2 4 38 4 38
32 1 2 40 2 40
33 1 2 42 2 42
34 1 2 44 2 44
35 2 4 48 4 48
37 1 2 50 2 50
38 2 4 54 4 54
40 1 2 56 2 56
42 1 2 58 2 58
46 2 4 62 4 62
47 2 4 66 4 66
48 2 4 70 4 70
50 1 2 72 2 72
54 1 2 74 2 74
56 1 2 76 2 76
58 1 2 78 2 78
59 2 4 82 4 82
61 1 2 84 2 84
62 1 2 86 2 86
65 2 4 90 4 90
66 1 2 92 2 92
68 1 2 94 2 94
70 1 2 96 2 96
72 1 2 98 2 98
73 1 2 100 2 100
<NA> 0 NA NA 0 100
Total 50 100 100 100 100
  • Se organizan los datos en una tabla los cuales nos muestra que esta compuesta por 50 personas y aparecen la frecuencia relativa y acumulada.

3 📋 Resumen de datos

summary(datos21)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  10.00   25.00   37.50   39.82   55.50   73.00 
  • La edad mínima registrada en la muestra es 10 años, la mediana es de 37.5 años, es decir, la mitad de las 50 personas tiene 37.5 años o menos, y la otra mitad supera esa edad, y la máxima es 73 años.

  • La media (promedio) es de 39.82 años, un valor cercano pero ligeramente superior a la mediana, esto indica una leve asimetría positiva (hacia la derecha).

  • El primer cuartil (Q1 = 25 años) indica que el 25% de la muestra tiene 25 años o menos, es decir, es población joven.

  • El tercer cuartil (Q3 = 55.5 años) indica que el 75% de la muestra tiene 55.5 años o menos, y por lo tanto solo el 25% restante supera esa edad.

4 ➕ Tabla de frecuencia acumulada

library(kableExtra)

tabla_summary <- as.data.frame(unclass(summary(tabla_freq)))

kbl(tabla_summary, align = "c") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"),
                full_width = FALSE, position = "center") %>%
  row_spec(0, bold = TRUE, color = "white", background = "#2E86C1")
Freq % Valid % Valid Cum. % Total % Total Cum.
X Min. : 0.000 Min. : 2.000 Min. : 2.00 Min. : 0.000 Min. : 2.00
X.1 1st Qu.: 1.000 1st Qu.: 2.000 1st Qu.: 29.00 1st Qu.: 2.000 1st Qu.: 30.00
X.2 Median : 1.000 Median : 2.000 Median : 55.00 Median : 2.000 Median : 56.00
X.3 Mean : 2.564 Mean : 5.263 Mean : 54.16 Mean : 5.128 Mean : 55.33
X.4 3rd Qu.: 2.000 3rd Qu.: 4.000 3rd Qu.: 81.00 3rd Qu.: 4.000 3rd Qu.: 83.00
X.5 Max. :50.000 Max. :100.000 Max. :100.00 Max. :100.000 Max. :100.00
X.6 NA NAs :1 NAs :1 NA NA
  • La columna Freq (frecuencia por cada valor de edad individual) tiene una media de 2.56 y una mediana de 1, lo que confirma lo visto en la tabla de frecuencias individuales: la mayoría de las edades se repiten solo 1 o 2 veces.

  • El % Total Cum. (porcentaje acumulado) tiene una mediana de 56%, lo cual es coherente con la mediana de edad (37.5 años) encontrada anteriormente: confirma que aproximadamente a mitad de la tabla ya se acumula poco más de la mitad de los datos.

5 📦 Grafico caja y Bigotes

library(agricolae)
boxplot(datos21, notch = FALSE, horizontal = TRUE, col = "lightblue3")

  • En esta grafica de caja y bigotes mostramos graficamente lo que mostre en resumen de datos, donde la mediana (línea gruesa dentro de la caja) se ubica en 37.5 años, la caja (rango intercuartílico) va aproximadamente de 25 a 55 años, es decir, el 50% central de las personas tiene edades dentro de ese rango, los bigotes se extienden desde 10 hasta 73 años, que corresponden al mínimo y máximo de la muestra, respectivamente. Al no cortarse antes de esos valores, indica que no hay valores atípicos (outliers).

6 📶 Histograma

library(agricolae)
h<-graph.freq(datos21, col= "#A19BE3")

  • En el histograma nos muestran cuantos datos hay en dichos intervalos, para observarlos en un rango más pequeño y organizado.

  • lo que podemos observar es que en el intervalo [19-28) es donde hay una muestra significante de edades (es el que más concentración de personas tiene) con una frecuencia de 11, le siguen [28-37) y [46-55) con 8, después [65-73) con 7, luego [55-64) con 6 y finalizamos con [10-19) y [37-46) que tienen una menor concentración de personas con 5.

7 🗂️ Tabla agrupada

library(kableExtra)

tabla_h <- summary(h)

kbl(tabla_h, digits = 2, align = "c",
    col.names = c("Límite inf.", "Límite sup.", "Marca de clase",
                  "Frecuencia", "Frec. relativa (%)", "Frec. acumulada",
                  "Frec. rel. acumulada (%)")) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"),
                full_width = FALSE, position = "center") %>%
  row_spec(0, bold = TRUE, color = "white", background = "#2E86C1") %>%
  column_spec(4, bold = TRUE, color = "#1B4F72", background = "#D6EAF8") %>%
  add_header_above(c("Clases" = 3, "Frecuencias" = 4))
Clases
Frecuencias
Límite inf. Límite sup. Marca de clase Frecuencia Frec. relativa (%) Frec. acumulada Frec. rel. acumulada (%)
10 19 14.5 5 10 5 10
19 28 23.5 11 22 16 32
28 37 32.5 8 16 24 48
37 46 41.5 5 10 29 58
46 55 50.5 8 16 37 74
55 64 59.5 6 12 43 86
64 73 68.5 7 14 50 100
  • Los datos se agruparon en 7 clases de amplitud 9 cada una, abarcando desde los 10 hasta los 73 años.

  • Según la frecuencia acumulada, el 58% de la muestra (29 de 50 personas) tiene 46 años o menos, mientras que el 42% restante supera esa edad. Esto refuerza que, aunque hay más concentración en edades jóvenes-intermedias, existe una proporción considerable de personas mayores.

8 📐 Polígonos

8.1 🔷 Polígono - frecuencia

x=c(14.5, 23.5, 32.5, 41.5, 50.5, 59.5, 68.5)
y=c(5, 11, 8, 5, 8,6, 7)
plot(x,y,type="p",pch=20,lty=1,xlab="Edad (Clases)",ylab="fᵢ",main="Edad total (en años)",xaxt="n",yaxt="n", col="blue", lwd=2)
axis(side=1,c(14.5, 23.5, 32.5, 41.5, 50.5, 59.5, 68.5))
axis(side=2,c(5,11,8,5,8,6,7),las=2)
lines(x,y)

  • El polígono muestra un pico marcado en la marca de clase 23.5 años (frecuencia = 11), confirmando que este es el punto de mayor concentración de la distribución, después del pico, la línea desciende de forma pronunciada hasta la marca de clase 41.5 años (frecuencia = 5), el punto más bajo de todo el polígono junto con 14.5 años. A partir de los 41.5 años, la línea vuelve a subir hasta 50.5 años (frecuencia = 8), y luego desciende y se estabiliza levemente entre 59.5 y 68.5 años (6 y 7 respectivamente).

8.2 🔶 Polígono - frecuencia absoluta

plot(h, col = "#68DECE", frequency = 1)
polygon.freq(h, col = "#387D9A", frequency = 1, lwd = 2)

  • Este gráfico integra el histograma y el polígono de frecuencias en una sola visualización, permitiendo confirmar que ambas representaciones son consistentes entre sí: el polígono conecta exactamente los puntos medios de cada barra del histograma.

8.3 🔺 Polígono - frecuencia relativa

plot(h, col = "#1DB090", frequency = 2)
polygon.freq(h, col = "#19824E", frequency = 2, lwd = 2)

  • Este gráfico es equivalente al anterior, pero en lugar de mostrar conteos absolutos, muestra la proporción de personas en cada clase (escala de 0 a 1, o de 0% a 100%).

  • La clase [19-28) sigue siendo la de mayor altura, ahora expresada como 0.22 (22%), es decir, poco más de 1 de cada 5 personas de la muestra se ubica en este rango de edad.

  • Las clases [10-19) y [37-46) presentan la menor proporción, con 0.10 (10%) cada una — la décima parte de la muestra en cada uno de esos intervalos.

9 📈 Ojiva

x=c(14.5, 23.5, 32.5, 41.5, 50.5, 59.5, 68.5)
y=c(10,32,48,58,74,86,100)
plot(x,y,type="p",pch=20,lty=1,xlab="Edad (Clases)",
     ylab="fra%",main="Edad total (en años)")
lines(x,y)
segments(50.5,-14.5,50.5,74,lty=2,col="red")
segments(0,74,50.5,74,lty=2,col="red")

  • La curva es monótonamente creciente, como corresponde a cualquier ojiva: nunca desciende, porque cada punto representa el porcentaje acumulado de personas hasta esa edad.

  • Se destaca con líneas punteadas el punto (50.5, 74): esto indica que el 74% de la muestra tiene 50.5 años o menos, y por lo tanto solo el 26% restante supera esa edad.

9.1 🧮 Cálculos para las ojivas

fr_por_clase <- h$counts
fr_por_clase
[1]  5 11  8  5  8  6  7
total_n <- sum(h$counts)

fr_relativos <- fr_por_clase/total_n

fr_porcentuales <- 100*fr_relativos

cumsum(fr_por_clase)
[1]  5 16 24 29 37 43 50
cumsum(fr_relativos)
[1] 0.10 0.32 0.48 0.58 0.74 0.86 1.00
cumsum(fr_porcentuales)
[1]  10  32  48  58  74  86 100
  • La primera línea confirma las frecuencias absolutas de cada una de las 7 clases.

  • La segunda línea corresponde a la frecuencia acumulada: muestra cómo se va “acumulando” la muestra clase por clase, llegando finalmente a los 50 datos totales en la última clase.

  • La tercera línea es la frecuencia relativa acumulada (en proporción): confirma que el acumulado total llega exactamente a 1.00 (100%), lo que es una verificación clave de que los cálculos están correctos.

  • La cuarta línea es la misma información anterior pero expresada en porcentaje, y es la que efectivamente se usó para graficar las ojivas (absoluta, relativa y porcentual) mostradas anteriormente.

9.2 📉 Ojiva - frecuencia absoluta

p1 <- cumsum(fr_por_clase)
plot(p1, col = "#0C3B45")
lines(p1, col = "#0C3B45")

  • La curva es creciente, como corresponde a una ojiva: cada punto representa el número acumulado de personas hasta el final de esa clase (clase 1 a clase 7).

9.3 📊 Ojiva - frecuencia relativa

p2 <- cumsum(fr_relativos)
plot(p2, col = "#949AD8")
lines(p2, col = "#949AD8")

  • La curva va de 0.10 en la clase 1 hasta 1.00 en la clase 7, confirmando que el 100% de la muestra queda acumulado al final del rango de edades, tal como debe ocurrir en cualquier distribución de frecuencias relativas acumuladas.

  • Esta gráfica es matemáticamente idéntica en forma a la ojiva de frecuencias absolutas y a la porcentual — solo cambia la escala del eje Y (proporción de 0 a 1, en vez de conteo de personas o porcentaje de 0 a 100). Todas cuentan la misma historia: crecimiento fuerte al inicio, leve pausa a mitad de camino, y estabilización moderada hacia el final.

9.4 💯 Ojiva - frecuencia porcentual

p3 <- cumsum(fr_porcentuales)
plot(p3, col = "#488BA5")
lines(p3, col = "#488BA5")

  • La curva va de 10% en la clase 1 hasta 100% en la clase 7, confirmando que toda la muestra queda acumulada al finalizar el rango de edades.

  • Esta es exactamente la misma información que las dos ojivas anteriores (absoluta y relativa), solo que expresada en porcentaje — es la versión más intuitiva para comunicar resultados, ya que permite decir directamente frases como “el 74% de la muestra tiene 50.5 años o menos”.

9.5 🎯 Ojiva por valor

plot(ecdf(datos21), col = "#6059B8")

  • A diferencia de las ojivas anteriores (que usan 7 clases agrupadas), la ECDF muestra un escalón por cada una de las 50 personas de la muestra, dando una versión mucho más detallada y precisa de cómo se acumula la proporción de datos.

  • A diferencia de la ojiva (que suaviza la información en 7 tramos), la ECDF permite ver microvariaciones dentro de cada clase: por ejemplo, dentro del intervalo [19-28) se puede notar que los saltos no son perfectamente uniformes, hay años con más repeticiones que otros (como 21 y 23, que aparecen 2 veces cada uno).