#base de datos original
df_11th <- read_excel("df_11th.xlsx")
#se convierte en factor
df_11th$Cambridge <- as.factor(df_11th$Cambridge) #pob cambridge
df_11th$Nova <- as.factor(df_11th$Nova) #pob NOVA
#se agrega el porcentaje de asistencia a los datos
df_11th <- df_11th |>
mutate(porc_asist = (Asistencia/9)*100) #porcentaje de asistencia
#se estandaraizan los datos numericos
df11_est <- df_11th |>
mutate(across(where(is.numeric), ~ as.numeric(scale(.x))))
Resumen descriptivo de los estudiantes.
| Énfasis | Total | Porcentaje |
|---|---|---|
| Arte | 22 | 29.3 % |
| Ciencias | 15 | 20 % |
| Humanidades | 18 | 24 % |
| Matemáticas | 20 | 26.7 % |
Esta variable categoriza a los estudiantes en cuatro grupos según los exámenes Cambridge que hayan presentado. Las categorias son:
Los estudiantes se encuentran distribuidos de la siguiente manera:
Dentro de grado 11 hay 5 estudiantes hacen parte del programa NOVA en diferentes asignaturas. A continuación se muestran los nombres de estos estudiantes, así como tu categorización dentro de la población Cambridge.
| Nombre del Estudiante | Categoría Cambridge |
|---|---|
| Cormane Nicole | 3 |
| Noguera Amanda | 3 |
| Pertuz Samuel | 3 |
| Tovar Santiago | 3 |
| Visbal David | 3 |
| Diagnóstico | Total | Porcentaje |
|---|---|---|
| No | 66 | 88 % |
| Si | 9 | 12 % |
| Simulacro | N | Media | Desv. Est. | Mediana | Minimo | Maximo |
|---|---|---|---|---|---|---|
| Simulacro 1 (Global) | 75 | 293.7 | 58.4 | 299.0 | 147 | 424 |
| Simulacro 2 (Global) | 74 | 314.7 | 58.7 | 316.5 | 162 | 434 |
| Simulacro 3 (Global) | 74 | 311.7 | 57.6 | 313.5 | 135 | 459 |
| N | Media | Desv. Est. | Mediana | Mínimo | Máximo | |
|---|---|---|---|---|---|---|
| Percentil Global Prueba | 72 | 64.2 | 22.9 | 66.5 | 5 | 100 |
| Percentil Lectura Crítica | 72 | 59.9 | 26.1 | 64.5 | 1 | 100 |
| Percentil Matemáticas | 72 | 69.1 | 24.1 | 73.5 | 2 | 100 |
| Percentil Sociales y Ciu. | 72 | 56.1 | 26.3 | 58.0 | 1 | 98 |
| Percentil Ciencias Naturales | 72 | 59.2 | 24.4 | 61.5 | 3 | 100 |
| Percentil Inglés | 72 | 84.2 | 14.1 | 88.5 | 40 | 100 |
A partir del diagrama de radar presentado, se pueden identificar las principales fortalezas y áreas de mejora en el desempeño de la población evaluada.
Se observa un rendimiento sobresaliente en el área de Inglés, lo cual posiciona a este componente como el eje más fuerte del grupo. En contraste, el área de Sociales registra el promedio más bajo, evidenciando la necesidad de implementar estrategias de refuerzo pedagógico focalizadas.
Las áreas de Matemáticas, Naturales y Lectura muestran un comportamiento intermedio y homogéneo, manteniéndose en un rango estable cercano al promedio general de la prueba.
library(dplyr)
library(fmsb)
# 1. CALCULAR LOS PROMEDIOS DESDE TU DATA FRAME ORIGINAL
# Usamos summarise para calcular la media de cada área eliminando los NA
promedios_calculados <- df_11th %>%
summarise(
Matemáticas = mean(Mat_PS, na.rm = TRUE),
Inglés = mean(Ing_PS, na.rm = TRUE),
Naturales = mean(Nat_PS, na.rm = TRUE),
Sociales = mean(Soc_PS, na.rm = TRUE),
Lectura = mean(Lect_PS, na.rm = TRUE)
)
# 2. DEFINIR LOS LÍMITES MÁXIMOS Y MÍNIMOS DE LA ESCALA (0 a 100)
# Las columnas deben llamarse EXACTAMENTE igual que arriba
limites_escala <- data.frame(
Matemáticas = c(100, 1),
Inglés = c(100, 1),
Naturales = c(100, 1),
Sociales = c(100, 1),
Lectura = c(100, 1)
)
df_radar_final <- rbind(limites_escala, promedios_calculados)
# 4. GENERAR EL DIAGRAMA DE ARAÑA ESTILIZADO
par(mar = c(2, 2, 4, 2)) # Ajuste de márgenes para que no se corten los textos
radarchart(
df_radar_final,
axistype = 1, # Muestra la escala numérica en el eje superior
# --- Configuración de la Red ---
cglcol = "grey80", # Color de las líneas de la cuadrícula
cglty = 1, # Líneas continuas para la red
cglwd = 1, # Grosor de la red
axislabcol = "grey50", # Color de los números de la escala
caxislabels = seq(0, 100, by = 25), # Marcas de escala: 0, 25, 50, 75, 100
seg = 4, # Divide la red en 4 secciones (cada 25 puntos)
# --- Configuración del Polígono de Datos ---
pcol = "#2C3E50", # Color Azul Ejecutivo para la línea exterior
plwd = 3, # Grosor de la línea del perfil
plty = 1, # Línea continua
# Relleno del polígono con el mismo azul y un toque de transparencia (alpha=60)
pfcol = rgb(44, 62, 80, alpha = 60, maxColorValue = 255),
# --- Ajustes de Texto ---
vlabels = colnames(df_radar_final), # Usa los nombres de las asignaturas
vlcex = 1.5, #Tamaño de letra de las asignaturas
title = "Perfil de Rendimiento Promedio Global" # Título del gráfico
)
df_11th <- df_11th %>% mutate(sim_prom = (GlobalS1+GlobalS2+GlobalS3)/3)
resumen_enfasis <- df_11th %>%
group_by(Enfasis) %>%
summarise(
N = n(),
Prom_Simulacro = mean(sim_prom, na.rm = TRUE),
DE_Simulacro = sd(sim_prom, na.rm = TRUE),
Prom_Percentil = mean(PercentilPreS, na.rm = TRUE),
DE_Percentil = sd(PercentilPreS, na.rm = TRUE)
)
kable(resumen_enfasis, digits = 3, align = "c",
caption = "Resumen estadístico de resultados por énfasis")%>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"),
latex_options = c("striped", "hold_position"),
full_width = T, position = "center")%>%
row_spec(0, bold = TRUE, color = "white", background = "#2C3E50")
| Enfasis | N | Prom_Simulacro | DE_Simulacro | Prom_Percentil | DE_Percentil |
|---|---|---|---|---|---|
| Arte | 22 | 275.317 | 44.596 | 54.900 | 18.462 |
| Ciencias | 15 | 316.738 | 35.160 | 69.357 | 22.404 |
| Humanidades | 18 | 285.944 | 46.036 | 50.389 | 21.475 |
| Matemáticas | 20 | 359.483 | 39.976 | 82.450 | 14.598 |
##
## Call:
## lm(formula = PercentilPreS ~ Enfasis, data = df_11th)
##
## Residuals:
## Min 1Q Median 3Q Max
## -64.357 -8.037 4.550 11.611 37.100
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 54.900 4.278 12.833 < 2e-16 ***
## EnfasisCiencias 14.457 6.667 2.169 0.0336 *
## EnfasisHumanidades -4.511 6.216 -0.726 0.4705
## EnfasisMatemáticas 27.550 6.050 4.554 2.25e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 19.13 on 68 degrees of freedom
## (3 observations deleted due to missingness)
## Multiple R-squared: 0.3289, Adjusted R-squared: 0.2993
## F-statistic: 11.11 on 3 and 68 DF, p-value: 5.071e-06
El modelo evalúa el impacto del énfasis académico sobre el percentil alacanzado por los estudiantes en la prueba Pre Saber 11. Los resultados muestran que el énfasis académico es un predictor significativo para el rendimiento general de la prueba (p-valor < 0.05).
El modelo tomó como referencia el énfasis de arte, el cual cuenta con un percentil promedio significativo de 54.9. Se encuentran diferencias significativas entre los énfasis de arte, ciencias y matemáticas. Se espera que los estudiantes del énfasis de matemáticas se ubiquen 27.5 puntos más arriba en comparación a los de arte, mientras que lo de ciencias pueden ubicarse 14.4 puntos arriba. Adicionalmente, no existe diferencia significativa entre los resultados de los estudiantes de artes con los de humanidades.
El modelo sugiere que el énfasis académico explica alrededor del 32.9% de la variación de los resultados.
estadistica_cambridge <- df_11th %>%
group_by(Cambridge) %>%
summarise(
N = n(),
Prom_Simulacro = mean(sim_prom, na.rm = TRUE),
DE_Simulacro = sd(sim_prom, na.rm = TRUE),
Prom_Percentil = mean(PercentilPreS, na.rm = TRUE),
DE_Percentil = sd(PercentilPreS, na.rm = TRUE)
)
kable(estadistica_cambridge, digits = 3, align = "c",
caption = "Resumen estadístico de resultados por énfasis")%>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"),
latex_options = c("striped", "hold_position"),
full_width = T, position = "center")%>%
row_spec(0, bold = TRUE, color = "white", background = "#2C3E50")
| Cambridge | N | Prom_Simulacro | DE_Simulacro | Prom_Percentil | DE_Percentil |
|---|---|---|---|---|---|
| 0 | 34 | 294.909 | 53.307 | 59.906 | 23.373 |
| 1 | 24 | 317.754 | 46.469 | 66.000 | 21.821 |
| 2 | 3 | 306.667 | 32.447 | 60.333 | 13.051 |
| 3 | 14 | 328.024 | 64.152 | 72.538 | 24.568 |
En el gráfico de caja y bigotes se muestra la distribución de resultados por cada categoría dentro de la población Cambridge.
##
## Call:
## lm(formula = PercentilPreS ~ Cambridge, data = df_11th)
##
## Residuals:
## Min 1Q Median 3Q Max
## -62.538 -12.477 2.094 16.023 39.094
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 59.9063 4.0374 14.838 <2e-16 ***
## Cambridge1 6.0938 6.1673 0.988 0.3266
## Cambridge2 0.4271 13.7904 0.031 0.9754
## Cambridge3 12.6322 7.5117 1.682 0.0972 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 22.84 on 68 degrees of freedom
## (3 observations deleted due to missingness)
## Multiple R-squared: 0.04358, Adjusted R-squared: 0.001388
## F-statistic: 1.033 on 3 and 68 DF, p-value: 0.3836
El modelo evalúa el impacto de la categorización de Población Camdridge sobre el percentil alcanzado por los estudiantes. Los resultados muestran que la presentación de exámenes Cambridge no es un predictor significativo para el redimiento general de la prueba (p-valor = 0.3836).
El modelo tomó como referencia la Categoría 0, para la cual se tiene un percentil promedio significativo de 59.90. Aunque se notan algunas diferencias entre los grupos (por ejemplo, 12.63 puntos de diferencia con la Categoría 3), estas no son estadpisticamente sifgnificativas. Esto sugiere que gran parte de la variación de se deben a otros factores propios de la muestra, pero la realización de exámenes Cambridge por si solos, no representan un factor de éxito en el percentil global (explicando el 4.35% de la varianza).
Comparativa de los resultados en las pruebas de población perteneciente al programa NOVA y la pobalción regular.
El siguiente diagrama de caja y bigote muestra la diferencia entre los grupos.
df_11th |> drop_na(Nova) |>
mutate(Nova = factor(Nova,
levels = c("0", "1"),
labels = c("No", "Si"))) |>
ggplot(aes(x = PercentilPreS, y = Nova, fill = Nova)) +
stat_boxplot(geom = "errorbar", width = 0.2, linewidth = 0.8) +
geom_boxplot(width = 0.4, alpha = 0.9) +
geom_jitter(aes(color = Nova), width = 0.4, alpha = 0.5) +
theme_minimal() +
theme(axis.text.y = element_blank()) +
labs(x = "Percentil global", y = "Población NOVA")
| Cantidad | Media | Desv. Est. | Mediana | Mínimo | Máximo | |
|---|---|---|---|---|---|---|
| Percentil Global Prueba | 5 | 84.4 | 15.8 | 87 | 67 | 100 |
| Percentil Lectura Crítica | 5 | 80.4 | 22.2 | 90 | 45 | 100 |
| Percentil Matemáticas | 5 | 88.4 | 14.4 | 91 | 64 | 100 |
| Percentil Sociales y Ciu. | 5 | 71.6 | 28.9 | 80 | 27 | 97 |
| Percentil Ciencias Naturales | 5 | 86.8 | 13.8 | 91 | 68 | 100 |
| Percentil Inglés | 5 | 95.6 | 2.9 | 95 | 92 | 100 |
El análisis estadístico del rendimiento de los estudiantes NOVA (5 estudiantes) refleja un perfil académico destacado pero con una alta variabilidad entre disciplinas, consolidando un promedio global en el percentil 84.4 (con una desviación estándar de 15.8).
La mayor fortaleza y homogeneidad del colectivo se localiza en el componente de Inglés, el cual registra la media más elevada (95.6) y una dispersión mínima (2.9), seguido por un desempeño sobresaliente y compacto en las áreas de Matemáticas (media de 88.4) y Ciencias Naturales (media de 86.8). En contraste, el gráfico de radar expone una marcada contracción en el eje de Sociales y Ciudadanas, consolidándose como la principal área de mejora al registrar el promedio más bajo (71.6) y la mayor volatilidad interna del reporte (desviación de 28.9 y un puntaje mínimo de 27).
Esta tendencia de dispersión también se replica en Lectura Crítica (media de 80.4 y desviación de 22.2), lo que evidencia la necesidad de implementar estrategias de nivelación focalizadas para corregir las brechas puntuales de aprendizaje dentro del grupo.
library(dplyr)
library(fmsb)
# 1. CALCULAR LOS PROMEDIOS DESDE TU DATA FRAME ORIGINAL
# Usamos summarise para calcular la media de cada área eliminando los NA
promedios_calculados_nova <- df_11th %>%
drop_na(PercentilPreS) %>%
filter(Nova == "1") %>%
summarise(
Matemáticas = mean(Mat_PS, na.rm = TRUE),
Inglés = mean(Ing_PS, na.rm = TRUE),
Naturales = mean(Nat_PS, na.rm = TRUE),
Sociales = mean(Soc_PS, na.rm = TRUE),
Lectura = mean(Lect_PS, na.rm = TRUE)
)
limites_escala <- data.frame(
Matemáticas = c(100, 1),
Inglés = c(100, 1),
Naturales = c(100, 1),
Sociales = c(100, 1),
Lectura = c(100, 1)
)
df_radar_nova <- rbind(limites_escala, promedios_calculados_nova)
# 4. GENERAR EL DIAGRAMA DE ARAÑA ESTILIZADO
par(mar = c(2, 2, 4, 2)) # Ajuste de márgenes para que no se corten los textos
radarchart(
df_radar_nova,
axistype = 1, # Muestra la escala numérica en el eje superior
# --- Configuración de la Red ---
cglcol = "grey80", # Color de las líneas de la cuadrícula
cglty = 1, # Líneas continuas para la red
cglwd = 1, # Grosor de la red
axislabcol = "grey50", # Color de los números de la escala
caxislabels = seq(0, 100, by = 25), # Marcas de escala: 0, 25, 50, 75, 100
seg = 4, # Divide la red en 4 secciones (cada 25 puntos)
# --- Configuración del Polígono de Datos ---
pcol = "#2C3E50", # Color Azul Ejecutivo para la línea exterior
plwd = 3, # Grosor de la línea del perfil
plty = 1, # Línea continua
# Relleno del polígono con el mismo azul y un toque de transparencia (alpha=60)
pfcol = rgb(44, 62, 80, alpha = 60, maxColorValue = 255),
vlabels = colnames(df_radar_nova),
vlcex = 1.5,
title = "Perfil de Rendimiento Promedio - Población NOVA"
)
| Cantidad | Media | Desv. Est. | Mediana | Mínimo | Máximo | |
|---|---|---|---|---|---|---|
| Percentil Global Prueba | 67 | 62.7 | 22.7 | 62 | 5 | 99 |
| Percentil Lectura Crítica | 67 | 58.3 | 25.9 | 63 | 1 | 98 |
| Percentil Matemáticas | 67 | 67.7 | 24.1 | 72 | 2 | 100 |
| Percentil Sociales y Ciu. | 67 | 55.0 | 26.0 | 58 | 1 | 98 |
| Percentil Ciencias Naturales | 67 | 57.2 | 23.8 | 56 | 3 | 97 |
| Percentil Inglés | 67 | 83.4 | 14.2 | 87 | 40 | 100 |
A partir del diagrama de radar y la tabla correspondientes a la Población No NOVA, se identifica que Inglés se mantiene de forma contundente como el eje más fuerte y con mayor consistencia interna del grupo, alcanzando el promedio más alto y la menor dispersión de la evaluación. Por el contrario, las asignaturas fundamentales de Sociales y Ciu. junto con Ciencias Naturales y Lectura Crítica muestran una marcada contracción generalizada hacia el centro del gráfico de radar, registrando los promedios más bajos y revelando una profunda brecha de aprendizaje debido a sus altas desviaciones estándar y puntajes mínimos críticos cercanos a cero.
El componente de Matemáticas se posiciona en un terreno intermedio con una leve ventaja sobre las demás materias básicas, configurando un panorama general que evidencia un rendimiento global moderado y sumamente heterogéneo, lo cual exige el diseño urgente de estrategias de nivelación integral en la gran mayoría de las áreas evaluadas.
library(dplyr)
library(fmsb)
# 1. CALCULAR LOS PROMEDIOS DESDE TU DATA FRAME ORIGINAL
# Usamos summarise para calcular la media de cada área eliminando los NA
promedios_calculados_no_nova <- df_11th %>%
drop_na(PercentilPreS) %>%
filter(Nova == "0") %>%
summarise(
Matemáticas = mean(Mat_PS, na.rm = TRUE),
Inglés = mean(Ing_PS, na.rm = TRUE),
Naturales = mean(Nat_PS, na.rm = TRUE),
Sociales = mean(Soc_PS, na.rm = TRUE),
Lectura = mean(Lect_PS, na.rm = TRUE)
)
limites_escala <- data.frame(
Matemáticas = c(100, 1),
Inglés = c(100, 1),
Naturales = c(100, 1),
Sociales = c(100, 1),
Lectura = c(100, 1)
)
df_radar_no_nova <- rbind(limites_escala, promedios_calculados_no_nova)
# 4. GENERAR EL DIAGRAMA DE ARAÑA ESTILIZADO
par(mar = c(2, 2, 4, 2)) # Ajuste de márgenes para que no se corten los textos
radarchart(
df_radar_no_nova,
axistype = 1, # Muestra la escala numérica en el eje superior
# --- Configuración de la Red ---
cglcol = "grey80", # Color de las líneas de la cuadrícula
cglty = 1, # Líneas continuas para la red
cglwd = 1, # Grosor de la red
axislabcol = "grey50", # Color de los números de la escala
caxislabels = seq(0, 100, by = 25), # Marcas de escala: 0, 25, 50, 75, 100
seg = 4, # Divide la red en 4 secciones (cada 25 puntos)
# --- Configuración del Polígono de Datos ---
pcol = "#2C3E80", # Color Azul Ejecutivo para la línea exterior
plwd = 3, # Grosor de la línea del perfil
plty = 1, # Línea continua
# Relleno del polígono con el mismo azul y un toque de transparencia (alpha=60)
pfcol = rgb(44, 62, 80, alpha = 60, maxColorValue = 255),
vlabels = colnames(df_radar_nova),
vlcex = 1.5,
title = "Perfil de Rendimiento Promedio - Población No NOVA"
)
Comparativa de los resultados en las pruebas de población perteneciente al programa NOVA y la población regular.
El siguiente diagrama de caja y bigote muestra la diferencia entre los grupos.
df_11th |> drop_na(Diagnostico) |>
ggplot(aes(x = PercentilPreS, y = Diagnostico, fill = Diagnostico)) +
stat_boxplot(geom = "errorbar", width = 0.2, linewidth = 0.8) +
geom_boxplot(width = 0.4, alpha = 0.9) +
geom_jitter(aes(color = Diagnostico), width = 0.4, alpha = 0.5) +
theme_minimal() +
theme(axis.text.y = element_blank()) +
labs(x = "Percentil global", y = "Población")
| Cantidad | Media | Desv. Est. | Mediana | Mínimo | Máximo | |
|---|---|---|---|---|---|---|
| Percentil Global Prueba | 8 | 24.4 | 13.7 | 22.5 | 7 | 50 |
| Percentil Lectura Crítica | 8 | 25.5 | 24.6 | 17.0 | 1 | 60 |
| Percentil Matemáticas | 8 | 30.9 | 20.3 | 37.0 | 2 | 55 |
| Percentil Sociales y Ciu. | 8 | 15.5 | 12.1 | 12.5 | 2 | 39 |
| Percentil Ciencias Naturales | 8 | 19.4 | 13.9 | 15.5 | 3 | 41 |
| Percentil Inglés | 8 | 68.0 | 20.7 | 71.0 | 40 | 100 |
A partir del diagrama de radar y la tabla correspondientes a la Población con diagnóstico en la imagen image_eb1a44.png, se identifica que Inglés sobresale como el único componente con un rendimiento favorable, logrando la media más alta del reporte y estirando el gráfico de radar hacia su extremo izquierdo de manera aislada. Por el contrario, la figura geométrica muestra un colapso generalizado hacia el centro en todas las áreas básicas, siendo el eje de Sociales y Ciu. el punto más crítico al registrar el promedio más bajo de la evaluación, seguido muy de cerca por un rezago severo en Ciencias Naturales y Lectura Crítica.
El área de Matemáticas se sitúa en un nivel intermedio bajo con un desempeño sutilmente superior al resto de asignaturas troncales, consolidando un panorama global sumamente deficiente y asimétrico que evidencia la necesidad urgente de una intervención pedagógica profunda y prioritaria en la totalidad de los componentes evaluados.
library(dplyr)
library(fmsb)
# 1. CALCULAR LOS PROMEDIOS DESDE TU DATA FRAME ORIGINAL
# Usamos summarise para calcular la media de cada área eliminando los NA
promedios_calculados_diag <- df_11th %>%
drop_na(PercentilPreS) %>%
filter(Diagnostico == "Si") %>%
summarise(
Matemáticas = mean(Mat_PS, na.rm = TRUE),
Inglés = mean(Ing_PS, na.rm = TRUE),
Naturales = mean(Nat_PS, na.rm = TRUE),
Sociales = mean(Soc_PS, na.rm = TRUE),
Lectura = mean(Lect_PS, na.rm = TRUE)
)
limites_escala <- data.frame(
Matemáticas = c(100, 1),
Inglés = c(100, 1),
Naturales = c(100, 1),
Sociales = c(100, 1),
Lectura = c(100, 1)
)
df_radar_diag <- rbind(limites_escala, promedios_calculados_diag)
# 4. GENERAR EL DIAGRAMA DE ARAÑA ESTILIZADO
par(mar = c(2, 2, 4, 2)) # Ajuste de márgenes para que no se corten los textos
radarchart(
df_radar_diag,
axistype = 1, # Muestra la escala numérica en el eje superior
# --- Configuración de la Red ---
cglcol = "grey80", # Color de las líneas de la cuadrícula
cglty = 1, # Líneas continuas para la red
cglwd = 1, # Grosor de la red
axislabcol = "grey50", # Color de los números de la escala
caxislabels = seq(0, 100, by = 25), # Marcas de escala: 0, 25, 50, 75, 100
seg = 4, # Divide la red en 4 secciones (cada 25 puntos)
# --- Configuración del Polígono de Datos ---
pcol = "#2C3E50", # Color Azul Ejecutivo para la línea exterior
plwd = 3, # Grosor de la línea del perfil
plty = 1, # Línea continua
# Relleno del polígono con el mismo azul y un toque de transparencia (alpha=60)
pfcol = rgb(44, 62, 80, alpha = 60, maxColorValue = 255),
vlabels = colnames(df_radar_diag),
vlcex = 1.5,
title = "Perfil de Rendimiento Promedio - Población con diagnóstico"
)
| Cantidad | Media | Desv. Est. | Mediana | Mínimo | Máximo | |
|---|---|---|---|---|---|---|
| Percentil Global Prueba | 64 | 69.2 | 18.5 | 69.0 | 5 | 100 |
| Percentil Lectura Crítica | 64 | 64.2 | 23.1 | 68.0 | 2 | 100 |
| Percentil Matemáticas | 64 | 73.9 | 20.0 | 76.5 | 12 | 100 |
| Percentil Sociales y Ciu. | 64 | 61.2 | 23.0 | 59.0 | 1 | 98 |
| Percentil Ciencias Naturales | 64 | 64.2 | 20.5 | 65.0 | 7 | 100 |
| Percentil Inglés | 64 | 86.2 | 11.8 | 89.5 | 55 | 100 |
A partir del diagrama de radar y la tabla correspondientes a la Población sin diagnóstico, se identifica que Inglés se consolida firmemente como el eje con mejor desempeño y mayor homogeneidad de la evaluación, alcanzando el promedio más alto y la dispersión más baja del reporte.
En las asignaturas básicas, el componente de Matemáticas destaca con una ventaja clara sobre las demás disciplinas troncales, logrando jalar de forma notable la parte superior de la figura geométrica. Por el contrario, el eje de Sociales y Ciu. refleja la mayor contracción hacia el centro del gráfico de radar al registrar la media más baja del grupo, seguido muy de cerca por Lectura Crítica y Ciencias Naturales, áreas que además exponen una profunda brecha interna debido a sus altas desviaciones estándar y puntajes mínimos críticos cercanos a cero.
Este panorama general configura un rendimiento global moderado y marcadamente heterogéneo, sugiriendo la pertinencia de diseñar planes de refuerzo enfocados en equilibrar las competencias analíticas y lectoras frente al sólido dominio del bilingüismo.library(dplyr)
library(fmsb)
# 1. CALCULAR LOS PROMEDIOS DESDE TU DATA FRAME ORIGINAL
# Usamos summarise para calcular la media de cada área eliminando los NA
promedios_calculados_no_diag <- df_11th %>%
drop_na(PercentilPreS) %>%
filter(Diagnostico == "No") %>%
summarise(
Matemáticas = mean(Mat_PS, na.rm = TRUE),
Inglés = mean(Ing_PS, na.rm = TRUE),
Naturales = mean(Nat_PS, na.rm = TRUE),
Sociales = mean(Soc_PS, na.rm = TRUE),
Lectura = mean(Lect_PS, na.rm = TRUE)
)
limites_escala <- data.frame(
Matemáticas = c(100, 1),
Inglés = c(100, 1),
Naturales = c(100, 1),
Sociales = c(100, 1),
Lectura = c(100, 1)
)
df_radar_no_diag <- rbind(limites_escala, promedios_calculados_no_diag)
# 4. GENERAR EL DIAGRAMA DE ARAÑA ESTILIZADO
par(mar = c(2, 2, 4, 2)) # Ajuste de márgenes para que no se corten los textos
radarchart(
df_radar_no_diag,
axistype = 1, # Muestra la escala numérica en el eje superior
# --- Configuración de la Red ---
cglcol = "grey80", # Color de las líneas de la cuadrícula
cglty = 1, # Líneas continuas para la red
cglwd = 1, # Grosor de la red
axislabcol = "grey50", # Color de los números de la escala
caxislabels = seq(0, 100, by = 25), # Marcas de escala: 0, 25, 50, 75, 100
seg = 4, # Divide la red en 4 secciones (cada 25 puntos)
# --- Configuración del Polígono de Datos ---
pcol = "#2C3E80", # Color Azul Ejecutivo para la línea exterior
plwd = 3, # Grosor de la línea del perfil
plty = 1, # Línea continua
# Relleno del polígono con el mismo azul y un toque de transparencia (alpha=60)
pfcol = rgb(44, 62, 80, alpha = 60, maxColorValue = 255),
vlabels = colnames(df_radar_diag),
vlcex = 1.5,
title = "Perfil de Rendimiento Promedio - Población cin diagnóstico"
)