library(readxl)
DATOS2026 <- read_excel("00. DATOS202460ULTIMOS25.xlsx")
DATOS2026
📊
<div class="hero-title">Mi curso de Estadística y Probabilidad - 2026</div>
<div class="hero-subtitle">Semana 7 · Clase N° 28 · Laboratorio 7 - Análisis de datos en R</div>

1 MI CURSO DE ESTADÍSTICA Y PROBABILIDAD - 2026

2 SEMANA 7. Mi página Web en Estadística

3 Clase N° 28. LABORATORIO 7 - ANÁLISIS DE DATOS EN R

3.1 (i) Datos

library(kableExtra)
library(readxl)

kable(DATOS2026, caption = paste("DATOS2026 -", autor)) |>
  kable_styling(bootstrap_options = c("striped", "hover"),
                full_width = FALSE,
                position = "center") |>
  row_spec(0, bold = TRUE, color = "white", background = "#3E7C6B")
DATOS2026 - Diego Alejandro Tous Aponte
CURSO ASISTENCIA2 ASISTENCIA1 PARCIAL 1 PARCIAL 2 NRC PROGRAMA EDAD PESO ESTATURA SEXO ESTADO_CIVIL ESTRATO URBANO TRANSPORTE GR_SANGUINEO
PROBABILIDAD 100 90 3.6 4.3 2314 F_NEGOCIOS 20 55 160 Femenino SOLTERO (A) II Cartagena Transcaribe O+
ESTADISTICAI 70 75 0.9 2.5 1136 DERECHO 18 80 185 Masculino SOLTERO (A) III Cartegena El bus que me deja mas cerca A+
PROBABILIDAD 85 95 3.9 3.8 2314 F_NEGOCIOS 19 60 158 Femenino SOLTERO (A) III Cartagena Transcaribe O+
PROBABILIDAD 5 5 2.9 0.5 2314 MECANICA 18 72 181 Masculino SOLTERO (A) V Bolivar Particular O+
ESTADISTICAI 20 70 3.7 0.55 1009 PSICOLOGÍA 19 45 163 Femenino SOLTERO (A) II Cartagena Mototaxi O+
ESTADISTICAI 100 100 0.9 2.95 2313 PSICOLOGÍA 20 64 169 Femenino SOLTERO (A) I Cartagena de Indias Transcaribe O+
PROBABILIDAD 50 75 3.7 1.7 1010 C_DATOS 18 50 157 Masculino SOLTERO (A) IV Cartagena Transcaribe A+
PROBABILIDAD 100 95 3 3.3 2314 F_NEGOCIOS 19 50 155 Femenino SOLTERO (A) III Cartagena de Indias Mototaxi A+
ESTADISTICAI 100 100 3.8 3.3 1009 PSICOLOGÍA 18 65 161 Femenino SOLTERO (A) III Bolívar Mototaxi O+
PROBABILIDAD 95 85 3 2.9 2314 SISTEMAS 22 60 161 Masculino SOLTERO (A) I pontezuela El bus que me deja mas cerca A+
ESTADISTICAI 100 100 2 3.3 1136 DERECHO 18 69 174 Masculino SOLTERO (A) I Cartagena Transcaribe O+
PROBABILIDAD 100 85 4.6 3.65 1137 BIOMEDICA 19 54 164 Femenino SOLTERO (A) II Cartagena de Indias Transcaribe O+
PROBABILIDAD 80 95 3.4 3.25 2314 INDUSTRIAL 17 60 153 Femenino SOLTERO (A) II Cartagena Transcaribe O+
PROBABILIDAD 90 90 4 3.8 1010 C_DATOS 17 71 170 Masculino SOLTERO (A) I Cartagena Transcaribe O+
PROBABILIDAD 100 90 3.6 4 2314 SISTEMAS 19 52 174 Masculino SOLTERO (A) IV Cartagena Transcaribe O+
ESTADISTICAI 70 85 1.4 2.6 1136 DERECHO 20 78 170 Masculino SOLTERO (A) IV CARTAGENA Taxi O+
PROBABILIDAD 90 95 4.2 4.15 2314 SISTEMAS 20 67 160 Masculino SOLTERO (A) III Cartagena Transcaribe B+
PROBABILIDAD 80 75 2.3 2.35 2314 ECONOMIA 19 65 172 Masculino SOLTERO (A) NA cartagena Mototaxi O+
PROBABILIDAD 85 95 4.4 4.6 2314 SISTEMAS 19 49 158 Femenino SOLTERO (A) I Cartagena Transcaribe O+
PROBABILIDAD 90 100 2.2 2.65 1010 F_NEGOCIOS 21 69 180 Masculino SOLTERO (A) V Cartagena Taxi O+
PROBABILIDAD 100 100 3.5 3.85 1010 MECATRONICA 18 77 175 Masculino SOLTERO (A) II Cartagena Transcaribe O+
PROBABILIDAD 100 95 2 4.35 2314 SISTEMAS 19 75 173 Masculino SOLTERO (A) I Cartagena Transcaribe O-
PROBABILIDAD 100 95 1.6 2.9 2314 SISTEMAS 19 59 166 Masculino SOLTERO (A) II Turbaco El bus que me deja mas cerca O+
PROBABILIDAD 100 95 3.9 4.25 2314 SISTEMAS 19 102 179 Masculino SOLTERO (A) II Turbaco El bus que me deja mas cerca O+
PROBABILIDAD 100 100 4.4 4.65 1010 MECANICA 18 70 178 Masculino SOLTERO (A) III cartagena Mototaxi O+
ESTADISTICAI 85 75 2.5 3.1 2313 PSICOLOGÍA 19 82 175 Masculino SOLTERO (A) II Bolivar Transcaribe A+
PROBABILIDAD 90 90 3 3.75 2314 SISTEMAS 20 88 175 Masculino SOLTERO (A) III Cartagena Transcaribe A+
ESTADISTICAI 100 100 3.6 3.65 2313 PSICOLOGÍA 17 67 169 Masculino SOLTERO (A) II Bolívar Mototaxi A+
PROBABILIDAD 90 65 3.2 1.8 1010 F_NEGOCIOS 22 73 180 Masculino SOLTERO (A) CON HIJOS IV Cartagena Mototaxi B+
PROBABILIDAD 100 85 4.2 4.1 1010 SISTEMAS 18 65 170 Masculino SOLTERO (A) I Bolivar Transcaribe B+
PROBABILIDAD 100 90 1.9 3.3 2314 F_NEGOCIOS 19 48 166 Femenino SOLTERO (A) III Turbaco Particular O+
ESTADISTICAI 80 60 2 2.9 1136 DERECHO 18 55 160 Femenino SOLTERO (A) IV Parque Heredia Taxi O+
PROBABILIDAD 100 95 4.8 3.7 1010 MECATRONICA 18 70 175 Masculino SOLTERO (A) I Zaragocilla El bus que me deja mas cerca A+
ESTADISTICAI 100 85 2.6 3 1136 PSICOLOGÍA 17 50 165 Masculino SOLTERO (A) III cartagena Transcaribe O+
PROBABILIDAD 100 80 2.7 3.75 2314 NAVAL 17 80 192 Masculino SOLTERO (A) II cartagena de indias , bolivar Particular O+
ESTADISTICAI 70 75 2.5 3.05 1136 DERECHO 18 62 164 Femenino SOLTERO (A) II Cartagena Transcaribe O+
ESTADISTICAI 100 65 1.8 2.25 1009 C_SOCIAL 21 62 167 Femenino SOLTERO (A) III Cartagena Transcaribe B+
ESTADISTICAI 90 100 3.3 2.95 1136 DERECHO 18 53 154 Femenino SOLTERO (A) III Cartagena de indias Mototaxi A+
PROBABILIDAD 90 90 1.8 3.7 2314 QUIMICA 18 55 167 Femenino SOLTERO (A) I El Carmen de Bolívar Mototaxi A+
PROBABILIDAD 90 75 3.5 3.75 1010 F_NEGOCIOS 18 67 173 Femenino SOLTERO (A) IV Cartagena Transcaribe B+
ESTADISTICAI 100 80 1 3.1 2313 PSICOLOGÍA 18 42 155 Femenino SOLTERO (A) I Barranco de loba Transcaribe A+
PROBABILIDAD 100 85 3.1 3.65 1010 F_NEGOCIOS 19 48 166 Femenino SOLTERO (A) II Cartagena Transcaribe O+
PROBABILIDAD 90 95 3.3 3.35 1010 F_NEGOCIOS 18 56 160 Femenino SOLTERO (A) V Cartagena Particular B+
PROBABILIDAD 70 75 2.8 3 1010 C_DATOS 17 70 163 Femenino SOLTERO (A) II Cartagena Mototaxi O+
ESTADISTICAI 80 85 2.9 3.1 1009 PSICOLOGÍA 18 65 174 Masculino CASADO (A) IV Bolivar Transcaribe O+
PROBABILIDAD 55 80 2.3 0.55 2314 F_NEGOCIOS 19 76 168 Femenino SOLTERO (A) I Pontezuela El bus que me deja mas cerca O+
PROBABILIDAD 90 100 3 3.3 1010 F_NEGOCIOS 18 50 158 Femenino SOLTERO (A) III Cartagena Taxi A+
PROBABILIDAD 90 100 2.6 2.85 1137 ELECTRICA 21 50 155 Femenino SOLTERO (A) II Turbaco/Bolivar El bus que me deja mas cerca A+
PROBABILIDAD 100 100 2.8 2.45 1137 BIOMEDICA 18 62 168 Femenino SOLTERO (A) III Bolívar Taxi O+
PROBABILIDAD 100 100 4 3.15 1010 INDUSTRIAL 19 58 164 Femenino SOLTERO (A) V Cartagena (barrio: pie de la popa) Transcaribe O+
ESTADISTICAI 90 85 1.5 3.45 1009 C_SOCIAL 18 50 178 Masculino SOLTERO (A) III Bolívar Transcaribe O+
ESTADISTICAI 90 90 2.4 3.3 1009 PSICOLOGÍA 21 65 164 Femenino SOLTERO (A) II Boquilla Transcaribe O+
ESTADISTICAI 100 100 2.9 3.1 1009 C_SOCIAL 18 57 164 Femenino SOLTERO (A) III San José de los campanos Particular O+
PROBABILIDAD 100 90 1.3 3.15 2314 INDUSTRIAL 19 53 175 Femenino SOLTERO (A) II bolivar Mototaxi O+
ESTADISTICAI 70 75 2.7 2.2 1136 DERECHO 17 78 180 Masculino SOLTERO (A) III Cartagena Transcaribe O+
PROBABILIDAD 100 100 4.2 3.85 1010 MECANICA 18 80 187 Masculino SOLTERO (A) II Cartagena Mototaxi O-
PROBABILIDAD 100 95 4.9 4.1 2314 SISTEMAS 19 64 172 Masculino SOLTERO (A) III Cartagena Transcaribe B+
PROBABILIDAD 100 100 4 4.4 1010 INDUSTRIAL 18 60 177 Femenino SOLTERO (A) II Turbaco Particular O+
ESTADISTICAI 100 80 1.6 3.3 1009 C_SOCIAL 19 72 169 Femenino SOLTERO (A) II Turbaco Particular A+
ESTADISTICAI 80 85 2.8 2.55 1136 DERECHO 18 60 159 Femenino SOLTERO (A) II Cartagena Transcaribe A+
PROBABILIDAD 75 75 3.3 2.5 2314 CIVIL 18 55 165 Masculino SOLTERO (A) II Cartagena Transcaribe O+
ESTADISTICAI 60 90 1.9 0.6 1009 C_SOCIAL 20 90 186 Masculino SOLTERO (A) IV Bolibar Cartagena Transcaribe O+
PROBABILIDAD 100 65 2.6 3.15 1137 MECANICA 18 63 170 Masculino SOLTERO (A) I Cartagena Transcaribe A+
PROBABILIDAD 90 45 4 3.4 1010 F_NEGOCIOS 18 61 163 Femenino SOLTERO (A) V Cartagena Particular A+
PROBABILIDAD 85 95 2.3 2.8 2314 F_NEGOCIOS 18 70 172 Femenino SOLTERO (A) II Arjona El bus que me deja mas cerca O+
ESTADISTICAI 90 90 2 3.1 1136 DERECHO 19 48 167 Femenino SOLTERO (A) IV Cartagena Particular O+
PROBABILIDAD 100 90 3.1 3.25 1010 F_NEGOCIOS 19 57 154 Femenino SOLTERO (A) II Bolivar Transcaribe O+
PROBABILIDAD 100 95 1.5 2.95 1137 CONTADURIA 18 60 170 Femenino SOLTERO (A) II Turbaco El bus que me deja mas cerca O+
PROBABILIDAD 90 100 1.3 3.5 1010 ELECTRICA 22 70 163 Femenino SOLTERO (A) I Turbaco Mototaxi O+
PROBABILIDAD 90 90 2.3 2.1 2314 F_NEGOCIOS 18 59 176 Femenino SOLTERO (A) IV Bolivar Transcaribe B+
PROBABILIDAD 85 95 2 3.1 2314 F_NEGOCIOS 18 60 171 Femenino SOLTERO (A) II Cartagena Transcaribe O+
ESTADISTICAI 65 75 1.7 2.95 1136 DERECHO 20 55 164 Femenino SOLTERO (A) III Cartagena Mototaxi A+
ESTADISTICAI 100 100 2.3 3.2 2313 PSICOLOGÍA 19 67 171 Femenino SOLTERO (A) I El rodeo Mototaxi A+
ESTADISTICAI 100 100 3.8 3.1 1136 DERECHO 18 60 165 Femenino SOLTERO (A) I Villa de la cruz El bus que me deja mas cerca A+

3.2 (2i) Usando la aplicación para hacer la tabla

table_sexo <- table(DATOS2026$SEXO)
table_sexo

 Femenino Masculino 
       42        32 

3.3 (3i) Gráfico de torta para SEXO

porc <- round(prop.table(table_sexo) * 100, 1)
etiquetas <- paste0(names(table_sexo), "\n", table_sexo, " (", porc, "%)")

pie(
  table_sexo,
  col = paleta2,
  labels = etiquetas,
  border = "white",
  lwd = 3,
  radius = 0.95,
  clockwise = TRUE,
  init.angle = 90,
  cex = 1.1,
  main = paste("Estudio de Pastel.\nDistribución por sexos -", autor),
  col.main = "#2c3e50"
)

3.4 (4i) Construimos el diagrama de barras y el diagrama de Pastel para esta variable cualitativa

barp <- barplot(table_sexo,
                col = paleta2,
                border = "white",
                main = paste("Gráfico de Barras -", autor),
                sub = "UTB",
                xlab = "SEXO",
                ylab = "Conteo",
                ylim = c(0, max(table_sexo) * 1.2),
                las = 1)

text(barp, table_sexo, labels = table_sexo,
     pos = 3, cex = 1.2, font = 2)

3.5 (5i) Usando la aplicación para hacer la tabla porcentual redondeando al entero más cercano

table_sexo2 <- round(table(DATOS2026$SEXO) / sum(table_sexo) * 100)
table_sexo2

 Femenino Masculino 
       57        43 

3.6 (6i) Construimos el diagrama de barras % y de pastel para esta variable cualitativa

barp2 <- barplot(table_sexo2,
                 col = paleta2,
                 border = "white",
                 main = paste("Gráfico de Barras -", autor),
                 sub = "UTB",
                 xlab = "SEXO",
                 ylab = "Porcentaje",
                 ylim = c(0, max(table_sexo2) * 1.2),
                 las = 1)

text(barp2, table_sexo2, labels = paste0(table_sexo2, "%"),
     pos = 3, cex = 1.2, font = 2)

3.7 (7i) Las tablas de frecuencias y las representaciones gráficas son dos maneras equivalentes de presentar la información

pie(table_sexo2,
    col = paleta2,
    labels = paste0(names(table_sexo2), "\n", table_sexo2, "%"),
    border = "white",
    lwd = 3,
    clockwise = TRUE,
    init.angle = 90,
    main = paste("Estudio de Pastel.\nDistribución por sexos -", autor))

3.8 (8i) Usando la aplicación para hacer la tabla con dos variables SEXO y CURSO

table_3 <- table(DATOS2026$SEXO, DATOS2026$CURSO)
table_3
           
            ESTADISTICAI PROBABILIDAD
  Femenino            16           26
  Masculino           10           22

3.9 (9i) Usando la aplicación para hacer el gráfico con dos variables SEXO y CURSO

barp3 <- barplot(table_3, beside = TRUE,
                 col = paleta2, border = "white",
                 main = paste("Gráfico de barras CURSO vs SEXO -", autor),
                 xlab = "CURSO", ylab = "Frecuencia",
                 ylim = c(0, max(table_3) * 1.25), las = 1,
                 legend.text = rownames(table_3),
                 args.legend = list(x = "topright", bty = "n", border = "white"))
text(barp3, table_3, labels = table_3, pos = 3, cex = 1.1, font = 2)

3.10 (10i) Usando la aplicación para hacer la tabla con dos variables SEXO y CURSO pero usando las frecuencias relativas aproximadas

table_4 <- round(table(DATOS2026$SEXO, DATOS2026$CURSO) / sum(table_3) * 100)
table_4
           
            ESTADISTICAI PROBABILIDAD
  Femenino            22           35
  Masculino           14           30

3.11 (11i) Usando la aplicación para hacer el gráfico con dos variables SEXO y CURSO pero usando las frecuencias relativas aproximadas

barp4 <- barplot(table_4, beside = TRUE,
                 col = paleta2, border = "white",
                 main = paste("Gráfico de barras CURSO vs SEXO en porcentajes -", autor),
                 xlab = "CURSO", ylab = "Porcentaje",
                 ylim = c(0, max(table_4) * 1.25), las = 1,
                 legend.text = rownames(table_4),
                 args.legend = list(x = "topright", bty = "n", border = "white"))
text(barp4, table_4, labels = paste0(table_4, "%"), pos = 3, cex = 1.1, font = 2)

3.12 (12i) Usando la aplicación para hacer la tabla con dos variables ESTRATO y CURSO

table_5 <- table(DATOS2026$ESTRATO, DATOS2026$CURSO)
table_5
     
      ESTADISTICAI PROBABILIDAD
  I              5           10
  II             7           18
  III            9            9
  IV             5            5
  V              0            5

3.13 (13i) Usando la aplicación para hacer el gráfico con dos variables ESTRATO y CURSO

barp5 <- barplot(table_5, beside = TRUE,
                 col = paleta5[1:nrow(table_5)], border = "white",
                 main = paste("Gráfico de barras CURSO vs ESTRATO -", autor),
                 xlab = "CURSO", ylab = "Frecuencia",
                 ylim = c(0, max(table_5) * 1.25), las = 1,
                 legend.text = rownames(table_5),
                 args.legend = list(x = "topright", bty = "n", title = "ESTRATO"))
text(barp5, table_5, labels = table_5, pos = 3, cex = 0.9, font = 2)

3.14 (14i) Usando la aplicación para hacer la tabla con dos variables ESTRATO y SEXO

table_6 <- table(DATOS2026$ESTRATO, DATOS2026$SEXO)
table_6
     
      Femenino Masculino
  I          8         7
  II        17         8
  III       10         8
  IV         4         6
  V          3         2

3.15 (15i) Usando la aplicación para hacer el gráfico con dos variables ESTRATO y SEXO

barp6 <- barplot(table_6, beside = TRUE,
                 col = paleta5[1:nrow(table_6)], border = "white",
                 main = paste("Gráfico de barras SEXO vs ESTRATO -", autor),
                 xlab = "SEXO", ylab = "Frecuencia",
                 ylim = c(0, max(table_6) * 1.25), las = 1,
                 legend.text = rownames(table_6),
                 args.legend = list(x = "topright", bty = "n", title = "ESTRATO"))
text(barp6, table_6, labels = table_6, pos = 3, cex = 0.9, font = 2)

3.16 (16i) Tabla de Frecuencias Usando el paquete summarytools: observamos ya una tabla más completa

library(summarytools)
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(DATOS2026$EDAD)
Frequencies  
DATOS2026$EDAD  
Type: Numeric  

              Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
----------- ------ --------- -------------- --------- --------------
         17      7      9.46           9.46      9.46           9.46
         18     32     43.24          52.70     43.24          52.70
         19     21     28.38          81.08     28.38          81.08
         20      7      9.46          90.54      9.46          90.54
         21      4      5.41          95.95      5.41          95.95
         22      3      4.05         100.00      4.05         100.00
       <NA>      0                               0.00         100.00
      Total     74    100.00         100.00    100.00         100.00

3.17 (17i) Tabla de Frecuencias Usando el paquete summarytools: observamos ya una tabla más completa

summary(DATOS2026$EDAD)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   17.0    18.0    18.0    18.7    19.0    22.0 

3.18 (18i) Una primera vista del diagrama de caja para la variable Edad

boxplot(DATOS2026$EDAD, horizontal = TRUE, col = paleta2[2], border = "#2c3e50",
        main = paste("Diagrama de caja - EDAD -", autor), xlab = "EDAD", boxwex = 0.6)

3.19 (19i) Identificamos dónde queda la mediana

boxplot(DATOS2026$EDAD, notch = TRUE, horizontal = TRUE,
        col = paleta2[2], border = "#2c3e50",
        main = paste("Diagrama de caja con muesca - EDAD -", autor),
        xlab = "EDAD", boxwex = 0.6)
Warning in (function (z, notch = FALSE, width = NULL, varwidth = FALSE, : some
notches went outside hinges ('box'): maybe set notch=FALSE

3.20 (20i) EDAD vs SEXO

boxplot(EDAD ~ SEXO, data = DATOS2026, horizontal = TRUE,
        col = paleta2, border = "#2c3e50",
        main = paste("EDAD vs SEXO -", autor), xlab = "EDAD", ylab = "", las = 1)

3.21 (21i) EDAD vs ESTRATO

n_est <- length(unique(DATOS2026$ESTRATO))
boxplot(EDAD ~ ESTRATO, data = DATOS2026, horizontal = TRUE,
        col = paleta5[1:n_est], border = "#2c3e50",
        main = paste("EDAD vs ESTRATO -", autor), xlab = "EDAD", ylab = "ESTRATO", las = 1)

3.22 (22i) EDAD vs ESTRATO vs SEXO

library(ggplot2)
ggplot(DATOS2026, aes(x = ESTRATO, y = EDAD, fill = SEXO)) +
  geom_boxplot(color = "#2c3e50", alpha = 0.9) +
  scale_fill_manual(values = c("Femenino" = paleta2[1], "Masculino" = paleta2[2])) +
  scale_x_discrete(labels = abbreviate, name = "ESTRATO") +
  scale_y_continuous(name = "EDAD") +
  labs(title = paste("EDAD vs ESTRATO vs SEXO -", autor)) +
  theme_minimal(base_size = 13) +
  theme(plot.title = element_text(face = "bold", color = "#2c3e50", hjust = 0.5),
        legend.position = "top")

3.23 (23i) Estudiemos la variable ESTATURA y obtengamos sus seis medidas representativas

summary(DATOS2026$ESTATURA)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  153.0   163.0   168.0   168.4   174.0   192.0 

3.24 (24i) Una primera vista del diagrama de caja para la variable ESTATURA

boxplot(DATOS2026$ESTATURA, horizontal = TRUE, col = paleta2[2], border = "#2c3e50",
        main = paste("Diagrama de caja - ESTATURA -", autor), xlab = "ESTATURA", boxwex = 0.6)

3.25 (25i) Identificamos dónde queda la mediana

boxplot(DATOS2026$ESTATURA, notch = TRUE, horizontal = TRUE,
        col = paleta2[2], border = "#2c3e50",
        main = paste("Diagrama de caja con muesca - ESTATURA -", autor),
        xlab = "ESTATURA", boxwex = 0.6)

3.26 (26i) ESTATURA vs SEXO

boxplot(ESTATURA ~ SEXO, data = DATOS2026, horizontal = TRUE,
        col = paleta2, border = "#2c3e50",
        main = paste("ESTATURA vs SEXO -", autor), xlab = "ESTATURA", ylab = "", las = 1)

3.27 (27i) ESTATURA vs ESTRATO

n_est <- length(unique(DATOS2026$ESTRATO))
boxplot(ESTATURA ~ ESTRATO, data = DATOS2026, horizontal = TRUE,
        col = paleta5[1:n_est], border = "#2c3e50",
        main = paste("ESTATURA vs ESTRATO -", autor), xlab = "ESTATURA", ylab = "ESTRATO", las = 1)

3.28 (28i) ESTATURA vs ESTRATO vs SEXO

library(ggplot2)
ggplot(DATOS2026, aes(x = ESTRATO, y = ESTATURA, fill = SEXO)) +
  geom_boxplot(color = "#2c3e50", alpha = 0.9) +
  scale_fill_manual(values = c("Femenino" = paleta2[1], "Masculino" = paleta2[2])) +
  scale_x_discrete(labels = abbreviate, name = "ESTRATO") +
  scale_y_continuous(name = "ESTATURA") +
  labs(title = paste("ESTATURA vs ESTRATO vs SEXO -", autor)) +
  theme_minimal(base_size = 13) +
  theme(plot.title = element_text(face = "bold", color = "#2c3e50", hjust = 0.5),
        legend.position = "top")

3.29 (29i) Histograma y tabla de frecuencias usando Regla de Sturges

3.29.0.0.1 Usando la librería “agricolae”
library(agricolae)
h2 <- graph.freq(DATOS2026$EDAD, col = paleta2[2], border = "white",
                 main = paste("Histograma de EDAD (Regla de Sturges) -", autor),
                 xlab = "EDAD", ylab = "Frecuencia")

3.30 (30i) Tabla de frecuencias agrupadas Regla de Sturges

3.30.0.0.1 Usando la librería “agricolae”
summary(h2)

3.31 (31i) Polígono de frecuencia absolutas

3.31.0.0.0.1 frequency : counts (1) and relative (2)
plot(h2, col = paleta2[2], border = "white", frequency = 1,
     main = paste("Polígono de frecuencias absolutas -", autor),
     xlab = "EDAD", ylab = "Frecuencia")
polygon.freq(h2, col = paleta2[1], frequency = 1, lwd = 2)

3.32 (32i) Polígono de frecuencia relativas

3.32.0.0.0.1 frequency : counts (1) and relative (2)
plot(h2, col = paleta2[2], border = "white", frequency = 2,
     main = paste("Polígono de frecuencias relativas -", autor),
     xlab = "EDAD", ylab = "Frecuencia relativa")
polygon.freq(h2, col = paleta2[1], frequency = 2, lwd = 2)

3.33 (33i) Ojivas - usando R

fr_por_clase2 <- h2$counts
fr_por_clase2
[1]  7 32 21  0  7  4  0  3
total_n2 <- sum(h2$counts)
total_n2
[1] 74
fr_relativos2 <- fr_por_clase2 / total_n2
fr_porcentuales2 <- 100 * fr_relativos2
fr_porcentuales2
[1]  9.459459 43.243243 28.378378  0.000000  9.459459  5.405405  0.000000
[8]  4.054054
cumsum(fr_por_clase2)
[1]  7 39 60 60 67 71 71 74
cumsum(fr_relativos2)
[1] 0.09459459 0.52702703 0.81081081 0.81081081 0.90540541 0.95945946 0.95945946
[8] 1.00000000
cumsum(fr_porcentuales2)
[1]   9.459459  52.702703  81.081081  81.081081  90.540541  95.945946  95.945946
[8] 100.000000

3.34 (34i) Ojivas - frecuencias porcentuales

p4 <- cumsum(fr_porcentuales2)
plot(h2$breaks, c(0, p4), type = "b", pch = 19,
     col = paleta2[1], lwd = 2, las = 1, ylim = c(0, 100),
     main = paste("Ojiva de frecuencias porcentuales acumuladas -", autor),
     xlab = "EDAD", ylab = "Porcentaje acumulado (%)")
grid(col = "gray85", lty = "dotted")