Objetivo del informe. A partir de las edades de 50 personas se construye la tabla de frecuencias agrupadas mediante la Regla de Sturges y se representan gráficamente: histograma, polígono de frecuencias, histograma de frecuencias acumuladas y ojivas (absoluta, relativa y porcentual). Cada gráfico va acompañado de su propósito general y de la lectura concreta para estos datos.

1 Datos

tabla_9A <- 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)
tabla_9A
##  [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

2 Análisis preliminar

2.1 Tabla de frecuencias individuales

tabla_9 <- freq(tabla_9A)
tabla_9
## Frequencies  
## tabla_9A  
## Type: Numeric  
## 
##               Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
##          10      1      2.00           2.00      2.00           2.00
##          12      2      4.00           6.00      4.00           6.00
##          14      1      2.00           8.00      2.00           8.00
##          15      1      2.00          10.00      2.00          10.00
##          19      1      2.00          12.00      2.00          12.00
##          20      1      2.00          14.00      2.00          14.00
##          21      2      4.00          18.00      4.00          18.00
##          23      1      2.00          20.00      2.00          20.00
##          24      2      4.00          24.00      4.00          24.00
##          25      2      4.00          28.00      4.00          28.00
##          27      2      4.00          32.00      4.00          32.00
##          28      1      2.00          34.00      2.00          34.00
##          30      2      4.00          38.00      4.00          38.00
##          32      1      2.00          40.00      2.00          40.00
##          33      1      2.00          42.00      2.00          42.00
##          34      1      2.00          44.00      2.00          44.00
##          35      2      4.00          48.00      4.00          48.00
##          37      1      2.00          50.00      2.00          50.00
##          38      2      4.00          54.00      4.00          54.00
##          40      1      2.00          56.00      2.00          56.00
##          42      1      2.00          58.00      2.00          58.00
##          46      2      4.00          62.00      4.00          62.00
##          47      2      4.00          66.00      4.00          66.00
##          48      2      4.00          70.00      4.00          70.00
##          50      1      2.00          72.00      2.00          72.00
##          54      1      2.00          74.00      2.00          74.00
##          56      1      2.00          76.00      2.00          76.00
##          58      1      2.00          78.00      2.00          78.00
##          59      2      4.00          82.00      4.00          82.00
##          61      1      2.00          84.00      2.00          84.00
##          62      1      2.00          86.00      2.00          86.00
##          65      2      4.00          90.00      4.00          90.00
##          66      1      2.00          92.00      2.00          92.00
##          68      1      2.00          94.00      2.00          94.00
##          70      1      2.00          96.00      2.00          96.00
##          72      1      2.00          98.00      2.00          98.00
##          73      1      2.00         100.00      2.00         100.00
##        <NA>      0                               0.00         100.00
##       Total     50    100.00         100.00    100.00         100.00

Muestra cuántas veces se repite cada valor exacto de la variable. Es el punto de partida antes de agrupar: permite detectar valores repetidos, datos atípicos o errores de digitación.

Al tratarse de una variable con muchos valores distintos (edades entre 10 y 73), la tabla individual resulta muy extensa y poco informativa: la mayoría de edades aparece solo una o dos veces. Esto justifica pasar a una tabla agrupada por intervalos.

2.2 Medidas de resumen

summary(tabla_9A)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   10.00   25.00   37.50   39.82   55.50   73.00

Resume la distribución en cinco números: mínimo, cuartiles, mediana, media y máximo. Da una primera idea del centro y la dispersión sin necesidad de graficar.

La media (39.82) y la mediana (37.5) son muy cercanas, lo que indica una distribución aproximadamente simétrica, sin valores extremos que desplacen el promedio. El 50 % central de las edades se ubica entre 25 y 55.5 años.

2.3 Regla de Sturges

n <- length(tabla_9A)
k <- 1 + 3.322 * log10(n)           # número de clases
R <- max(tabla_9A) - min(tabla_9A)  # rango
W <- R / round(k)                   # ancho de clase

data.frame(
  n = n,
  k_calculado = round(k, 2),
  k_usado = round(k),
  Rango = R,
  Ancho_clase = round(W, 2)
)

Determina cuántos intervalos conviene usar al agrupar. Muy pocas clases ocultan la forma de la distribución; demasiadas la vuelven irregular y difícil de leer.

Con 50 datos, la regla arroja 6.64 ≈ 7 clases. Como el rango es 63 años, cada clase tendrá un ancho aproximado de 9 años.

3 Distribución de frecuencias

3.1 Histograma

h <- graph.freq(tabla_9A, col = "#a8cdd4", border = "white",
                xlab = "Edad (años)", ylab = "Frecuencia",
                main = "Distribución de edades (Regla de Sturges)")

Representa la forma de la distribución: dónde se acumulan los datos, si hay uno o varios picos, y si es simétrica o sesgada. Las barras contiguas reflejan que la variable es continua.

La clase más numerosa es [19 – 28), con 11 personas (22 % del total). El resto de intervalos tiene frecuencias parecidas entre 5 y 8, por lo que la distribución es bastante plana, sin una concentración marcada en el centro: las edades están repartidas a lo largo de casi todo el rango.

3.2 Tabla de frecuencias agrupadas

summary(h)

Condensa los datos en clases con su marca de clase, frecuencia absoluta, relativa y acumulada. Es la base numérica de todos los gráficos siguientes.

Las siete clases cubren desde 10 hasta 73 años. La columna de frecuencia acumulada permite responder de inmediato preguntas del tipo “¿cuántas personas tienen menos de 46 años?” — en este caso, 29 de las 50.

3.3 Diagrama de caja y bigotes

boxplot(tabla_9A, horizontal = TRUE, col = "#a8cdd4", border = azul,
        xlab = "Edad (años)",
        main = "Diagrama de caja y bigotes")

Resume posición, dispersión y simetría en un solo gráfico, y es la herramienta estándar para detectar valores atípicos (puntos fuera de los bigotes).

La mediana aparece prácticamente centrada dentro de la caja y los bigotes tienen longitud similar, lo que confirma la simetría sugerida por el resumen numérico. No se observan valores atípicos: todas las edades quedan dentro del rango esperado.

4 Polígono de frecuencias

4.1 Construcción manual

x <- c(14.5, 23.5, 32.5, 41.5, 50.5, 59.5, 68.5)   # marcas de clase
y <- c(5, 11, 8, 5, 8, 6, 7)                        # frecuencias absolutas

plot(x, y, type = "p", pch = 19, col = azul, cex = 1.3,
     xlab = "Marca de clase (edad)", ylab = expression(f[i]),
     main = "Polígono de frecuencias (construcción manual)",
     xaxt = "n", yaxt = "n")
axis(side = 1, x)
axis(side = 2, y, las = 2)
lines(x, y, col = teal, lwd = 2)
grid(col = "#e8eef0")

Une las marcas de clase con segmentos para mostrar la tendencia de la distribución como una línea continua. Facilita comparar varias distribuciones superpuestas, algo que con barras resulta confuso.

La línea muestra un pico claro en la marca 23.5 (clase [19 – 28)), un descenso hasta 41.5 y luego un comportamiento oscilante sin tendencia definida. Esto refuerza que no hay una única concentración de edades, sino varios grupos etarios con presencia similar.

4.2 Sobre el histograma — frecuencias absolutas

plot(h, col = "#d6e6ea", border = "white", frequency = 1,
     xlab = "Edad (años)", ylab = "Frecuencia",
     main = "Histograma y polígono de frecuencias absolutas")
polygon.freq(h, col = ambar, frequency = 1, lwd = 2.5)

Superponer el polígono al histograma permite ver a la vez el conteo por clase (barras) y la tendencia general (línea), sin perder ninguna de las dos lecturas.

El polígono confirma visualmente el pico en la segunda clase y evidencia que la caída posterior no es sostenida: alrededor de los 46–55 años la frecuencia vuelve a subir.

4.3 Sobre el histograma — frecuencias relativas

plot(h, col = "#d6e6ea", border = "white", frequency = 2,
     xlab = "Edad (años)", ylab = "Frecuencia relativa (%)",
     main = "Histograma y polígono de frecuencias relativas")
polygon.freq(h, col = ambar, frequency = 2, lwd = 2.5)

Idéntico al anterior, pero expresado en porcentajes en lugar de conteos. Es la versión que permite comparar este grupo con otro de tamaño distinto.

La forma es exactamente la misma; solo cambia la escala del eje vertical. La clase dominante concentra el 22 % de las personas, y ninguna clase baja del 10 %.

5 Frecuencias acumuladas y ojivas

5.1 Estructura del objeto h

names(h)
## [1] "breaks"   "counts"   "mids"     "relative" "density"

Permite conocer qué información guarda internamente el objeto creado por graph.freq(), para extraer después las frecuencias sin recalcularlas a mano.

5.2 Histograma de frecuencias acumuladas

tabla_freq <- table.freq(h)
tabla_freq
barplot(tabla_freq$CF, names.arg = round(tabla_freq$Upper, 1),
        col = "#8fc0c8", border = "white",
        xlab = "Edad (años)", ylab = "Frecuencia acumulada",
        main = "Histograma de frecuencias acumuladas")
grid(nx = NA, ny = NULL, col = "#e8eef0")

Cada barra indica cuántas observaciones hay hasta ese límite de clase. Sirve para responder preguntas de tipo “¿cuántos casos hay por debajo de cierto valor?”.

Las barras crecen de forma sostenida de 5 hasta 50, sin saltos bruscos, lo que indica que ninguna clase domina la distribución. A los 46 años ya se ha acumulado el 58 % de las personas.

5.3 Ojiva manual (frecuencia porcentual)

x2 <- c(14.5, 23.5, 32.5, 41.5, 50.5, 59.5, 68.5)
y2 <- c(10, 32, 48, 58, 74, 86, 100)

plot(x2, y2, type = "b", pch = 19, col = azul, lwd = 2, cex = 1.2,
     xlab = "Marca de clase (edad)", ylab = "Frecuencia acumulada (%)",
     main = "Ojiva porcentual con lectura de percentil")
segments(50.5, -14.5, 50.5, 74, lty = 2, col = ambar, lwd = 2)
segments(0, 74, 50.5, 74, lty = 2, col = ambar, lwd = 2)
grid(col = "#e8eef0")

La ojiva convierte la tabla acumulada en una curva creciente. Su utilidad principal es leer percentiles gráficamente: se entra por un eje y se sale por el otro.

Las líneas punteadas muestran la lectura: a la edad 50.5 años corresponde un acumulado del 74 %. Es decir, aproximadamente 3 de cada 4 personas del grupo tienen 50 años o menos.

5.4 Cálculos de las ojivas

fr_por_clase    <- tabla_freq$Frequency
total_n         <- sum(fr_por_clase)
fr_relativos    <- fr_por_clase / total_n
fr_porcentuales <- 100 * fr_relativos

data.frame(
  Clase           = round(tabla_freq$Upper, 1),
  Frecuencia      = fr_por_clase,
  Frec_relativa   = round(fr_relativos, 2),
  Frec_porcentual = round(fr_porcentuales, 1),
  Acumulada       = cumsum(fr_por_clase),
  Acum_relativa   = round(cumsum(fr_relativos), 2),
  Acum_porcentual = round(cumsum(fr_porcentuales), 1)
)

Reúne en una sola tabla las tres escalas de la frecuencia acumulada (absoluta, relativa y porcentual) que alimentan las tres ojivas siguientes.

Las tres columnas acumuladas terminan, respectivamente, en 50, 1.00 y 100 %: esa es la comprobación de que todos los datos fueron clasificados y ninguno quedó fuera de las clases.

5.5 Ojiva de frecuencias absolutas

p1 <- cumsum(fr_por_clase)
plot(p1, type = "b", pch = 19, col = azul, lwd = 2, cex = 1.2,
     xlab = "Número de clase", ylab = "Frecuencia acumulada",
     main = "Ojiva - frecuencias absolutas")
text(seq_along(p1), p1, labels = p1, pos = 3, cex = 0.85, col = azul)
grid(col = "#e8eef0")

Muestra el conteo acumulado de observaciones clase a clase. Es la escala natural cuando interesa el número de casos, no su proporción.

La curva asciende de 5 a 50 de manera casi lineal. El tramo más inclinado ocurre entre la primera y la segunda clase (de 5 a 16), reflejando que ahí se incorporó la clase más numerosa.

5.6 Ojiva de frecuencias relativas

p2 <- cumsum(fr_relativos)
plot(p2, type = "b", pch = 19, col = teal, lwd = 2, cex = 1.2,
     xlab = "Número de clase", ylab = "Frecuencia relativa acumulada",
     main = "Ojiva - frecuencias relativas")
text(seq_along(p2), p2, labels = round(p2, 2), pos = 3, cex = 0.85, col = teal)
grid(col = "#e8eef0")

Expresa lo mismo en proporciones de 0 a 1. Al no depender del tamaño de la muestra, permite comparar esta distribución con cualquier otra.

La curva termina exactamente en 1.00. En la clase 4 el acumulado es 0.58, es decir, algo más de la mitad del grupo ya quedó incluido antes de los 46 años.

5.7 Ojiva de frecuencias porcentuales

p3 <- cumsum(fr_porcentuales)
plot(p3, type = "b", pch = 19, col = ambar, lwd = 2, cex = 1.2,
     xlab = "Número de clase", ylab = "Frecuencia acumulada (%)",
     main = "Ojiva - frecuencias porcentuales")
text(seq_along(p3), p3, labels = round(p3), pos = 3, cex = 0.85, col = "#b8741f")
grid(col = "#e8eef0")

La versión en porcentaje es la más usada para leer percentiles y cuartiles directamente sobre el eje vertical.

El 25 % se alcanza dentro de la segunda clase y el 75 % dentro de la quinta: los cuartiles quedan, por tanto, en los intervalos [19 – 28) y [46 – 55), coherente con los cuartiles exactos obtenidos en el resumen numérico.

5.8 Función de distribución empírica (ECDF)

plot(ecdf(tabla_9A), col = teal, lwd = 2,
     xlab = "Edad (años)", ylab = "F(x)",
     main = "Función de distribución empírica")
grid(col = "#e8eef0")

Es la ojiva llevada al extremo: en lugar de trabajar por clases, acumula dato a dato, sin pérdida de información por agrupamiento. Por eso tiene forma de escalera, con un escalón por cada valor observado.

La escalera sube de manera uniforme entre los 10 y los 73 años, sin tramos planos largos. Esto significa que no hay huecos importantes en el rango de edades: prácticamente todos los tramos etarios están representados en el grupo.