para el desarrollo del Análisis de Correspondencias Múltiples (ACM)
se utilizan principalmente dos paqueterías especializadas: FactoMineR()
y factoextra(). La primera permite ejecutar el análisis estadístico y
obtener los resultados numéricos, mientras que la segunda facilita la
visualización e interpretación gráfica de dichos resultados, apoyándose
a su vez en la librería ggplot2() para generar gráficos de alta
calidad.
library(readxl)
library(FactoMineR)
library(factoextra)
## Cargando paquete requerido: ggplot2
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
library(dplyr)
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(naniar)
A continuación, se procede a cargar la base de datos en el software
R, la cual contiene la información correspondiente a los resultados de
las pruebas ICFES de estudiantes de la ciudad de Santa Marta, junto con
diversas variables sociodemográficas y académicas que pueden influir en
el desempeño obtenido. Esta base de datos fue suministrada en formato
Excel y posteriormente organizada para su análisis. Antes de iniciar el
tratamiento estadístico, se realizó una revisión y estandarización de
las variables, verificando sus codificaciones, niveles de respuesta y
posibles valores perdidos, con el fin de garantizar la calidad y
consistencia de los datos utilizados en el análisis de correspondencia
múltiple.
df<-read_excel("C:/Users/ASUS/Downloads/BASE_DE_DATOS_FINALIZADA.xlsx")
View(df)
str(df)
## tibble [8,492 × 58] (S3: tbl_df/tbl/data.frame)
## $ AÑO : num [1:8492] 2022 2023 2024 2022 2023 ...
## $ estu_consecutivo : chr [1:8492] "SB11202240113664" "SB11202340081450" "SB11202430470071" "SB11202240173126" ...
## $ INSTITUCIÓN : chr [1:8492] "SEDE 05 ESCUELA URBANA MIXTA YUCAL N:2" "SEDE 01 EDGARDO VIVES CAMPO" "SEDE 01 LAURA VICUNA" "SEDE 01 LICEO DEL NORTE" ...
## $ JORNADA : chr [1:8492] "TARDE" "TARDE" "TARDE" "TARDE" ...
## $ LECTURA CRÍTICA (ICFES) : num [1:8492] 60 69 61 36 62 57 60 61 61 61 ...
## $ MATEMATICAS (ICFES) : num [1:8492] 70 67 63 40 57 62 55 41 58 52 ...
## $ SOCIALES Y CIUDADANAS (ICFES) : num [1:8492] 65 72 61 44 57 62 52 54 51 42 ...
## $ CIENCIAS NATURALES (ICFES) : num [1:8492] 57 69 59 49 60 58 48 47 53 36 ...
## $ INGLES (ICFES) : num [1:8492] 65 80 56 55 52 63 50 62 49 41 ...
## $ PUNTAJE GLOBAL (ICFES) : num [1:8492] 316 350 303 216 292 300 267 258 276 236 ...
## $ GRUPO Y JORNADA.1_estandarizada : num [1:8492] 1 1 6 4 3 1 1 1 1 1 ...
## $ CASTELLANO_100 : num [1:8492] 100 100 100 100 100 100 100 100 100 100 ...
## $ MATEMATICA_100 : num [1:8492] 95 95 87.6 85 85 77 72 72 72 68 ...
## $ CIENCIAS SOCIALES_100 : num [1:8492] 98 92 86.3 89 82 92 83 82 73 85 ...
## $ CIENCIAS (FISICA - QUIMICA - BIOLOGIA)_100: num [1:8492] 89 84 85.1 91 85 80 71 70 74 67 ...
## $ INGLES_100 : num [1:8492] 93 89 80.3 88 88 83 82 82 78 73 ...
## $ Promedio Calificaciones : num [1:8492] 95 92 87.9 90.6 88 ...
## $ Puntaje ponderado : num [1:8492] 477 462 445 455 440 ...
## $ cole_area_ubicacion : chr [1:8492] "URBANO" "URBANO" "URBANO" "URBANO" ...
## $ cole_calendario : chr [1:8492] "A" "A" "A" "A" ...
## $ cole_caracter : chr [1:8492] "TÉCNICO/ACADÉMICO" "ACADÉMICO" "ACADÉMICO" "ACADÉMICO" ...
## $ cole_cod_dane_establecimiento : num [1:8492] 1.47e+11 1.47e+11 1.47e+11 1.47e+11 1.47e+11 ...
## $ cole_cod_dane_sede : num [1:8492] 2.47e+11 1.47e+11 1.47e+11 1.47e+11 1.47e+11 ...
## $ cole_codigo_icfes : num [1:8492] 660100 108613 77289 191577 37945 ...
## $ cole_nombre_establecimiento : chr [1:8492] "INSTITUCION EDUCATIVA DISTRITAL ONCE DE NOVIEMBRE" "IED EDGARDO VIVES CAMPO" "IED LAURA VICUNA" "IED LICEO DEL NORTE" ...
## $ desemp_ingles : chr [1:8492] "A2" "B+" "A1" "A1" ...
## $ estu_dedicacioninternet : chr [1:8492] "Entre 30 y 60 minutos" "Entre 30 y 60 minutos" "Entre 30 y 60 minutos" "Entre 30 y 60 minutos" ...
## $ estu_dedicacioninternet_num : num [1:8492] 2 2 2 2 4 4 4 4 3 3 ...
## $ estu_dedicacionlecturadiaria : chr [1:8492] "Entre 30 y 60 minutos" "Entre 1 y 2 horas" "30 minutos o menos" "Entre 30 y 60 minutos" ...
## $ estu_dedicacionlecturadiaria_num : num [1:8492] 2 3 1 2 2 3 2 1 1 1 ...
## $ estu_discapacidad : chr [1:8492] "N" "N" "N" "N" ...
## $ estu_etnia : chr [1:8492] "No aplica" "No aplica" "No aplica" "No aplica" ...
## $ estu_fechanacimiento : POSIXct[1:8492], format: "2006-12-03" "2006-08-26" ...
## $ edad_prueba : num [1:8492] 15 16 16 17 16 15 16 16 16 15 ...
## $ estu_genero : chr [1:8492] "M" "F" "F" "F" ...
## $ estu_horassemanatrabaja : chr [1:8492] "0" "0" "0" "0" ...
## $ estu_horassemanatrabaja_num : num [1:8492] 0 0 0 0 0 0 0 1 0 0 ...
## $ estu_mcpio_presentacion : chr [1:8492] "SANTA MARTA" "SANTA MARTA" "SANTA MARTA" "SANTA MARTA" ...
## $ estu_nacionalidad : chr [1:8492] "COLOMBIA" "COLOMBIA" "COLOMBIA" "VENEZUELA" ...
## $ estu_pais_reside : chr [1:8492] "COLOMBIA" "COLOMBIA" "COLOMBIA" "VENEZUELA" ...
## $ estu_repite : num [1:8492] 0 0 0 0 0 ...
## $ estu_tieneetnia : chr [1:8492] "No" "No" "No" "No" ...
## $ fami_educacionmadre : chr [1:8492] "Secundaria (Bachillerato) completa" "Técnica o tecnológica completa" "Secundaria (Bachillerato) completa" "Educación profesional completa" ...
## $ fami_educacionmadre_num : num [1:8492] 4 6 4 8 2 6 6 6 5 3 ...
## $ fami_educacionpadre : chr [1:8492] "Secundaria (Bachillerato) incompleta" "Educación profesional incompleta" "Secundaria (Bachillerato) completa" "Educación profesional completa" ...
## $ fami_educacionpadre_num : num [1:8492] 3 7 4 8 8 10 6 6 4 4 ...
## $ fami_estratovivienda : chr [1:8492] "Estrato 1" "Estrato 2" "Estrato 1" "Estrato 3" ...
## $ fami_tieneinternet : chr [1:8492] "Si" "Si" "Si" "No" ...
## $ fami_trabajolabormadre : chr [1:8492] "Trabaja como personal de limpieza, mantenimiento, seguridad o construcción" NA "Trabaja en el hogar, no trabaja o estudia" "Tiene un trabajo de tipo auxiliar administrativo (por ejemplo, secretario o asistente)" ...
## $ fami_trabajolabormadre_num : num [1:8492] 2 11 0 6 10 5 11 7 8 11 ...
## $ fami_trabajolaborpadre : chr [1:8492] "Trabaja como personal de limpieza, mantenimiento, seguridad o construcción" NA "Es operario de máquinas o conduce vehículos (taxita, chofer)" "Pensionado" ...
## $ fami_trabajolaborpadre_num : num [1:8492] 2 11 4 1 0 12 11 11 12 11 ...
## $ percentil_c_naturales : num [1:8492] 76 96 76 54 81 79 48 45 65 9 ...
## $ percentil_global : num [1:8492] 88 97 80 29 76 82 63 57 69 43 ...
## $ percentil_ingles : num [1:8492] 87 98 68 67 58 84 53 83 52 29 ...
## $ percentil_lectura_critica : num [1:8492] 73 94 76 6 79 64 73 77 77 75 ...
## $ percentil_matematicas : num [1:8492] 95 90 78 21 66 82 62 23 71 52 ...
## $ percentil_sociales_ciudadanas : num [1:8492] 92 98 83 41 74 87 63 69 60 35 ...
En esta etapa se realizó la selección de las variables de interés
relacionadas con los factores sociodemográficos y académicos que podrían
influir en los resultados de las pruebas ICFES. Asimismo, se efectuó una
limpieza y transformación de los datos, ajustando los nombres de las
columnas para facilitar su análisis posterior.
df_mca <- df %>%
select(AÑO,
JORNADA,
`GRUPO Y JORNADA.1_estandarizada`,
cole_area_ubicacion,
cole_caracter,
desemp_ingles,
estu_dedicacioninternet,
estu_dedicacionlecturadiaria,
estu_discapacidad,
edad_prueba,
estu_genero,
estu_horassemanatrabaja,
estu_mcpio_presentacion,
estu_nacionalidad,
estu_tieneetnia,
fami_estratovivienda,
fami_tieneinternet
)
Posteriormente, se realizó una revisión de la estructura de las
variables de interés con el fin de verificar que cada una de ellas
tuviera el tipo de dato adecuado para el análisis de correspondencias
múltiples.
str(df_mca)
## tibble [8,492 × 17] (S3: tbl_df/tbl/data.frame)
## $ AÑO : num [1:8492] 2022 2023 2024 2022 2023 ...
## $ JORNADA : chr [1:8492] "TARDE" "TARDE" "TARDE" "TARDE" ...
## $ GRUPO Y JORNADA.1_estandarizada: num [1:8492] 1 1 6 4 3 1 1 1 1 1 ...
## $ cole_area_ubicacion : chr [1:8492] "URBANO" "URBANO" "URBANO" "URBANO" ...
## $ cole_caracter : chr [1:8492] "TÉCNICO/ACADÉMICO" "ACADÉMICO" "ACADÉMICO" "ACADÉMICO" ...
## $ desemp_ingles : chr [1:8492] "A2" "B+" "A1" "A1" ...
## $ estu_dedicacioninternet : chr [1:8492] "Entre 30 y 60 minutos" "Entre 30 y 60 minutos" "Entre 30 y 60 minutos" "Entre 30 y 60 minutos" ...
## $ estu_dedicacionlecturadiaria : chr [1:8492] "Entre 30 y 60 minutos" "Entre 1 y 2 horas" "30 minutos o menos" "Entre 30 y 60 minutos" ...
## $ estu_discapacidad : chr [1:8492] "N" "N" "N" "N" ...
## $ edad_prueba : num [1:8492] 15 16 16 17 16 15 16 16 16 15 ...
## $ estu_genero : chr [1:8492] "M" "F" "F" "F" ...
## $ estu_horassemanatrabaja : chr [1:8492] "0" "0" "0" "0" ...
## $ estu_mcpio_presentacion : chr [1:8492] "SANTA MARTA" "SANTA MARTA" "SANTA MARTA" "SANTA MARTA" ...
## $ estu_nacionalidad : chr [1:8492] "COLOMBIA" "COLOMBIA" "COLOMBIA" "VENEZUELA" ...
## $ estu_tieneetnia : chr [1:8492] "No" "No" "No" "No" ...
## $ fami_estratovivienda : chr [1:8492] "Estrato 1" "Estrato 2" "Estrato 1" "Estrato 3" ...
## $ fami_tieneinternet : chr [1:8492] "Si" "Si" "Si" "No" ...
View(df_mca)
Dicho resumen permitió identificar que las variables fueron
reconocidas por R como tipo integer o character, sin embargo, para
incluirlas en el análisis de correspondencias múltiples (MCA) fue
necesario transformarlas al tipo factor. Para ello, se utilizó el
comando as.factor(), el cual convierte las variables categóricas al
formato adecuado para este tipo de análisis.
df$AÑO<-as.factor(df$AÑO)
df$`GRUPO Y JORNADA.1_estandarizada`<-as.factor(df$`GRUPO Y JORNADA.1_estandarizada`)
df$estu_repite<-as.numeric(as.character(df$estu_repite))
df$edad_prueba <- as.numeric(as.character(df$edad_prueba))
df[c("cole_area_ubicacion", "cole_caracter", "desemp_ingles",
"estu_dedicacioninternet","estu_dedicacionlecturadiaria",
"estu_discapacidad","estu_genero","estu_horassemanatrabaja",
"estu_mcpio_presentacion", "estu_nacionalidad", "estu_tieneetnia","fami_estratovivienda",
"fami_tieneinternet")] <-
lapply(df[c("cole_area_ubicacion", "cole_caracter", "desemp_ingles",
"estu_dedicacioninternet","estu_dedicacionlecturadiaria",
"estu_discapacidad","estu_genero","estu_horassemanatrabaja",
"estu_mcpio_presentacion", "estu_nacionalidad", "estu_tieneetnia","fami_estratovivienda",
"fami_tieneinternet")], as.factor)
levels(df$AÑO)<-c("2022","2023","2024")
levels(df$`GRUPO Y JORNADA.1_estandarizada`)<-c("A","B","C","D","E","F","G","H","I")
df$estu_repite <- cut(df$estu_repite,
breaks = c(0, 1, 300000),
labels = c("0", "1-300000"),
include.lowest = TRUE)
df$edad_pruebas <- cut(df$edad_prueba,
breaks = c(12, 14, 17, 20, 22),
labels = c("12-14", "15-17", "18-20", "21-22"),
include.lowest = TRUE)
df_mca[] <- lapply(df_mca, as.factor)
lapply(df_mca, levels)
## $AÑO
## [1] "2022" "2023" "2024"
##
## $JORNADA
## [1] "MAÑANA" "TARDE" "UNICA"
##
## $`GRUPO Y JORNADA.1_estandarizada`
## [1] "1" "2" "3" "4" "5" "6" "7" "8" "9"
##
## $cole_area_ubicacion
## [1] "RURAL" "URBANO"
##
## $cole_caracter
## [1] "ACADÉMICO" "NO APLICA" "TÉCNICO"
## [4] "TÉCNICO/ACADÉMICO"
##
## $desemp_ingles
## [1] "A-" "A1" "A2" "B+" "B1"
##
## $estu_dedicacioninternet
## [1] "30 minutos o menos" "Entre 1 y 3 horas" "Entre 30 y 60 minutos"
## [4] "Más de 3 horas" "No Navega Internet"
##
## $estu_dedicacionlecturadiaria
## [1] "30 minutos o menos" "Entre 1 y 2 horas"
## [3] "Entre 30 y 60 minutos" "Más de 2 horas"
## [5] "No leo por entretenimiento"
##
## $estu_discapacidad
## [1] "N" "S"
##
## $edad_prueba
## [1] "12" "13" "14" "15" "16" "17" "18" "19" "20" "21" "22"
##
## $estu_genero
## [1] "F" "M"
##
## $estu_horassemanatrabaja
## [1] "0" "Entre 11 y 20 horas" "Entre 21 y 30 horas"
## [4] "Más de 30 horas" "Menos de 10 horas"
##
## $estu_mcpio_presentacion
## [1] "CIÉNAGA" "SANTA MARTA"
##
## $estu_nacionalidad
## [1] "COLOMBIA" "PERÚ" "VANUATU" "VENEZUELA"
##
## $estu_tieneetnia
## [1] "No" "Si"
##
## $fami_estratovivienda
## [1] "Estrato 1" "Estrato 2" "Estrato 3" "Estrato 4" "Estrato 5"
## [6] "Estrato 6" "Sin Estrato"
##
## $fami_tieneinternet
## [1] "No" "Si"
Ahora se realiza una revisión gráfica de la distribución de las
variables seleccionadas. Para ello, se utiliza el comando for(), que
permite repetir un mismo proceso sobre todas las variables, generando
así una visualización rápida de su comportamiento dentro del conjunto de
datos.
df_mca<-na.omit(df_mca)
for (i in 1:17){
plot(df_mca[,i],main=colnames(df_mca)[i],
ylab="Cantidad", col="steelblue", las=2)
}
A partir de estas gráficas se identificaron las opciones de respuesta
o categorías con menor frecuencia dentro de las variables
sociodemográficas y académicas. Sin embargo, se decidió mantener todas
las variables y sus categorías, ya que cada una aporta información
relevante para comprender la relación entre los factores
sociodemográficos y los resultados obtenidos en las pruebas ICFES.
##Analisis inicial de MCA
mca_result <- MCA(df_mca, graph = FALSE)
summary(mca_result)
##
## Call:
## MCA(X = df_mca, graph = FALSE)
##
##
## Eigenvalues
## Dim.1 Dim.2 Dim.3 Dim.4 Dim.5 Dim.6 Dim.7
## Variance 0.109 0.096 0.086 0.077 0.073 0.070 0.069
## % of var. 3.375 2.962 2.652 2.377 2.257 2.164 2.143
## Cumulative % of var. 3.375 6.337 8.990 11.366 13.623 15.787 17.930
## Dim.8 Dim.9 Dim.10 Dim.11 Dim.12 Dim.13 Dim.14
## Variance 0.067 0.066 0.065 0.065 0.064 0.064 0.063
## % of var. 2.060 2.038 2.017 2.002 1.987 1.963 1.944
## Cumulative % of var. 19.990 22.028 24.045 26.047 28.033 29.996 31.941
## Dim.15 Dim.16 Dim.17 Dim.18 Dim.19 Dim.20 Dim.21
## Variance 0.062 0.062 0.062 0.061 0.061 0.060 0.060
## % of var. 1.930 1.925 1.907 1.891 1.877 1.869 1.866
## Cumulative % of var. 33.871 35.795 37.703 39.593 41.470 43.339 45.205
## Dim.22 Dim.23 Dim.24 Dim.25 Dim.26 Dim.27 Dim.28
## Variance 0.060 0.060 0.059 0.059 0.059 0.058 0.058
## % of var. 1.857 1.853 1.829 1.825 1.819 1.805 1.794
## Cumulative % of var. 47.063 48.916 50.745 52.570 54.388 56.193 57.987
## Dim.29 Dim.30 Dim.31 Dim.32 Dim.33 Dim.34 Dim.35
## Variance 0.058 0.058 0.057 0.057 0.057 0.056 0.056
## % of var. 1.789 1.783 1.762 1.755 1.747 1.736 1.734
## Cumulative % of var. 59.776 61.559 63.322 65.077 66.824 68.560 70.294
## Dim.36 Dim.37 Dim.38 Dim.39 Dim.40 Dim.41 Dim.42
## Variance 0.056 0.055 0.055 0.054 0.054 0.053 0.053
## % of var. 1.718 1.713 1.694 1.681 1.656 1.647 1.635
## Cumulative % of var. 72.012 73.725 75.420 77.100 78.756 80.403 82.038
## Dim.43 Dim.44 Dim.45 Dim.46 Dim.47 Dim.48 Dim.49
## Variance 0.052 0.052 0.051 0.051 0.050 0.049 0.047
## % of var. 1.619 1.606 1.580 1.568 1.548 1.530 1.445
## Cumulative % of var. 83.657 85.263 86.843 88.411 89.959 91.488 92.933
## Dim.50 Dim.51 Dim.52 Dim.53 Dim.54 Dim.55
## Variance 0.044 0.041 0.040 0.036 0.035 0.032
## % of var. 1.364 1.274 1.241 1.118 1.096 0.975
## Cumulative % of var. 94.297 95.570 96.812 97.929 99.025 100.000
##
## Individuals (the 10 first)
## Dim.1 ctr cos2 Dim.2 ctr cos2 Dim.3 ctr cos2
## 1 | -0.219 0.006 0.021 | 0.050 0.000 0.001 | 0.159 0.004 0.011 |
## 2 | -0.479 0.028 0.031 | -0.131 0.002 0.002 | 0.185 0.005 0.005 |
## 3 | -0.236 0.007 0.018 | -0.263 0.009 0.022 | -0.209 0.007 0.014 |
## 4 | 0.153 0.003 0.005 | -0.183 0.005 0.008 | -0.476 0.035 0.053 |
## 5 | -0.272 0.009 0.042 | -0.430 0.025 0.104 | 0.255 0.010 0.037 |
## 6 | -0.600 0.043 0.143 | -0.124 0.002 0.006 | 0.426 0.028 0.072 |
## 7 | -0.244 0.007 0.055 | -0.136 0.003 0.017 | 0.232 0.008 0.050 |
## 8 | -0.174 0.004 0.020 | -0.043 0.000 0.001 | 0.093 0.001 0.006 |
## 9 | -0.307 0.011 0.081 | 0.061 0.001 0.003 | -0.003 0.000 0.000 |
## 10 | -0.184 0.004 0.019 | -0.112 0.002 0.007 | 0.249 0.009 0.034 |
##
## Categories (the 10 first)
## Dim.1 ctr cos2 v.test Dim.2 ctr cos2 v.test
## 2022 | 0.058 0.061 0.002 3.582 | -0.209 0.887 0.022 -12.838 |
## 2023 | -0.011 0.002 0.000 -0.739 | 0.202 0.891 0.023 13.111 |
## 2024 | -0.049 0.040 0.001 -2.871 | -0.009 0.001 0.000 -0.511 |
## MAÑANA | 0.138 0.320 0.009 8.111 | -0.344 2.255 0.053 -20.168 |
## TARDE | -0.163 0.600 0.019 -12.079 | -0.427 4.660 0.130 -31.523 |
## UNICA | 0.093 0.126 0.003 4.948 | 1.047 18.302 0.410 55.904 |
## 1 | 0.367 2.935 0.092 26.426 | -0.085 0.180 0.005 -6.123 |
## 2 | 0.014 0.003 0.000 0.717 | -0.262 1.115 0.025 -13.730 |
## 3 | -0.171 0.258 0.006 -6.615 | -0.105 0.111 0.002 -4.069 |
## 4 | -0.444 0.853 0.017 -11.461 | 0.752 2.786 0.049 19.406 |
## Dim.3 ctr cos2 v.test
## 2022 -0.006 0.001 0.000 -0.392 |
## 2023 0.002 0.000 0.000 0.104 |
## 2024 0.005 0.001 0.000 0.290 |
## MAÑANA 0.424 3.827 0.081 24.863 |
## TARDE -0.404 4.672 0.117 -29.871 |
## UNICA 0.136 0.343 0.007 7.238 |
## 1 0.493 6.753 0.165 35.534 |
## 2 -0.452 3.707 0.074 -23.691 |
## 3 -0.058 0.038 0.001 -2.261 |
## 4 -0.305 0.512 0.008 -7.868 |
##
## Categorical variables (eta2)
## Dim.1 Dim.2 Dim.3
## AÑO | 0.002 0.029 0.000 |
## JORNADA | 0.019 0.411 0.129 |
## GRUPO Y JORNADA.1_estandarizada | 0.176 0.190 0.189 |
## cole_area_ubicacion | 0.243 0.097 0.263 |
## cole_caracter | 0.131 0.456 0.283 |
## desemp_ingles | 0.306 0.025 0.031 |
## estu_dedicacioninternet | 0.172 0.024 0.041 |
## estu_dedicacionlecturadiaria | 0.045 0.033 0.085 |
## estu_discapacidad | 0.000 0.000 0.000 |
## edad_prueba | 0.138 0.029 0.143 |
Una de las características centrales de la técnica MCA (Análisis de
Correspondencias Múltiples) es el uso de representaciones visuales que
facilitan la interpretación de los resultados. Estas gráficas permiten
observar la relación entre las categorías de las variables
sociodemográficas y los desempeños en las pruebas ICFES, mostrando cómo
ciertos grupos de estudiantes tienden a agruparse según características
comunes o niveles de rendimiento.
Siguiendo la lógica del Análisis de Componentes Principales (ACP),
que busca reducir las dimensiones de un conjunto de datos creando nuevos
ejes o componentes que resumen la información de las variables
cuantitativas, el Análisis de Correspondencias Múltiples (ACM) aplica el
mismo principio, pero a variables categóricas.
En este caso, el ACM permite representar las categorías de las
variables sociodemográficas y académicas de los estudiantes en un
espacio común, facilitando la detección de patrones y asociaciones entre
ellas.
Una vez generadas las nuevas dimensiones, es fundamental identificar
qué porcentaje de la variabilidad total es explicado por cada una. Esto
se logra mediante la función get_eigenvalue(), que permite observar la
proporción de varianza o inercia explicada por cada eje del
análisis.
eigenvalues <- get_eigenvalue(mca_result)
head(eigenvalues)
## eigenvalue variance.percent cumulative.variance.percent
## Dim.1 0.10919401 3.375088 3.375088
## Dim.2 0.09583419 2.962148 6.337235
## Dim.3 0.08581457 2.652450 8.989686
## Dim.4 0.07688688 2.376504 11.366189
## Dim.5 0.07300806 2.256613 13.622802
## Dim.6 0.07001307 2.164040 15.786842
En la tabla anterior se observan, en las columnas, los nuevos
componentes o dimensiones generados por el análisis de correspondencia
múltiple (ACM). En la primera columna se presentan los eigenvalores, que
representan la cantidad de varianza o inercia explicada por cada eje. La
segunda columna indica el porcentaje de varianza total explicado por
cada una de las dimensiones, y la tercera muestra el porcentaje
acumulado, que refleja la proporción de información que logran resumir
los primeros ejes del análisis.
Además, para facilitar la interpretación visual, se puede emplear el
comando fviz_screeplot(), el cual permite graficar los porcentajes de
inercia explicados por cada dimensión. Este gráfico, conocido como
“scree plot”, ayuda a identificar cuántas dimensiones aportan
información significativa al modelo y cuáles tienen un peso menor en la
explicación de la variabilidad total del conjunto de datos.
fviz_screeplot(mca_result, addlabels = TRUE, ylim = c(0, 10),title = "Análisis de Correspondencias Múltiples (ACM)")
## Warning in geom_bar(stat = "identity", fill = barfill, color = barcolor, :
## Ignoring empty aesthetic: `width`.
Scree plot o porcentajes de inercia explicada por cada dimensión nueva.
El análisis MCA permite crear un biplot, que representa gráficamente
una nube de puntos para los individuos (filas) y otra para las variables
(columnas) contenidas en la matriz de datos. l biplot se genera con el
comando fviz_mca_biplot(), del paquete factoextra, el cual utiliza las
funciones gráficas de ggplot2 para su elaboración.
fviz_mca_biplot(mca_result, # resultados del análisis MCA
label = "none",
alpha.ind = 0.1, # nivel de transparencia de los puntos filas o casos
alpha.var = 1, # nivel de transparencia de los puntos columa o variables
max.overlaps = "ggrepel.max.overlaps",
ggtheme = theme_minimal()) # plantilla de estilo para la gráfica
## Warning in (function (mapping = NULL, data = NULL, stat = "identity", position
## = "identity", : Ignoring unknown parameters: `max.overlaps`
## Warning in (function (mapping = NULL, data = NULL, stat = "identity", position
## = "identity", : Ignoring unknown parameters: `max.overlaps`
Biplot o gráfica con la proyección de individuos y variables.
El biplot representa simultáneamente a los individuos y las
variables, mostrando su distribución sobre los ejes del análisis. En la
gráfica, los individuos aparecen como puntos azules y las variables como
triángulos rojos. Esta visualización permite identificar las relaciones
y asociaciones entre las variables categóricas y su vínculo con los
individuos. La distancia entre los puntos refleja su grado de similitud:
los individuos cercanos presentan características similares, mientras
que las modalidades próximas están asociadas a los mismos grupos de
individuos o a individuos con comportamientos parecidos.
En este análisis de correspondencias, es posible identificar el grado
de correlación entre las variables y sus categorías con cada una de las
dimensiones construidas. Esto permite determinar qué variables tienen
mayor influencia en cada eje del resumen. Para realizar este análisis se
emplea el comando dimdesc(), perteneciente a la librería
FactoMineR.
res.desc<-dimdesc(mca_result,
axes = c(1,2) #definición de los ejes o dimensiones a describir
)
Este comando genera un objeto tipo lista que almacena los valores de
correlación de las variables con las dimensiones seleccionadas. Luego,
se extraen dichos valores y se presentan en dos tablas por dimensión:
una muestra la relación de cada variable mediante el coeficiente de
determinación (R²) y su p-value, mientras que la otra incluye las
correlaciones de cada categoría y su p-value correspondiente.
Para acceder a los resultados de la dimensión 1, se utiliza el siguiente llamado:
res.desc[[1]]
##
## Link between the variable and the categorical variable (1-way anova)
## =============================================
## R2 p.value
## cole_area_ubicacion 0.242978276 0.000000e+00
## desemp_ingles 0.305946392 0.000000e+00
## fami_estratovivienda 0.196990921 0.000000e+00
## fami_tieneinternet 0.274709866 0.000000e+00
## GRUPO Y JORNADA.1_estandarizada 0.175773012 5.709280e-313
## estu_dedicacioninternet 0.172205308 7.194311e-311
## edad_prueba 0.138047914 4.166150e-238
## cole_caracter 0.130581096 4.483028e-231
## estu_horassemanatrabaja 0.101178488 8.797805e-175
## estu_dedicacionlecturadiaria 0.045294646 3.031684e-75
## estu_nacionalidad 0.028622965 9.482706e-48
## JORNADA 0.019423295 3.241272e-33
## estu_tieneetnia 0.018548420 6.418234e-33
## estu_genero 0.003592527 1.607978e-07
## AÑO 0.001913410 6.723460e-04
##
## Link between variable and the categories of the categorical variables
## ================================================================
## Estimate
## fami_tieneinternet=fami_tieneinternet_No 0.20199525
## desemp_ingles=A- 0.38869032
## cole_area_ubicacion=RURAL 0.28994338
## GRUPO Y JORNADA.1_estandarizada=1 0.25487928
## cole_caracter=NO APLICA 0.76873162
## fami_estratovivienda=Estrato 1 0.02330251
## edad_prueba=18 0.17853189
## fami_estratovivienda=Sin Estrato 0.19880971
## estu_horassemanatrabaja=Menos de 10 horas 0.03393161
## estu_dedicacioninternet=estu_dedicacioninternet_30 minutos o menos 0.11221351
## estu_dedicacioninternet=estu_dedicacioninternet_No Navega Internet 0.25354160
## estu_dedicacioninternet=estu_dedicacioninternet_Entre 30 y 60 minutos 0.02111769
## estu_nacionalidad=VENEZUELA 0.15156851
## estu_dedicacionlecturadiaria=estu_dedicacionlecturadiaria_30 minutos o menos 0.10626366
## estu_tieneetnia=estu_tieneetnia_Si 0.34821792
## desemp_ingles=A1 0.16001661
## edad_prueba=19 0.20542243
## estu_horassemanatrabaja=Entre 11 y 20 horas 0.02282672
## estu_horassemanatrabaja=Entre 21 y 30 horas 0.07772886
## edad_prueba=17 0.01530623
## JORNADA=MAÑANA 0.03825895
## estu_horassemanatrabaja=Más de 30 horas 0.05948944
## fami_estratovivienda=Estrato 5 0.14396129
## GRUPO Y JORNADA.1_estandarizada=3 0.07719518
## edad_prueba=20 0.29905483
## estu_genero=M 0.02005948
## JORNADA=UNICA 0.02318697
## fami_estratovivienda=Estrato 6 0.12380896
## AÑO=2022 0.01946232
## estu_dedicacionlecturadiaria=estu_dedicacionlecturadiaria_No leo por entretenimiento 0.05113245
## edad_prueba=21 0.24422543
## edad_prueba=14 -0.23411163
## AÑO=2024 -0.01589189
## fami_estratovivienda=Estrato 4 -0.03128953
## cole_caracter=TÉCNICO -0.21146896
## estu_genero=F -0.02005948
## estu_dedicacionlecturadiaria=estu_dedicacionlecturadiaria_Más de 2 horas -0.11103338
## edad_prueba=15 -0.19890634
## estu_dedicacionlecturadiaria=estu_dedicacionlecturadiaria_Entre 1 y 2 horas -0.07655262
## GRUPO Y JORNADA.1_estandarizada=4 -0.01320275
## estu_tieneetnia=estu_tieneetnia_No -0.34821792
## estu_dedicacioninternet=estu_dedicacioninternet_Entre 1 y 3 horas -0.15588833
## JORNADA=TARDE -0.06144592
## GRUPO Y JORNADA.1_estandarizada=6 -0.18635777
## estu_nacionalidad=COLOMBIA -0.19892155
## fami_estratovivienda=Estrato 2 -0.17417981
## desemp_ingles=B+ -0.36303766
## cole_caracter=ACADÉMICO -0.19717807
## GRUPO Y JORNADA.1_estandarizada=7 -0.32084040
## GRUPO Y JORNADA.1_estandarizada=5 -0.22974286
## cole_caracter=TÉCNICO/ACADÉMICO -0.36008459
## edad_prueba=16 -0.12782772
## estu_dedicacioninternet=estu_dedicacioninternet_Más de 3 horas -0.23098448
## desemp_ingles=B1 -0.17140295
## desemp_ingles=A2 -0.01426631
## fami_estratovivienda=Estrato 3 -0.28441313
## estu_horassemanatrabaja=0 -0.19397662
## fami_tieneinternet=fami_tieneinternet_Si -0.20199525
## cole_area_ubicacion=URBANO -0.28994338
## p.value
## fami_tieneinternet=fami_tieneinternet_No 0.000000e+00
## desemp_ingles=A- 0.000000e+00
## cole_area_ubicacion=RURAL 0.000000e+00
## GRUPO Y JORNADA.1_estandarizada=1 2.919198e-161
## cole_caracter=NO APLICA 3.302275e-129
## fami_estratovivienda=Estrato 1 2.917840e-114
## edad_prueba=18 3.420353e-114
## fami_estratovivienda=Sin Estrato 7.801047e-99
## estu_horassemanatrabaja=Menos de 10 horas 1.860935e-91
## estu_dedicacioninternet=estu_dedicacioninternet_30 minutos o menos 2.215716e-90
## estu_dedicacioninternet=estu_dedicacioninternet_No Navega Internet 6.875937e-67
## estu_dedicacioninternet=estu_dedicacioninternet_Entre 30 y 60 minutos 1.256106e-58
## estu_nacionalidad=VENEZUELA 1.680778e-49
## estu_dedicacionlecturadiaria=estu_dedicacionlecturadiaria_30 minutos o menos 2.585175e-40
## estu_tieneetnia=estu_tieneetnia_Si 6.418234e-33
## desemp_ingles=A1 5.021033e-32
## edad_prueba=19 1.255899e-29
## estu_horassemanatrabaja=Entre 11 y 20 horas 5.210423e-26
## estu_horassemanatrabaja=Entre 21 y 30 horas 1.058757e-17
## edad_prueba=17 9.114312e-17
## JORNADA=MAÑANA 4.371040e-16
## estu_horassemanatrabaja=Más de 30 horas 5.604233e-12
## fami_estratovivienda=Estrato 5 1.700259e-11
## GRUPO Y JORNADA.1_estandarizada=3 3.508546e-11
## edad_prueba=20 9.670219e-09
## estu_genero=M 1.607978e-07
## JORNADA=UNICA 7.380898e-07
## fami_estratovivienda=Estrato 6 1.320025e-05
## AÑO=2022 3.392378e-04
## estu_dedicacionlecturadiaria=estu_dedicacionlecturadiaria_No leo por entretenimiento 3.424806e-02
## edad_prueba=21 4.207292e-02
## edad_prueba=14 1.074377e-02
## AÑO=2024 4.084795e-03
## fami_estratovivienda=Estrato 4 1.863426e-03
## cole_caracter=TÉCNICO 1.161989e-04
## estu_genero=F 1.607978e-07
## estu_dedicacionlecturadiaria=estu_dedicacionlecturadiaria_Más de 2 horas 2.832347e-28
## edad_prueba=15 3.548291e-30
## estu_dedicacionlecturadiaria=estu_dedicacionlecturadiaria_Entre 1 y 2 horas 2.599530e-30
## GRUPO Y JORNADA.1_estandarizada=4 1.185400e-30
## estu_tieneetnia=estu_tieneetnia_No 6.418234e-33
## estu_dedicacioninternet=estu_dedicacioninternet_Entre 1 y 3 horas 7.215252e-34
## JORNADA=TARDE 6.812843e-34
## GRUPO Y JORNADA.1_estandarizada=6 9.340869e-45
## estu_nacionalidad=COLOMBIA 5.282842e-50
## fami_estratovivienda=Estrato 2 2.460021e-50
## desemp_ingles=B+ 2.100170e-53
## cole_caracter=ACADÉMICO 3.075005e-56
## GRUPO Y JORNADA.1_estandarizada=7 1.448988e-58
## GRUPO Y JORNADA.1_estandarizada=5 5.991704e-77
## cole_caracter=TÉCNICO/ACADÉMICO 2.499810e-115
## edad_prueba=16 2.386250e-117
## estu_dedicacioninternet=estu_dedicacioninternet_Más de 3 horas 3.193781e-124
## desemp_ingles=B1 7.628288e-135
## desemp_ingles=A2 1.807949e-145
## fami_estratovivienda=Estrato 3 3.181207e-162
## estu_horassemanatrabaja=0 6.979843e-178
## fami_tieneinternet=fami_tieneinternet_Si 0.000000e+00
## cole_area_ubicacion=URBANO 0.000000e+00
Para acceder a los resultados de la dimensión 2, se utiliza el siguiente llamado:
res.desc[[2]]
##
## Link between the variable and the categorical variable (1-way anova)
## =============================================
## R2 p.value
## JORNADA 0.410818199 0.000000e+00
## GRUPO Y JORNADA.1_estandarizada 0.189821544 0.000000e+00
## cole_caracter 0.456011246 0.000000e+00
## estu_genero 0.244047675 0.000000e+00
## cole_area_ubicacion 0.097485803 3.508654e-172
## estu_horassemanatrabaja 0.049991589 2.276165e-83
## estu_dedicacionlecturadiaria 0.033269224 1.193334e-54
## AÑO 0.028987355 1.886748e-49
## edad_prueba 0.029419307 5.084400e-44
## desemp_ingles 0.025031136 1.013888e-40
## estu_dedicacioninternet 0.023718032 1.627863e-38
## fami_estratovivienda 0.020016996 1.001511e-30
## fami_tieneinternet 0.014876857 1.097343e-26
## estu_nacionalidad 0.005378851 6.113236e-09
##
## Link between variable and the categories of the categorical variables
## ================================================================
## Estimate
## estu_genero=M 0.1548879884
## cole_caracter=TÉCNICO/ACADÉMICO 0.1013930756
## JORNADA=UNICA 0.2955585810
## cole_area_ubicacion=RURAL 0.1720524969
## GRUPO Y JORNADA.1_estandarizada=8 0.7950366982
## GRUPO Y JORNADA.1_estandarizada=9 0.9803176863
## cole_caracter=NO APLICA 0.6303980238
## AÑO=2023 0.0641323100
## edad_prueba=18 0.0425963971
## fami_tieneinternet=fami_tieneinternet_Si 0.0440372755
## estu_horassemanatrabaja=Entre 11 y 20 horas 0.0536754963
## estu_dedicacionlecturadiaria=estu_dedicacionlecturadiaria_No leo por entretenimiento 0.0936184807
## estu_dedicacioninternet=estu_dedicacioninternet_Más de 3 horas 0.0637224275
## desemp_ingles=B1 0.0519452808
## desemp_ingles=B+ 0.2220569611
## estu_horassemanatrabaja=Entre 21 y 30 horas 0.0817201336
## fami_estratovivienda=Estrato 2 0.0249927053
## edad_prueba=19 0.0504248781
## estu_nacionalidad=PERÚ 1.3645709469
## fami_estratovivienda=Estrato 3 0.0103162649
## estu_dedicacionlecturadiaria=estu_dedicacionlecturadiaria_Entre 30 y 60 minutos 0.0381062441
## fami_estratovivienda=Estrato 4 0.0424656905
## edad_prueba=21 0.3098322204
## fami_estratovivienda=Sin Estrato 0.0171308284
## fami_estratovivienda=Estrato 6 0.0826715103
## estu_nacionalidad=VANUATU -0.8184577207
## fami_estratovivienda=Estrato 5 -0.1113049154
## estu_dedicacioninternet=estu_dedicacioninternet_Entre 30 y 60 minutos -0.0102929781
## estu_horassemanatrabaja=Más de 30 horas -0.0053024001
## desemp_ingles=A2 -0.0605758920
## GRUPO Y JORNADA.1_estandarizada=3 -0.3470454658
## GRUPO Y JORNADA.1_estandarizada=6 -0.1853883705
## GRUPO Y JORNADA.1_estandarizada=1 -0.3408441319
## desemp_ingles=A- -0.1150231500
## estu_dedicacionlecturadiaria=estu_dedicacionlecturadiaria_Más de 2 horas -0.0667143083
## edad_prueba=16 -0.1030045291
## fami_tieneinternet=fami_tieneinternet_No -0.0440372755
## estu_dedicacioninternet=estu_dedicacioninternet_30 minutos o menos -0.0956449846
## GRUPO Y JORNADA.1_estandarizada=5 -0.1061418034
## fami_estratovivienda=Estrato 1 -0.0662720840
## estu_horassemanatrabaja=Menos de 10 horas -0.0002759057
## estu_dedicacionlecturadiaria=estu_dedicacionlecturadiaria_Entre 1 y 2 horas -0.0860170220
## AÑO=2022 -0.0630744664
## GRUPO Y JORNADA.1_estandarizada=2 -0.3955955605
## estu_horassemanatrabaja=0 -0.1298173240
## GRUPO Y JORNADA.1_estandarizada=4 -0.0816154166
## JORNADA=MAÑANA -0.1349609437
## cole_area_ubicacion=URBANO -0.1720524969
## JORNADA=TARDE -0.1605976374
## cole_caracter=ACADÉMICO -0.2325808627
## cole_caracter=TÉCNICO -0.4992102368
## estu_genero=F -0.1548879884
## p.value
## estu_genero=M 0.000000e+00
## cole_caracter=TÉCNICO/ACADÉMICO 0.000000e+00
## JORNADA=UNICA 0.000000e+00
## cole_area_ubicacion=RURAL 3.508654e-172
## GRUPO Y JORNADA.1_estandarizada=8 2.556045e-88
## GRUPO Y JORNADA.1_estandarizada=9 4.135376e-88
## cole_caracter=NO APLICA 1.771415e-77
## AÑO=2023 1.074784e-39
## edad_prueba=18 2.588165e-33
## fami_tieneinternet=fami_tieneinternet_Si 1.097343e-26
## estu_horassemanatrabaja=Entre 11 y 20 horas 4.702607e-26
## estu_dedicacionlecturadiaria=estu_dedicacionlecturadiaria_No leo por entretenimiento 1.314734e-25
## estu_dedicacioninternet=estu_dedicacioninternet_Más de 3 horas 1.717401e-21
## desemp_ingles=B1 1.052950e-20
## desemp_ingles=B+ 3.657106e-18
## estu_horassemanatrabaja=Entre 21 y 30 horas 5.338456e-14
## fami_estratovivienda=Estrato 2 4.220536e-12
## edad_prueba=19 8.949159e-09
## estu_nacionalidad=PERÚ 8.294698e-08
## fami_estratovivienda=Estrato 3 1.272514e-03
## estu_dedicacionlecturadiaria=estu_dedicacionlecturadiaria_Entre 30 y 60 minutos 1.652755e-03
## fami_estratovivienda=Estrato 4 2.165817e-03
## edad_prueba=21 3.238880e-03
## fami_estratovivienda=Sin Estrato 2.610858e-02
## fami_estratovivienda=Estrato 6 4.002939e-02
## estu_nacionalidad=VANUATU 3.303600e-03
## fami_estratovivienda=Estrato 5 2.286903e-03
## estu_dedicacioninternet=estu_dedicacioninternet_Entre 30 y 60 minutos 1.607059e-03
## estu_horassemanatrabaja=Más de 30 horas 1.339445e-03
## desemp_ingles=A2 7.617817e-04
## GRUPO Y JORNADA.1_estandarizada=3 4.683270e-05
## GRUPO Y JORNADA.1_estandarizada=6 1.799015e-09
## GRUPO Y JORNADA.1_estandarizada=1 8.811996e-10
## desemp_ingles=A- 2.399864e-11
## estu_dedicacionlecturadiaria=estu_dedicacionlecturadiaria_Más de 2 horas 4.075172e-12
## edad_prueba=16 3.787128e-24
## fami_tieneinternet=fami_tieneinternet_No 1.097343e-26
## estu_dedicacioninternet=estu_dedicacioninternet_30 minutos o menos 1.294598e-28
## GRUPO Y JORNADA.1_estandarizada=5 1.552182e-29
## fami_estratovivienda=Estrato 1 1.259694e-30
## estu_horassemanatrabaja=Menos de 10 horas 9.487607e-31
## estu_dedicacionlecturadiaria=estu_dedicacionlecturadiaria_Entre 1 y 2 horas 7.139460e-31
## AÑO=2022 4.135037e-38
## GRUPO Y JORNADA.1_estandarizada=2 2.085268e-43
## estu_horassemanatrabaja=0 1.883588e-82
## GRUPO Y JORNADA.1_estandarizada=4 5.807748e-86
## JORNADA=MAÑANA 6.934744e-93
## cole_area_ubicacion=URBANO 3.508654e-172
## JORNADA=TARDE 1.781711e-233
## cole_caracter=ACADÉMICO 6.625738e-252
## cole_caracter=TÉCNICO 3.320091e-285
## estu_genero=F 0.000000e+00
En el análisis de los resultados del MCA, se pueden examinar por
separado las variables y los individuos. En este caso, se analiza el
comportamiento de las variables o columnas del data.frame(). Para ello,
se utiliza el comando get_mca_var(), que permite extraer los resultados
de las categorías de las variables activas. Esta función genera una
lista con las coordenadas de las categorías en cada dimensión, los
valores de coseno al cuadrado y la contribución de cada categoría a los
factores o dimensiones.
variables <- get_mca_var(mca_result)
variables
## Multiple Correspondence Analysis Results for variables
## ===================================================
## Name Description
## 1 "$coord" "Coordinates for categories"
## 2 "$cos2" "Cos2 for categories"
## 3 "$contrib" "contributions of categories"
También es posible acceder de forma individual a los valores
contenidos en cada elemento de la lista generada, lo que permite
examinar con mayor detalle los resultados de las categorías de las
variables. A continuación, se muestra un ejemplo de esta revisión.
#coordenadas
head(variables$coord)
## Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
## 2022 0.05831692 -0.208993688 -0.006374626 -0.02165813 -0.35334185
## 2023 -0.01138526 0.201919439 0.001594632 0.13554865 0.26603685
## 2024 -0.04867274 -0.008662817 0.004922556 -0.13115621 0.07097576
## MAÑANA 0.13826391 -0.343793984 0.423827010 -0.77830001 0.44067262
## TARDE -0.16346502 -0.426607607 -0.404247679 0.31535221 -0.54822223
## UNICA 0.09265279 1.046903344 0.135550431 0.40576181 0.33705004
#cosenos cuadrados: calidad en el mapa de factores
head(variables$cos2)
## Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
## 2022 1.681782e-03 2.159966e-02 2.009509e-05 0.0002319651 0.061740582
## 2023 7.162957e-05 2.253007e-02 1.405165e-06 0.0101530524 0.039110183
## 2024 1.080327e-03 3.422173e-05 1.105007e-05 0.0078444311 0.002297227
## MAÑANA 8.622420e-03 5.330992e-02 8.101935e-02 0.2732156571 0.087587807
## TARDE 1.912148e-02 1.302354e-01 1.169410e-01 0.0711645373 0.215072626
## UNICA 3.208191e-03 4.095967e-01 6.866653e-03 0.0615298176 0.042455314
#contribucion en los factores o dimensions
head(variables$contrib)
## Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
## 2022 0.060620754 0.887108795 9.216783e-04 0.01187465 3.3285137
## 2023 0.002485345 0.890707661 6.203822e-05 0.50030807 2.0296081
## 2024 0.039970565 0.001442664 5.202210e-04 0.41218575 0.1271209
## MAÑANA 0.320112871 2.255071895 3.827371e+00 14.40542635 4.8634633
## TARDE 0.600422738 4.659539420 4.672403e+00 3.17355311 10.1006365
## UNICA 0.125809991 18.301626380 3.426398e-01 3.42678654 2.4900894
Con los resultados del MCA es posible visualizar gráficamente la asociación de cada variable con las dimensiones o factores obtenidos. Para ello, se emplea el comando fviz_mca_var() con el argumento choice = “mca.cor”, que permite representar dichas correlaciones de la siguiente manera:
fviz_mca_var(mca_result,
choise="mca.cor", #tipo de analisis solicitado: correlaciones
repel=TRUE, #evitar la superposicion de etiquetas
ggtheme= theme_minimal()
)
Biplot de correlaciones entre variables y dimensiones.
El biplot de correlaciones muestra la relación entre las variables y
las dimensiones del análisis. En esta gráfica se pueden identificar las
variables que presentan mayor correlación con cada factor, representadas
según las coordenadas que reflejan los valores de las correlaciones
cuadráticas.
Aunque la gráfica anterior muestra la correlación general de las
variables con las dimensiones, no permite visualizar las categorías de
respuesta dentro del mismo plano. Por ello, es necesario utilizar las
coordenadas de cada categoría, obtenidas previamente y accesibles
mediante el comando (variable $coord). Con el uso del comando
fviz_mca_var(), es posible representar gráficamente estas coordenadas y
evaluar visualmente la asociación entre cada categoría y las dimensiones
o factores del análisis.
fviz_mca_var(mca_result,
repel=TRUE,
ggtheme= theme_minimal(),
max.overlps="ggrepel.max.overlaps",
col.var = "black",
shape.var = 15
)
Biplot de asociación entre categorías y dimensiones
El biplot de asociación entre categorías y dimensiones, con ajustes en color y forma, muestra las relaciones entre las categorías de las variables. Su interpretación se basa en los siguientes criterios:
Las categorías con perfiles similares se agrupan o aparecen cercanas entre sí.
Las variables con correlaciones negativas se ubican en cuadrantes opuestos respecto al origen.
La distancia de cada punto al origen indica la calidad de su representación: las categorías más alejadas están mejor representadas en el mapa biplot.
En el biplot generado a partir de los dos primeros factores, se
observa que el primer factor explica el 3.6% de la varianza y el
segundo, el 2.5%, sumando en total un 6.1% del comportamiento de los
datos analizados.
Dado que las dimensiones creadas representan bajos niveles de varianza, no todos los puntos se proyectan con igual precisión en la gráfica. Por ello, es necesario evaluar la calidad de la representación mediante los cosenos cuadráticos (cos²), los cuales indican el grado de asociación entre cada categoría y una dimensión específica.
Los valores de cos² para cada categoría pueden obtenerse con el siguiente comando:
head(round(variables $ cos2, 3), 103)
## Dim 1 Dim 2 Dim 3 Dim 4
## 2022 0.002 0.022 0.000 0.000
## 2023 0.000 0.023 0.000 0.010
## 2024 0.001 0.000 0.000 0.008
## MAÑANA 0.009 0.053 0.081 0.273
## TARDE 0.019 0.130 0.117 0.071
## UNICA 0.003 0.410 0.007 0.062
## 1 0.092 0.005 0.165 0.034
## 2 0.000 0.025 0.074 0.000
## 3 0.006 0.002 0.001 0.001
## 4 0.017 0.049 0.008 0.004
## 5 0.044 0.017 0.005 0.068
## 6 0.025 0.005 0.014 0.037
## 7 0.034 0.000 0.004 0.015
## 8 0.000 0.051 0.001 0.026
## 9 0.000 0.051 0.005 0.010
## RURAL 0.243 0.097 0.263 0.002
## URBANO 0.243 0.097 0.263 0.002
## ACADÉMICO 0.032 0.140 0.078 0.086
## NO APLICA 0.074 0.044 0.192 0.001
## TÉCNICO 0.002 0.157 0.056 0.011
## TÉCNICO/ACADÉMICO 0.066 0.334 0.004 0.058
## A- 0.230 0.006 0.026 0.014
## A1 0.018 0.000 0.002 0.007
## A2 0.083 0.001 0.011 0.004
## B+ 0.031 0.010 0.001 0.000
## B1 0.077 0.011 0.006 0.000
## estu_dedicacioninternet_30 minutos o menos 0.052 0.016 0.008 0.007
## estu_dedicacioninternet_Entre 1 y 3 horas 0.019 0.000 0.004 0.020
## estu_dedicacioninternet_Entre 30 y 60 minutos 0.034 0.001 0.015 0.001
## estu_dedicacioninternet_Más de 3 horas 0.071 0.012 0.020 0.003
## estu_dedicacioninternet_No Navega Internet 0.038 0.000 0.006 0.078
## estu_dedicacionlecturadiaria_30 minutos o menos 0.023 0.000 0.016 0.011
## estu_dedicacionlecturadiaria_Entre 1 y 2 horas 0.017 0.017 0.014 0.039
## estu_dedicacionlecturadiaria_Entre 30 y 60 minutos 0.000 0.001 0.000 0.001
## estu_dedicacionlecturadiaria_Más de 2 horas 0.016 0.006 0.057 0.060
## estu_dedicacionlecturadiaria_No leo por entretenimiento 0.001 0.014 0.013 0.031
## estu_discapacidad.N 0.000 0.000 0.000 0.012
## S 0.000 0.000 0.000 0.012
## 12 0.000 0.000 0.000 0.000
## 13 0.000 0.000 0.002 0.006
## 14 0.001 0.000 0.001 0.000
## 15 0.017 0.000 0.049 0.000
## 16 0.067 0.013 0.050 0.000
## 17 0.009 0.000 0.022 0.000
## 18 0.065 0.019 0.046 0.000
## 19 0.017 0.004 0.008 0.004
## 20 0.004 0.000 0.002 0.014
## 21 0.001 0.001 0.001 0.001
## F 0.004 0.244 0.124 0.091
## M 0.004 0.244 0.124 0.091
## 0 0.101 0.047 0.080 0.018
## Entre 11 y 20 horas 0.014 0.015 0.004 0.001
## Entre 21 y 30 horas 0.010 0.007 0.007 0.010
## Más de 30 horas 0.006 0.001 0.001 0.000
## Menos de 10 horas 0.052 0.017 0.061 0.008
## CIÉNAGA 0.000 0.000 0.000 0.000
## SANTA MARTA 0.000 0.000 0.000 0.000
## COLOMBIA 0.029 0.000 0.028 0.000
## PERÚ 0.000 0.004 0.005 0.000
## VANUATU 0.000 0.001 0.001 0.006
## VENEZUELA 0.028 0.000 0.029 0.000
## estu_tieneetnia_No 0.019 0.000 0.017 0.020
## estu_tieneetnia_Si 0.019 0.000 0.017 0.020
## Estrato 1 0.065 0.017 0.000 0.127
## Estrato 2 0.029 0.006 0.002 0.007
## Estrato 3 0.092 0.001 0.003 0.101
## Estrato 4 0.001 0.001 0.009 0.010
## Estrato 5 0.006 0.001 0.005 0.005
## Estrato 6 0.002 0.001 0.001 0.001
## Sin Estrato 0.057 0.001 0.006 0.009
## fami_tieneinternet_No 0.275 0.015 0.010 0.151
## fami_tieneinternet_Si 0.275 0.015 0.010 0.151
## Dim 5
## 2022 0.062
## 2023 0.039
## 2024 0.002
## MAÑANA 0.088
## TARDE 0.215
## UNICA 0.042
## 1 0.082
## 2 0.000
## 3 0.134
## 4 0.118
## 5 0.046
## 6 0.069
## 7 0.055
## 8 0.037
## 9 0.020
## RURAL 0.038
## URBANO 0.038
## ACADÉMICO 0.002
## NO APLICA 0.050
## TÉCNICO 0.025
## TÉCNICO/ACADÉMICO 0.009
## A- 0.004
## A1 0.000
## A2 0.003
## B+ 0.004
## B1 0.000
## estu_dedicacioninternet_30 minutos o menos 0.016
## estu_dedicacioninternet_Entre 1 y 3 horas 0.011
## estu_dedicacioninternet_Entre 30 y 60 minutos 0.001
## estu_dedicacioninternet_Más de 3 horas 0.001
## estu_dedicacioninternet_No Navega Internet 0.010
## estu_dedicacionlecturadiaria_30 minutos o menos 0.006
## estu_dedicacionlecturadiaria_Entre 1 y 2 horas 0.022
## estu_dedicacionlecturadiaria_Entre 30 y 60 minutos 0.000
## estu_dedicacionlecturadiaria_Más de 2 horas 0.024
## estu_dedicacionlecturadiaria_No leo por entretenimiento 0.012
## estu_discapacidad.N 0.054
## S 0.054
## 12 0.000
## 13 0.004
## 14 0.014
## 15 0.000
## 16 0.008
## 17 0.010
## 18 0.034
## 19 0.021
## 20 0.011
## 21 0.001
## F 0.028
## M 0.028
## 0 0.000
## Entre 11 y 20 horas 0.016
## Entre 21 y 30 horas 0.001
## Más de 30 horas 0.003
## Menos de 10 horas 0.009
## CIÉNAGA 0.007
## SANTA MARTA 0.007
## COLOMBIA 0.000
## PERÚ 0.003
## VANUATU 0.001
## VENEZUELA 0.000
## estu_tieneetnia_No 0.002
## estu_tieneetnia_Si 0.002
## Estrato 1 0.004
## Estrato 2 0.030
## Estrato 3 0.007
## Estrato 4 0.004
## Estrato 5 0.000
## Estrato 6 0.000
## Sin Estrato 0.000
## fami_tieneinternet_No 0.007
## fami_tieneinternet_Si 0.007
Cuando una categoría está bien representada por las dos dimensiones principales, la suma de sus cosenos cuadráticos (cos²) se aproxima a 1, indicando una buena calidad de representación. No obstante, en algunos casos es necesario considerar más de dos dimensiones para describir adecuadamente los datos.
La calidad de representación de las categorías puede analizarse mediante una gráfica de barras, utilizando la variable $cos2 dentro del comando fviz_cos2(), lo que permite visualizar de forma sencilla qué categorías se ajustan mejor al modelo.
fviz_cos2(mca_result,
choice = "var", # selección de las varianzas
axes = 1:2, top = 30) # ejes o dimensiones considerar en la gráfica)
La gráfica permite identificar que las cinco primeras categorías con
mayores valores de cos² son las mejor representadas en el diagrama de
dispersión. Estas pertenecen principalmente a las variables “unica” y
“tecnico/academico”. En contraste, las categorías con valores inferiores
a 0.2 presentan una representación menos precisa, por lo que su
interpretación debe hacerse con precaución, pudiendo requerir un
análisis con más dimensiones.
Además, la calidad de representación puede visualizarse directamente en el biplot ajustando el color de los puntos según el valor de cos². Esto se logra con el argumento col.var=, combinado con gradient.cols=, que permite crear un gradiente de colores. Por ejemplo, al definir gradient.cols =c(“#00AFBB”, “#E7B800”, “#FC4E07”), las categorías con bajo cos² aparecerán en amarillo, las de valores intermedios en azul verdozo, y las mejor representadas (alto cos²) en Naranja.
fviz_mca_var(mca_result,
col.var = "contrib", # Colorea según la contribución
gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
repel = TRUE,
title = "Contribución de las Variables a las Dimensiones 1 y 2")
Biplot de asociación entre categorías y dimensiones con señalización de la calidad de representación.
Finalmente, resulta esencial identificar las categorías que tienen mayor influencia en la construcción de las dimensiones o factores del análisis, más allá de las variables a las que pertenecen. Para ello, se analiza la contribución porcentual de cada categoría en la definición de los ejes obtenidos.
Una forma inicial de revisar estos valores es utilizando el argumento $contrib, que permite mostrar una tabla con los porcentajes de contribución de cada categoría en cada dimensión del MCA.
head(round(variables $ contrib, 2))
## Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
## 2022 0.06 0.89 0.00 0.01 3.33
## 2023 0.00 0.89 0.00 0.50 2.03
## 2024 0.04 0.00 0.00 0.41 0.13
## MAÑANA 0.32 2.26 3.83 14.41 4.86
## TARDE 0.60 4.66 4.67 3.17 10.10
## UNICA 0.13 18.30 0.34 3.43 2.49
En esta tabla, las filas corresponden a las categorías activas incluidas en el análisis, mientras que las columnas representan las dimensiones creadas. Las categorías con mayores valores porcentuales son las que más contribuyen a la formación de cada dimensión y, por tanto, tienen una mayor influencia en la explicación de la variabilidad del conjunto de datos.
De manera visual, esta contribución puede representarse con una gráfica de barras utilizando el comando fviz_contrib(), que permite mostrar de forma clara qué categorías aportan más a cada dimensión del análisis.
#contribucion de las catergorias a la dimension 1.
fviz_contrib(mca_result, #objeto tipo lista con resultados mca
choice = "var", #criterio a representar: varianza
axes = 1, # selección del eje o dimensión a analizar = eje 1
top = 20) # selección de las 15 categorías con mayor contribución
Contribución de las categorías a las dimensiones 1 y 2.
#contribucion de las catergorias a la dimension 2.
fviz_contrib(mca_result, #objeto tipo lista con resultados mca
choice = "var", #criterio a representar: varianza
axes = 2, # selección del eje o dimensión a analizar = eje 2
top = 17) # selección de las 15 categorías con mayor contribución
Contribución de las categorías a las dimensiones 1 y 2.
En las gráficas de contribución, la línea roja punteada indica el valor promedio esperado si todas las categorías aportaran de forma uniforme. Las categorías que se ubican por encima de esta línea tienen una contribución relevante a la dimensión correspondiente, mientras que aquellas por debajo presentan una influencia menor.
A partir de los resultados obtenidos, se observa lo siguiente:
En la dimensión 1, 12 categorías destacan por su alta contribución. Entre ellas, las categorías rural de “area urbana”, No de “familia tiene internet”,y otro mas .
En la dimensión 2, el número de categorías que superan el promedio es mayor. Las cinco más influyentes son de “unica”, la de “Jornada eduacativa”, “Tecnico/academico” de “caracter del colegio”, entre otras.
También es posible calcular la contribución total de cada categoría a las dimensiones de interés, en este caso, los ejes 1 y 2. Para ello, se emplea el mismo comando fviz_contrib(), ajustando el argumento axes= para especificar las dimensiones que se desean analizar.
# Total contribution to dimension 1 and 2
fviz_contrib(mca_result, #objeto tipo lista con resultados mca
choice = "var", #criterio de representación = varianzas
axes = 1:2, # ejes seleccionados en la representación = ejes 1 y 2 simultáneos
top = 20) #selección de las 20 categorías con mayor contribución
Contribución total de las categorías a las dimensiones 1 y 2.
En el gráfico “Contribution of variables to Dim-1-2” se presentan las contribuciones de las distintas variables a la conformación de las dos primeras dimensiones resultantes del Análisis de Correspondencias Múltiples (MCA). Este gráfico permite identificar cuáles variables o categorías tienen una mayor influencia en la estructura factorial del análisis, es decir, cuáles son las que más aportan a la explicación de la variabilidad total de los datos.
En este caso, las variables que presentan las contribuciones más altas son “R”, “ÚNICA”, “TÉCNICO/ACADÉMICO”, “fami_tieneinternet_No”, “TÉCNICO” y “estu_genero_M”. Estas categorías superan la línea de referencia (línea roja punteada), la cual representa la contribución promedio esperada. Esto indica que dichas variables son las que más influyen en la conformación de las Dimensiones 1 y 2, y por lo tanto, son las más relevantes para diferenciar a los individuos dentro del conjunto de datos.
En términos interpretativos, se puede afirmar que las características institucionales (como el tipo de colegio o su carácter académico/técnico) y los factores sociodemográficos (como el acceso al servicio de internet en el hogar y el género del estudiante) son los elementos que más inciden en la estructura de la información analizada. Esto sugiere que las diferencias entre los estudiantes pueden estar fuertemente asociadas con el contexto educativo y social en el que se desarrollan.
Por ejemplo, la variable “fami_tieneinternet_No” indica que la carencia de acceso a internet podría estar generando una separación importante entre grupos de estudiantes, posiblemente vinculada a condiciones socioeconómicas o tecnológicas desiguales. Asimismo, el género (estu_genero_M) y el carácter del colegio (TÉCNICO/ACADÉMICO, TÉCNICO) parecen ser factores diferenciadores dentro del conjunto, reflejando posibles patrones de comportamiento, desempeño o acceso a recursos educativos distintos según estas categorías.
Por otro lado, las variables que se encuentran con valores de contribución por debajo de la línea de referencia, como “GRUPO Y JORNADA estandarizada”, “dedicación a internet”, “dedicación a la lectura diaria”, o algunas categorías relacionadas con el nivel educativo de los padres, presentan una influencia menor en la formación de los ejes factoriales. Esto implica que dichas variables no aportan de manera significativa a la explicación de la variabilidad principal del conjunto de datos, aunque sí pueden contribuir de manera marginal al análisis general.
En conjunto, el gráfico permite concluir que las dimensiones 1 y 2 del MCA están principalmente determinadas por variables de tipo institucional y socioeconómico, mientras que las variables relacionadas con hábitos personales o de estudio tienen un peso menor en la estructura global. Esto proporciona una primera aproximación sobre los factores que más influyen en la diferenciación del perfil de los estudiantes, información que puede ser complementada posteriormente con los gráficos de individuos o con el análisis de contribuciones específicas por categoría.
La contribución de las categorías también puede visualizarse directamente en el biplot, utilizando la coloración de los puntos según el nivel de aporte de cada una. Esto se logra mediante el argumento col.var = “contrib”, que asigna colores en función del grado de contribución de las categorías a las dimensiones, de la siguiente forma:
fviz_mca_var(mca_result,
col.var = "contrib", # Colorea según la contribución
gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
repel = TRUE,
title = "Contribución de las Variables a las Dimensiones 1 y 2",
ggtheme = theme_minimal())
Biplot de distribución de las categorías activas señaladas por su contribución a cada dimensión.