ACM

El análisis de correspondencia múltiple (ACM) es una extensión del análisis de correspondencia simple para resumir y visualizar una tabla de datos que contiene más de dos variables categóricas. También puede verse como una generalización del análisis de componentes principales cuando las variables a analizar son categóricas en lugar de cuantitativas.

El ACM se usa generalmente para analizar un conjunto de datos de una encuesta, sus individuos, variables y categorías. El objetivo es identificar:

Las asociaciones entre categorías de variables. Las preguntas son las mismas que para un PCA. Primero, se quiere ver la relación entre variables y las asociaciones entre categorías. Dos categorías están próximas entre sí si a menudo se toman juntas. En segundo lugar, también interesa buscar una o varias variables sintéticas continuas para resumir las categóricas. En tercer lugar, se caracterizan grupos de individuos por categorías. Un grupo de personas con perfil similar en sus respuestas a las preguntas.Dos individuos están cerca el uno del otro si respondieron a las preguntas de la misma manera. No interesa tanto los individuos como tal si no las poblaciones: ¿Hay grupos de individuos?

Comenzamos instalando los paquetes necesarios para el análisis de correspondencias múltiples y activándolo

library(FactoMineR)
library(ggplot2)
library(FactoClass)
library(factoextra)
library(Rcpp)
library(broom)
library(pander)
library(corrplot)
library(gridExtra)
library(xfun)
## Warning: package 'xfun' was built under R version 4.2.3
## 
## Attaching package: 'xfun'
## The following objects are masked from 'package:base':
## 
##     attr, isFALSE
library(tinytex)
## Warning: package 'tinytex' was built under R version 4.2.3

Vamos a utilizar los datos “admi” del paquete FactoClass, que son los estudiantes admitidos a las 7 carreras de la Facultad de ciencias de la Universidad Nacional de Colombia (Bogotá) en el primer trimestre del 2013. Estos datos poseen información de los puntajes obtenidos por estos estudiantes (445 admitidos) en el examen de ingreso, así como también algunas variables de información sociodemográfica.

data(admi)
DatosInicial <- subset(admi, select = c("carr", "gene", "estr", "orig","age") )
DatosInicial
##     carr gene  estr orig age
## 1   Biol    F  alto Bogo  17
## 2   Biol    M medio Bogo  17
## 3   Biol    F  bajo Bogo  18
## 4   Biol    F  bajo Bogo  18
## 5   Biol    M medio Bogo  17
## 6   Biol    F medio Bogo  17
## 7   Biol    F medio Bogo  17
## 8   Biol    M medio Bogo  17
## 9   Biol    F medio Bogo  19
## 10  Biol    M medio Bogo  18
## 11  Biol    M  bajo Bogo  17
## 12  Biol    M medio Bogo  17
## 13  Biol    M medio Bogo  16
## 14  Biol    F  alto Bogo  17
## 15  Biol    M medio Bogo  17
## 16  Biol    M medio Bogo  18
## 17  Biol    M medio Bogo  20
## 18  Biol    F medio Bogo  20
## 19  Biol    M  alto Otro  17
## 20  Biol    M medio Bogo  35
## 21  Biol    M  bajo Bogo  20
## 22  Biol    F  bajo Bogo  19
## 23  Biol    M  alto Otro  17
## 24  Biol    M  bajo Bogo  19
## 25  Biol    F medio Otro  17
## 26  Biol    M  bajo Cund  17
## 27  Biol    F  alto Bogo  16
## 28  Biol    F medio Cund  17
## 29  Biol    M  bajo Bogo  20
## 30  Biol    M  bajo Otro  16
## 31  Biol    F  alto Cund  16
## 32  Biol    M  bajo Bogo  21
## 33  Biol    F  bajo Otro  20
## 34  Biol    M medio Cund  16
## 35  Biol    M  bajo Cund  17
## 36  Biol    F  bajo Otro  16
## 37  Biol    M  bajo Cund  17
## 38  Biol    F medio Otro  16
## 39  Biol    M  alto Cund  17
## 40  Biol    F  bajo Otro  18
## 41  Biol    M  bajo Otro  18
## 42  Biol    F medio Otro  16
## 43  Biol    M  bajo Otro  17
## 44  Biol    M  alto Bogo  17
## 45  Biol    F medio Bogo  16
## 46  Biol    M  alto Bogo  19
## 47  Biol    M  alto Bogo  16
## 48  Biol    M medio Bogo  19
## 49  Biol    M medio Bogo  17
## 50  Biol    M  bajo Bogo  18
## 51  Biol    M  alto Bogo  17
## 52  Biol    M  alto Bogo  18
## 53  Biol    F medio Bogo  18
## 54  Biol    M  bajo Bogo  17
## 55  Biol    M  alto Bogo  17
## 56  Biol    M medio Bogo  16
## 57  Biol    F  alto Bogo  17
## 58  Biol    M  bajo Otro  16
## 59  Biol    F medio Otro  17
## 60  Biol    M medio Otro  17
## 61  Biol    M  bajo Otro  16
## 62  Biol    F  bajo Otro  15
## 63  Biol    M  bajo Otro  16
## 64  Esta    M medio Bogo  17
## 65  Esta    M  alto Bogo  16
## 66  Esta    M  bajo Bogo  17
## 67  Esta    F  alto Bogo  16
## 68  Esta    M medio Bogo  17
## 69  Esta    M medio Bogo  30
## 70  Esta    M  bajo Bogo  17
## 71  Esta    M  bajo Bogo  17
## 72  Esta    M medio Bogo  17
## 73  Esta    M medio Bogo  17
## 74  Esta    F  bajo Bogo  19
## 75  Esta    M  bajo Bogo  17
## 76  Esta    M medio Bogo  16
## 77  Esta    F medio Bogo  17
## 78  Esta    F medio Bogo  16
## 79  Esta    F medio Bogo  16
## 80  Esta    M  bajo Bogo  17
## 81  Esta    F  alto Bogo  16
## 82  Esta    M  bajo Bogo  19
## 83  Esta    M medio Bogo  17
## 84  Esta    M  bajo Bogo  17
## 85  Esta    F  bajo Bogo  16
## 86  Esta    M  bajo Bogo  16
## 87  Esta    F medio Bogo  16
## 88  Esta    M medio Bogo  39
## 89  Esta    F  bajo Bogo  20
## 90  Esta    M  bajo Bogo  21
## 91  Esta    F  bajo Cund  17
## 92  Esta    M  bajo Bogo  19
## 93  Esta    M  bajo Bogo  20
## 94  Esta    M  bajo Bogo  16
## 95  Esta    M medio Bogo  18
## 96  Esta    M  bajo Bogo  25
## 97  Esta    F medio Cund  16
## 98  Esta    M  bajo Bogo  31
## 99  Esta    M  bajo Otro  17
## 100 Esta    M medio Bogo  18
## 101 Esta    M medio Bogo  30
## 102 Esta    F  bajo Cund  17
## 103 Esta    M  bajo Cund  22
## 104 Esta    M  alto Cund  17
## 105 Esta    M medio Otro  17
## 106 Esta    M medio Otro  16
## 107 Esta    F  alto Otro  17
## 108 Esta    M  bajo Bogo  16
## 109 Esta    M medio Bogo  16
## 110 Esta    F  bajo Bogo  16
## 111 Esta    M medio Bogo  17
## 112 Esta    F medio Bogo  15
## 113 Esta    M medio Bogo  16
## 114 Esta    M  bajo Bogo  17
## 115 Esta    M medio Bogo  16
## 116 Esta    M  bajo Bogo  19
## 117 Esta    M medio Bogo  17
## 118 Esta    F medio Bogo  22
## 119 Esta    M medio Bogo  17
## 120 Esta    M  alto Bogo  18
## 121 Esta    M  bajo Bogo  17
## 122 Esta    M  alto Bogo  17
## 123 Esta    M  bajo Otro  20
## 124 Esta    M  bajo Otro  18
## 125 Esta    F medio Otro  17
## 126 Esta    M medio Otro  17
## 127 Esta    M  bajo Otro  18
## 128 Esta    M medio Otro  17
## 129 Esta    M  alto Bogo  17
## 130 Farm    M medio Bogo  17
## 131 Farm    F medio Bogo  16
## 132 Farm    F medio Bogo  17
## 133 Farm    F medio Bogo  16
## 134 Farm    M medio Bogo  17
## 135 Farm    M medio Bogo  18
## 136 Farm    F medio Bogo  18
## 137 Farm    F medio Bogo  19
## 138 Farm    M  bajo Bogo  17
## 139 Farm    F medio Bogo  17
## 140 Farm    F  bajo Bogo  17
## 141 Farm    F medio Bogo  16
## 142 Farm    F medio Bogo  18
## 143 Farm    F medio Bogo  17
## 144 Farm    F medio Bogo  17
## 145 Farm    F medio Bogo  17
## 146 Farm    F medio Bogo  16
## 147 Farm    M medio Bogo  16
## 148 Farm    F  bajo Bogo  23
## 149 Farm    F medio Bogo  17
## 150 Farm    F  bajo Bogo  16
## 151 Farm    F medio Bogo  17
## 152 Farm    F medio Bogo  16
## 153 Farm    F medio Bogo  18
## 154 Farm    M  bajo Bogo  23
## 155 Farm    M medio Otro  17
## 156 Farm    M medio Bogo  23
## 157 Farm    F  bajo Bogo  17
## 158 Farm    M  bajo Bogo  20
## 159 Farm    M medio Bogo  18
## 160 Farm    M  bajo Bogo  19
## 161 Farm    M medio Bogo  18
## 162 Farm    M medio Bogo  18
## 163 Farm    F  bajo Otro  16
## 164 Farm    M medio Bogo  18
## 165 Farm    F  bajo Bogo  18
## 166 Farm    M  bajo Bogo  26
## 167 Farm    F  bajo Bogo  18
## 168 Farm    M  bajo Bogo  17
## 169 Farm    F medio Otro  16
## 170 Farm    M  bajo Bogo  18
## 171 Farm    M  bajo Cund  20
## 172 Farm    M  bajo Cund  18
## 173 Farm    M  bajo Cund  16
## 174 Farm    F  bajo Bogo  16
## 175 Farm    M  alto Bogo  20
## 176 Farm    F medio Otro  16
## 177 Farm    F  bajo Otro  16
## 178 Farm    M medio Cund  17
## 179 Farm    F  bajo Otro  22
## 180 Farm    F  bajo Bogo  20
## 181 Farm    M medio Bogo  17
## 182 Farm    M medio Bogo  19
## 183 Farm    F  bajo Otro  19
## 184 Farm    M medio Bogo  17
## 185 Farm    F medio Bogo  18
## 186 Farm    F  alto Bogo  17
## 187 Farm    M  bajo Bogo  17
## 188 Farm    F  alto Bogo  17
## 189 Farm    M medio Bogo  16
## 190 Farm    F medio Bogo  17
## 191 Farm    M  bajo Bogo  17
## 192 Farm    F medio Bogo  18
## 193 Farm    F  alto Bogo  16
## 194 Farm    M  alto Bogo  16
## 195 Farm    M  bajo Bogo  18
## 196 Farm    M  alto Bogo  16
## 197 Farm    M  bajo Otro  17
## 198 Farm    F  alto Otro  17
## 199 Farm    F  bajo Otro  16
## 200 Farm    F  bajo Otro  17
## 201 Farm    M  bajo Otro  17
## 202 Farm    F  bajo Otro  20
## 203 Fisi    M  alto Bogo  18
## 204 Fisi    M  alto Bogo  16
## 205 Fisi    F medio Bogo  16
## 206 Fisi    M medio Bogo  16
## 207 Fisi    M medio Bogo  17
## 208 Fisi    M medio Bogo  18
## 209 Fisi    M medio Bogo  17
## 210 Fisi    M medio Bogo  18
## 211 Fisi    M  bajo Bogo  16
## 212 Fisi    M medio Bogo  19
## 213 Fisi    M  bajo Bogo  18
## 214 Fisi    M  alto Bogo  16
## 215 Fisi    M  bajo Bogo  17
## 216 Fisi    M medio Bogo  17
## 217 Fisi    M  bajo Bogo  18
## 218 Fisi    M  alto Bogo  16
## 219 Fisi    M  alto Bogo  17
## 220 Fisi    M medio Bogo  40
## 221 Fisi    M  alto Bogo  17
## 222 Fisi    M  alto Bogo  17
## 223 Fisi    F  bajo Bogo  21
## 224 Fisi    M  bajo Bogo  17
## 225 Fisi    M  alto Otro  16
## 226 Fisi    M  bajo Bogo  21
## 227 Fisi    M  alto Bogo  17
## 228 Fisi    M  alto Otro  16
## 229 Fisi    M medio Bogo  23
## 230 Fisi    M  bajo Cund  17
## 231 Fisi    M  bajo Bogo  15
## 232 Fisi    F  bajo Otro  18
## 233 Fisi    F  bajo Otro  17
## 234 Fisi    F  alto Bogo  21
## 235 Fisi    F  bajo Cund  18
## 236 Fisi    M medio Bogo  18
## 237 Fisi    M  bajo Cund  17
## 238 Fisi    M  bajo Otro  16
## 239 Fisi    M  bajo Otro  16
## 240 Fisi    M  bajo Otro  26
## 241 Fisi    F  bajo Cund  17
## 242 Fisi    M medio Cund  17
## 243 Fisi    M  bajo Otro  15
## 244 Fisi    M medio Otro  17
## 245 Fisi    M medio Bogo  17
## 246 Fisi    F medio Bogo  17
## 247 Fisi    M medio Bogo  17
## 248 Fisi    M medio Bogo  17
## 249 Fisi    M medio Bogo  17
## 250 Fisi    M  alto Bogo  17
## 251 Fisi    F  alto Bogo  17
## 252 Fisi    M medio Bogo  17
## 253 Fisi    M  bajo Otro  19
## 254 Fisi    M medio Bogo  16
## 255 Fisi    M medio Bogo  17
## 256 Fisi    F  alto Bogo  16
## 257 Fisi    F  alto Bogo  16
## 258 Fisi    M medio Bogo  17
## 259 Fisi    M  alto Bogo  16
## 260 Fisi    M medio Bogo  18
## 261 Fisi    M  alto Bogo  18
## 262 Fisi    M  alto Bogo  18
## 263 Fisi    M  alto Bogo  32
## 264 Fisi    M  bajo Otro  16
## 265 Fisi    M medio Bogo  20
## 266 Fisi    M  bajo Bogo  16
## 267 Fisi    M medio Bogo  19
## 268 Fisi    M medio Bogo  27
## 269 Fisi    F medio Bogo  17
## 270 Fisi    F medio Bogo  17
## 271 Fisi    M medio Bogo  18
## 272 Fisi    M medio Bogo  23
## 273 Fisi    M medio Bogo  17
## 274 Fisi    M medio Bogo  22
## 275 Fisi    M  bajo Bogo  17
## 276 Fisi    M  bajo Otro  17
## 277 Fisi    M  bajo Otro  17
## 278 Fisi    M medio Otro  16
## 279 Fisi    M medio Otro  17
## 280 Fisi    M medio Otro  17
## 281 Fisi    M  bajo Otro  17
## 282 Fisi    M  bajo Otro  16
## 283 Fisi    M  bajo Otro  16
## 284 Fisi    M medio Bogo  39
## 285 Geol    M  bajo Bogo  17
## 286 Geol    F  alto Bogo  17
## 287 Geol    M medio Bogo  17
## 288 Geol    M  alto Bogo  16
## 289 Geol    M medio Bogo  19
## 290 Geol    M medio Bogo  17
## 291 Geol    M  bajo Bogo  17
## 292 Geol    M  bajo Bogo  17
## 293 Geol    M medio Bogo  16
## 294 Geol    M  alto Bogo  17
## 295 Geol    M  alto Cund  17
## 296 Geol    M  alto Cund  17
## 297 Geol    M  bajo Cund  17
## 298 Geol    M medio Cund  16
## 299 Geol    M  bajo Otro  17
## 300 Geol    M  bajo Otro  19
## 301 Geol    M  bajo Bogo  20
## 302 Geol    M  bajo Bogo  16
## 303 Geol    F  bajo Otro  17
## 304 Geol    M  bajo Cund  25
## 305 Geol    M medio Otro  17
## 306 Geol    M  alto Otro  16
## 307 Geol    F medio Bogo  16
## 308 Geol    M  alto Bogo  16
## 309 Geol    M  bajo Otro  15
## 310 Geol    M  alto Bogo  18
## 311 Geol    F  alto Bogo  17
## 312 Geol    M  alto Bogo  16
## 313 Geol    F medio Bogo  17
## 314 Geol    F  alto Bogo  18
## 315 Geol    M  alto Bogo  17
## 316 Geol    F  alto Bogo  16
## 317 Geol    M  bajo Otro  17
## 318 Geol    M  alto Bogo  16
## 319 Geol    F  bajo Bogo  21
## 320 Geol    M medio Bogo  17
## 321 Geol    M  alto Bogo  17
## 322 Geol    M  bajo Bogo  20
## 323 Geol    M  alto Bogo  17
## 324 Geol    M  alto Bogo  17
## 325 Geol    M  alto Bogo  17
## 326 Geol    M  bajo Bogo  17
## 327 Geol    M  bajo Bogo  17
## 328 Geol    M  bajo Otro  17
## 329 Geol    M  bajo Otro  19
## 330 Mate    F medio Bogo  31
## 331 Mate    M  bajo Bogo  17
## 332 Mate    M medio Bogo  18
## 333 Mate    M medio Bogo  17
## 334 Mate    M medio Bogo  20
## 335 Mate    M medio Bogo  16
## 336 Mate    M medio Bogo  18
## 337 Mate    M medio Bogo  23
## 338 Mate    F medio Bogo  17
## 339 Mate    M medio Bogo  17
## 340 Mate    M medio Bogo  17
## 341 Mate    M medio Bogo  18
## 342 Mate    M  bajo Bogo  20
## 343 Mate    M medio Cund  15
## 344 Mate    M  bajo Otro  16
## 345 Mate    M  bajo Cund  17
## 346 Mate    M medio Bogo  28
## 347 Mate    M  bajo Bogo  18
## 348 Mate    M medio Otro  17
## 349 Mate    M medio Bogo  21
## 350 Mate    M medio Bogo  19
## 351 Mate    M  bajo Bogo  21
## 352 Mate    M  bajo Bogo  16
## 353 Mate    M  bajo Bogo  44
## 354 Mate    M  bajo Bogo  25
## 355 Mate    F  bajo Cund  19
## 356 Mate    M  alto Bogo  17
## 357 Mate    M  bajo Bogo  17
## 358 Mate    M medio Bogo  18
## 359 Mate    M  alto Bogo  17
## 360 Mate    M  bajo Bogo  24
## 361 Mate    M medio Otro  20
## 362 Mate    M medio Bogo  20
## 363 Mate    M  alto Otro  16
## 364 Mate    M  bajo Cund  23
## 365 Mate    M  bajo Otro  16
## 366 Mate    M  alto Bogo  30
## 367 Mate    M  bajo Bogo  17
## 368 Mate    M  alto Bogo  19
## 369 Mate    M medio Bogo  17
## 370 Mate    M  bajo Bogo  16
## 371 Mate    M  alto Bogo  29
## 372 Mate    M  bajo Otro  25
## 373 Mate    M medio Bogo  17
## 374 Mate    F medio Bogo  16
## 375 Mate    M medio Bogo  30
## 376 Mate    F medio Bogo  19
## 377 Mate    M medio Bogo  16
## 378 Mate    M  bajo Otro  19
## 379 Mate    M  bajo Otro  25
## 380 Mate    F  alto Otro  16
## 381 Mate    M  bajo Otro  16
## 382 Mate    M  bajo Otro  17
## 383 Quim    F medio Bogo  16
## 384 Quim    F  bajo Bogo  18
## 385 Quim    F medio Bogo  18
## 386 Quim    M  alto Bogo  16
## 387 Quim    M medio Bogo  21
## 388 Quim    M medio Bogo  19
## 389 Quim    M  bajo Bogo  16
## 390 Quim    M  bajo Bogo  16
## 391 Quim    F medio Bogo  16
## 392 Quim    M medio Bogo  20
## 393 Quim    F  bajo Bogo  18
## 394 Quim    M  alto Bogo  17
## 395 Quim    M medio Bogo  18
## 396 Quim    M  bajo Bogo  19
## 397 Quim    M medio Bogo  21
## 398 Quim    F  bajo Cund  16
## 399 Quim    M  bajo Bogo  20
## 400 Quim    F  bajo Bogo  18
## 401 Quim    M medio Bogo  16
## 402 Quim    M  bajo Bogo  17
## 403 Quim    M medio Bogo  23
## 404 Quim    M  bajo Otro  16
## 405 Quim    M  bajo Otro  18
## 406 Quim    M  bajo Cund  19
## 407 Quim    M  bajo Bogo  19
## 408 Quim    M  bajo Otro  16
## 409 Quim    F  bajo Otro  16
## 410 Quim    F medio Otro  17
## 411 Quim    M  alto Bogo  18
## 412 Quim    M medio Cund  16
## 413 Quim    M medio Cund  17
## 414 Quim    M medio Cund  17
## 415 Quim    M medio Cund  16
## 416 Quim    M  bajo Cund  27
## 417 Quim    F  bajo Otro  16
## 418 Quim    M  bajo Otro  16
## 419 Quim    M  bajo Cund  23
## 420 Quim    F  alto Otro  17
## 421 Quim    M medio Otro  15
## 422 Quim    M  bajo Otro  17
## 423 Quim    F  alto Otro  17
## 424 Quim    F medio Bogo  16
## 425 Quim    M  alto Bogo  16
## 426 Quim    M medio Otro  16
## 427 Quim    F medio Bogo  16
## 428 Quim    M  alto Bogo  17
## 429 Quim    F  bajo Bogo  17
## 430 Quim    F medio Bogo  16
## 431 Quim    F medio Bogo  16
## 432 Quim    M  alto Bogo  17
## 433 Quim    F  bajo Bogo  16
## 434 Quim    M  bajo Bogo  19
## 435 Quim    M  bajo Bogo  17
## 436 Quim    M  bajo Bogo  17
## 437 Quim    M medio Bogo  21
## 438 Quim    M medio Bogo  17
## 439 Quim    F medio Bogo  17
## 440 Quim    F  bajo Bogo  17
## 441 Quim    M  bajo Otro  19
## 442 Quim    M  bajo Otro  16
## 443 Quim    M  bajo Otro  16
## 444 Quim    M  bajo Otro  18
## 445 Quim    F  bajo Otro  17
Carrera <- DatosInicial$carr
Sexo <- DatosInicial$gene
Estrato <- DatosInicial$estr
Origen <- DatosInicial$orig
Edad <- as.factor(DatosInicial$age)

Datos <- cbind(DatosInicial,Carrera,Sexo,Estrato,Origen)
Datos[,1:5] <- NULL

Para este ejemplo utilizaremos las variables correspondientes a la carrera a la cual ingresaron, el género, el estrato y el origen (si son de Bogotá o no). Usamos la función summary para observar la frecuencia de las categorías en cada variable.

summary(Datos)
##  Carrera   Sexo     Estrato     Origen   
##  Biol:63   F:128   bajo :179   Bogo:311  
##  Esta:66   M:317   medio:185   Cund: 38  
##  Farm:73           alto : 81   Otro: 96  
##  Fisi:82                                 
##  Geol:45                                 
##  Mate:53                                 
##  Quim:63

Para observar visualmente dicha frecuencia se pueden utilizar diagramas de caja:

F1<-ggplot(Datos, aes(x=Carrera)) + geom_bar(fill= "#DDB4EB")
F2<-ggplot(Datos, aes(x=Sexo)) + geom_bar(fill= "#FFD4A5")
F3<-ggplot(Datos, aes(x=Estrato)) + geom_bar(fill= "#41894A")
F4<-ggplot(Datos, aes(x=Origen)) + geom_bar(fill= "#FFEC28")
F5 <- grid.arrange(F1,F2,F3,F4, nrow = 2)

La función MCA() crea un objeto que contiene mucha información encontrada en diferentes listas y matrices. Al usar la función print() se mostrará una lista con todos los valores que contiene.

uni.mca <- MCA(Datos, graph = FALSE)
print(uni.mca)
## **Results of the Multiple Correspondence Analysis (MCA)**
## The analysis was performed on 445 individuals, described by 4 variables
## *The results are available in the following objects:
## 
##    name              description                       
## 1  "$eig"            "eigenvalues"                     
## 2  "$var"            "results for the variables"       
## 3  "$var$coord"      "coord. of the categories"        
## 4  "$var$cos2"       "cos2 for the categories"         
## 5  "$var$contrib"    "contributions of the categories" 
## 6  "$var$v.test"     "v-test for the categories"       
## 7  "$ind"            "results for the individuals"     
## 8  "$ind$coord"      "coord. for the individuals"      
## 9  "$ind$cos2"       "cos2 for the individuals"        
## 10 "$ind$contrib"    "contributions of the individuals"
## 11 "$call"           "intermediate results"            
## 12 "$call$marge.col" "weights of columns"              
## 13 "$call$marge.li"  "weights of rows"
eigenval <- get_eigenvalue(uni.mca)
pander(head(eigenval))
  eigenvalue variance.percent cumulative.variance.percent
Dim.1 0.3423 12.45 12.45
Dim.2 0.3338 12.14 24.59
Dim.3 0.2968 10.79 35.38
Dim.4 0.2634 9.579 44.96
Dim.5 0.2546 9.258 54.22
Dim.6 0.25 9.091 63.31

Para determinar el numero de componentes principales se puede mirar un Scree Plot, que es un plot de los eigenvalues ordenados de mayor a menor. El número de componentes es determinado en el punto mas allá del cual los egeinvalues restantes son todos relativamente pequeños y de tamaño comparable. También se puede calcular el eigenvalue promedio sobre el cual el axis se debería mantener en la solución. En este caso debería ser (1/(número de columnas-1)).

fviz_screeplot(uni.mca, addlabels = TRUE, ylim = c(0, 15)) + geom_hline(yintercept = 7.14, linetype = 2, color = "red")

fviz_mca_biplot(uni.mca, repel = TRUE, 
                ggtheme = theme_grey())+labs(
                  title ="           Representación simultanea de los individuos y las categorías")

Los individuos están representados por los puntos azules y las categorías de las variables por los triángulos rojos. Individuos con un perfil similar están cerca en el mapa de factores y lo mismo se puede decir para los puntos de las variables. Así entonces, se puede decir que una buena parte de los individuos se relaciona con el estrato bajo y haber ingresado a la carrera de química. También se puede ver una relación entre estudiantes que ingresaron a matemáticas y el género masculino, y estudiantes de estrato alto y la carrera física.

Resultados de Variables.

var <- get_mca_var(uni.mca)
var
## Multiple Correspondence Analysis Results for variables
##  ===================================================
##   Name       Description                  
## 1 "$coord"   "Coordinates for categories" 
## 2 "$cos2"    "Cos2 for categories"        
## 3 "$contrib" "contributions of categories"
#Para visualizar la correlación entre variables y las dimensiones principales de ACM:

fviz_mca_var(uni.mca, choice = "mca.cor",
             repel = TRUE,
             ggtheme = theme_grey())

Esta gráfica ayuda a identificar las variables que están más correlacionadas con cada dimensión. Las correlaciones cuadradas entre variables y las dimensiones son usadas como coordenadas. En este caso se tiene que la variable “Estrato” es la que presenta mayor correlación con la dimensión 2, por una diferencia pequeña con “Origen” y “Carrera”, y una mayor con “Género”. Así mismo, la variable más correlacionada con la dimensión 1 es “Carrera”.

Si queremos ver las coordenadas puntuales de cada categoría en cada dimensión:

pander(head(round(var$coord, 2), 15))
  Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
Biol -0.05 0.33 0.7 -0.31 1.99
Esta -0.14 -0.15 -0.68 1.08 -0.55
Farm -1.3 0.69 0.31 -0.09 -0.8
Fisi 0.28 -0.69 -0.23 -1.23 -0.04
Geol 0.99 -0.76 1.61 0.72 -1
Mate 0.39 -0.48 -1.27 -0.06 0.21
Quim 0.3 0.86 -0.14 0.43 0.1
F -0.9 0.68 0.59 0 0
M 0.36 -0.27 -0.24 0 0
bajo 0.58 0.72 -0.14 0.03 -0.32
medio -0.69 -0.27 -0.45 0.02 0.29
alto 0.29 -0.97 1.35 -0.09 0.05
Bogo -0.33 -0.39 -0.02 0.08 -0.07
Cund 0.94 0.65 0.08 1.85 1.15
Otro 0.71 1.01 0.04 -0.98 -0.22

Para solo ver las modalidades o categorías de las variables (sin individuos):

fviz_mca_var(uni.mca, col.var = "purple", shape.var = 10, repel = TRUE,
             ggtheme = theme_grey())+labs(title = "                     Nube de puntos de las Modalidades/Categorías")

Aquí se observa la relación y asociación entre las categorías de las variables y se puede interpretar como:

Las categorías de variables con un perfil similar están agrupadas juntas.

Categorías de variables correlacionadas negativamente están posicionadas en lados opuestos del origen de la gráfica (cuadrantes opuestos).

La distancia entre los puntos de cada categoría y el origen mide la calidad de la categoría de la variable en el mapa de factores. Los puntos de cada categoría que estén lejos del origen están bien representados en el mapa.

Según esto, bajo lo que se puede observar en el gráfico, las categorías “Cund”, “Otro”, “Bajo” y “Química” comparten un perfil similar, existe cierta asociación. Se puede suponer entonces que las personas que entraron a la Universidad Nacional a la Facultad de Ciencias que son provenietes de lugares por fuera de Bogotá, tienen más relación o asociación con estratos socioeconomicos bajos, y una escogencia en la carrera de quimica. Adicional, los inidividuos de estrato alto estan más asociados a carreras universitarias como la fisica y la matematica y esta última al sexo masculino. Para culminar, vemos que el sexo femenino esta más relacionado con la carrera universitaria farmacia.

pander(head(var$cos2, 15))
  Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
Biol 0.0003501 0.01831 0.08068 0.01557 0.6521
Esta 0.003632 0.003828 0.08105 0.2029 0.05301
Farm 0.3341 0.09399 0.01918 0.001698 0.1245
Fisi 0.01825 0.1089 0.01145 0.3445 0.0003198
Geol 0.1114 0.06446 0.2922 0.05777 0.1117
Mate 0.02033 0.03053 0.2187 0.0005584 0.005957
Quim 0.01509 0.1232 0.003015 0.03103 0.001542
F 0.3291 0.1863 0.1414 3.7e-08 6.771e-06
M 0.3291 0.1863 0.1414 3.7e-08 6.771e-06
bajo 0.2285 0.3472 0.01319 0.0004408 0.06814
medio 0.3403 0.05253 0.1465 0.000183 0.05893
alto 0.01895 0.208 0.403 0.001932 0.0004683
Bogo 0.2571 0.3556 0.001142 0.01378 0.012
Cund 0.08297 0.03919 0.000562 0.3193 0.1229
Otro 0.1367 0.2815 0.0004658 0.265 0.01346

En este caso ninguna de las categorías estaría bien representada únicamente por 2 dimensiones, la categoría Bogotá cuenta con un cos2 de 0.612 pero aún así no es lo suficientemente cercano a uno. Todas las categorías de las variables requerirían más de una dimensión para estar mejor representadas.

Diagrama de puntos:

fviz_mca_var(uni.mca, col.var = "cos2", 
             repel = TRUE,
             gradient.cols = c("#00AFBB", "#E7B800","#FC4E07"),
                ggtheme = theme_grey())+labs(title = "                  Nube de puntos de las Modalidades/Categorías")

Gráficamente es más sencillo observar las categorías que se encuentran mejor representadas por las dimensiones 1 y 2. Como ya se dijo, la categoría Bogotá es de las que mejor representadas se encuentra, seguido de las categorías Bajo, F (Femenino) y M (Masculino).

Diagrama de barras:

fviz_cos2(uni.mca, choice = "var", axes = 1:2)+labs(title = "                        Cos2 de Categorías para las Dimensiones 1-2")

Las categorías peor representadas por las dimensiones 1 y 2 parecen ser “Esta”, “Biol”, “Mate”, “Cund”, “Fisi”. Esto significa que la posición de sus correspondientes puntos en el diagrama de dispersión deben ser interpretados con precausión. También indica que una solución con dimensión más alta sería recomendable.

Y, finalmente, para ver un análisis del cos2 con más de dos dimensiones:

corrplot(var$cos2, is.corr = FALSE)

Contribución de las categorías de las variables a las dimensiones.

La contribución de las categorías de las variables (en %) a la definición de las dimensiones puede ser extraída como

pander(head(round(var$contrib,2), 15))
  Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
Biol 0.02 1.18 5.83 1.27 54.97
Esta 0.23 0.24 5.81 16.4 4.43
Farm 20.4 5.88 1.35 0.13 10.22
Fisi 1.09 6.65 0.79 26.67 0.03
Geol 7.31 4.34 22.12 4.93 9.86
Mate 1.31 2.01 16.22 0.05 0.52
Quim 0.95 7.92 0.22 2.53 0.13
F 17.12 9.94 8.49 0 0
M 6.91 4.01 3.43 0 0
bajo 9.98 15.54 0.66 0.03 4
medio 14.52 2.3 7.21 0.01 3.38
alto 1.13 12.74 27.77 0.15 0.04
Bogo 5.65 8.02 0.03 0.39 0.35
Cund 5.54 2.68 0.04 27.71 11.04
Otro 7.83 16.53 0.03 19.73 1.04

Las categorías de las variables con el mayor valor contribuyen más a la definición de las dimensiones, y, así mismo, las que contribuyen mas a la dimensión 1 y 2 son las más importantes en explicar la variabilidad de los datos.

Gráficamente:

fviz_contrib(uni.mca, choice = "var", axes = 1, top = 15)+labs(title = "                        Contribución de las Categorías para las Dimensión 1")

fviz_contrib(uni.mca, choice = "var", axes = 2, top = 15)+labs(title = "                        Contribución de las Categorías para las Dimensión 2")

La linea roja indica el valor promedio esperado si las contribuciones fueran uniformes. En este caso, las categorías “Farm”, “F”, “Medio”, y “Bajo” son las más importantes en la definición de la primera dimensión, por otro lado, “Otro”, “Bajo”, “Alto” y “F” son las que más contribuyen a la dimensión 2.

Las que más contribuyen en total se pueden ver mediante dos gráficos distintos, un gráfico de barras:

fviz_contrib(uni.mca, choice = "var", axes = 1:2, top = 15)+labs(title = "                Contribuciones de las Categorías para las Dimensiónes 1-2")

Y uno de dispersión:

fviz_mca_var(uni.mca, col.var = "contrib", 
             gradient.cols = c("#00AFBB", "#E7B800","#FC4E07"),
                ggtheme = theme_grey()
             , repel = TRUE)

quí, las categorías que más contribuyen son Farm, F, Bajo, y Otro, y se puede distinguir a qué polo de las dimensiones están contribuyendo: Bajo y Otro contribuyen al polo positivo de la dimensión 1 y 2, mientras que Farm y F contribuyen al polo positivo de la dimensión 2 y el polo negativo de la dimensión 1.

Resultados Individuos. Ahora se procede a realizar el mismo procedimiento pero para los individuos.

est <- get_mca_ind(uni.mca)
est
## Multiple Correspondence Analysis Results for individuals
##  ===================================================
##   Name       Description                       
## 1 "$coord"   "Coordinates for the individuals" 
## 2 "$cos2"    "Cos2 for the individuals"        
## 3 "$contrib" "contributions of the individuals"

Estos resultados para los individuos dan la misma información como la descrita para las categorías de variables.

Coordinadas de los puntos de columnas

pander(head(est$coord))
Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
-0.423 -0.1496 1.2 -0.1577 0.9744
-0.3017 -0.2614 -0.007109 -0.1043 1.091
-0.2986 0.5795 0.5181 -0.09983 0.794
-0.2986 0.5795 0.5181 -0.09983 0.794
-0.3017 -0.2614 -0.007109 -0.1043 1.091
-0.8432 0.1512 0.3741 -0.1045 1.094

Calidad de representación

pander(head(est$cos2))
Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
0.05315 0.006649 0.4277 0.007387 0.282
0.04384 0.03292 2.435e-05 0.005238 0.5738
0.03412 0.1285 0.1027 0.003812 0.2411
0.03412 0.1285 0.1027 0.003812 0.2411
0.04384 0.03292 2.435e-05 0.005238 0.5738
0.2741 0.008809 0.05396 0.004208 0.4616

Contribuciones.

pander(head(est$contrib))
Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
0.1175 0.01507 1.09 0.02121 0.838
0.05975 0.04601 3.826e-05 0.009277 1.051
0.05856 0.2261 0.2032 0.008502 0.5564
0.05856 0.2261 0.2032 0.008502 0.5564
0.05975 0.04601 3.826e-05 0.009277 1.051
0.4668 0.01538 0.106 0.009314 1.057

Ahora vamos a visualizar únicamente los individuos coloréandolos en base de sus valores de Cos2 (calidad de representación).

fviz_mca_ind(uni.mca, col.ind = "cos2",
             gradient.cols= c("blue", "white", "red"),
             repel = TRUE,
             ggtheme = theme_grey())

Se ven individuos mas alejados al centro de gravedad son los mejor representados por ambas dimensiones dado que segun sus caracteristicas contribuyen un alto porcentaje a la definicion de ambas dimensiones (lejanos y aproximadamente con 45 grados al centro de gravedad), ademas de los que estan alejados y muy cercanos a una dimension, como por ejemplo los individuos 409, 417 y 445 se encuentra muy cercanos al eje de la dimension 2 por lo que esta los representa bien.

tail(est$contrib)
##          Dim 1     Dim 2      Dim 3      Dim 4      Dim 5
## 440 0.01471501 0.4409500 0.01381912 0.05817901 0.01813721
## 441 0.45812217 0.6782594 0.03567506 0.05517507 0.04278631
## 442 0.45812217 0.6782594 0.03567506 0.05517507 0.04278631
## 443 0.45812217 0.6782594 0.03567506 0.05517507 0.04278631
## 444 0.45812217 0.6782594 0.03567506 0.05517507 0.04278631
## 445 0.05667182 1.3504293 0.02040334 0.05526492 0.04168646
fviz_cos2 (uni.mca, choice = "ind", axes = 1:2, top = 50)+labs(title = "                          Cos2 de los individuos para las Dimensiónes 1-2")

Aquí se observa una complicación si quisieramos observar los cos2 de cada individuo mediante un diagrama de barras debido a la gran cantidad de datos que hay. El diagrama de barras en este caso no es recomendable por esto mismo, y ocurre también para observar las contribuciones de los individuos a las dimensiones. El codigo para observar las contribuciones sería

Agrupando a los individuos.

El siguiente código agrupa los individuos por colores utilizando los niveles de la variable de elección, en este caso escogimos la variable “Sexo” que indica el género de los estudiantes admitidos. El argumento habillage se usa para especificar el el factor de la variable para agrupar los individuos por color. Se agrega también un elipse de concentración alrededor de cada grupo usando el argumento addEllipses = TRUE.

fviz_mca_ind(uni.mca,
            label = "none",
            habillage = Sexo,
            pallette = c("#CCCCFF", "#F08080"),
            addEllipses = TRUE,
            ggtheme = theme_grey())

Se puede observar cómo las elipses de concentración de los puntos correspondientes a las categorías de la variable sexo están diferenciadas entre sí horizontalmente, indicando que la dimensión representada en ese eje (dimensión 1) discrimina entre ambas categorías de la variable. Esto no es así para la dimensión en el eje vertical (dimensión 2).

Si se quiere hacer con varias variables categóricas:

fviz_ellipses(uni.mca, 1:4, 
              geom = "point")
## Warning: `gather_()` was deprecated in tidyr 1.2.0.
## ℹ Please use `gather()` instead.
## ℹ The deprecated feature was likely used in the factoextra package.
##   Please report the issue at <]8;;https://github.com/kassambara/factoextra/issueshttps://github.com/kassambara/factoextra/issues]8;;>.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

El primer eje (dimension 1) se caracteriza por todas las cualitativas de la base de datos, siendo la variable carrera la que mas influencia tiene en esta dimension dado que tiene el R-cuadrado mas alto. Por el lado de las categorias, todas menos la carrera de biologia ni estadistica, son caracteristicas en esta dimension.

Se puede ver que la categoria sexo masculino tiene coordenadas significativamente más elevadas que la media (0) en el primer eje, mientras que la categoria estrato medio es la que tiene coordenadas mas por debajo de la media del eje 1.

Descripción de la dimensión:

uni.desc <- dimdesc(uni.mca, axes = c(1,2))

#Descripcion de la primera dimensión

uni.desc[[1]]
## 
## Link between the variable and the categorical variable (1-way anova)
## =============================================
##                R2      p.value
## Carrera 0.4285332 2.729269e-50
## Estrato 0.3509500 3.261910e-42
## Sexo    0.3290597 2.681458e-40
## Origen  0.2605319 1.074463e-29
## 
## Link between variable and the categories of the categorical variables
## ================================================================
##                 Estimate      p.value
## Sexo=M         0.3706947 2.681458e-40
## Estrato=bajo   0.3052501 8.673120e-27
## Origen=Otro    0.1560603 7.249209e-16
## Carrera=Geol   0.5424408 4.904088e-13
## Origen=Cund    0.2950703 5.987708e-10
## Carrera=Mate   0.1872306 2.572682e-03
## Estrato=alto   0.1350416 3.620153e-03
## Carrera=Fisi   0.1266678 4.305176e-03
## Carrera=Quim   0.1373367 9.492803e-03
## Origen=Bogo   -0.4511305 1.925781e-30
## Sexo=F        -0.3706947 2.681458e-40
## Carrera=Farm  -0.8029882 5.005960e-41
## Estrato=medio -0.4402917 6.161214e-42
#Descripcion de la segunda dimensión

uni.desc[[2]]
## 
## Link between the variable and the categorical variable (1-way anova)
## =============================================
##                R2      p.value
## Estrato 0.4084061 4.142269e-51
## Origen  0.3636578 4.127146e-44
## Carrera 0.3769897 3.462704e-42
## Sexo    0.1863262 1.270418e-21
## 
## Link between variable and the categories of the categorical variables
## ================================================================
##                  Estimate      p.value
## Estrato=bajo   0.51524141 5.965710e-43
## Origen=Otro    0.34025553 1.132851e-33
## Sexo=F         0.27548929 1.270418e-21
## Carrera=Quim   0.51470708 2.380816e-14
## Carrera=Farm   0.41514749 3.873902e-11
## Origen=Cund    0.13011519 2.600059e-05
## Carrera=Biol   0.20779436 4.242543e-03
## Carrera=Mate  -0.25928525 2.121723e-04
## Estrato=medio -0.05679302 1.027153e-06
## Carrera=Geol  -0.42207042 5.642303e-08
## Carrera=Fisi  -0.38590151 9.136110e-13
## Sexo=M        -0.27548929 1.270418e-21
## Estrato=alto  -0.45844838 3.025078e-24
## Origen=Bogo   -0.47037072 3.422630e-44

El primer eje (dimension 2) se caracteriza por todas las cualitativas de la base de datos, siendo la variable estrato la que mas influencia tiene en esta dimension dado que tiene el R-cuadrado mas alto. Por el lado de las categorias, todas menos la carrera de Estadistica, son caracteristicas en esta dimension.

Se puede ver que la categoria estrato bajo tiene coordenadas significativamente más elevadas que la media (0) en el segundo eje, mientras que la categoria origen Bogota es la que tiene coordenadas mas por debajo de la media del eje 2.

Variable Suplementaria. Se agrega la variable suplementaria “Edad” a la base de datos, para crear una que la incluya.

NuevosDatos<-cbind(Datos,Edad)

Luego, observamos las coordenadas de las distintas categorías de la variable, que están compuestas por las edades de los estudiantes que fueron aceptados a un programa en la Facultad de Ciencias.

sup.mca<- MCA(NuevosDatos,quali.sup = 5,ncp=2,graph = FALSE)
coor_cat<- sup.mca$quali.sup$coord
pander(coor_cat)
  Dim 1 Dim 2
15 0.567 0.4691
16 -0.03525 0.1695
17 0.04223 -0.1247
18 -0.326 0.001609
19 0.1602 0.1941
20 0.02123 0.2132
21 0.06035 -0.2191
22 -0.2961 0.427
23 -0.1237 0.001791
24 0.732 -0.3164
25 1.233 0.2662
26 0.4551 0.5639
27 0.6635 0.1215
28 -0.1988 -1.058
29 0.5195 -1.578
30 -0.2136 -1.066
31 -0.3905 -0.2077
32 0.4439 -1.742
35 -0.5157 -0.4525
39 -0.4309 -1.017
40 -0.2744 -1.222
44 0.732 -0.3164
coor_edad<-sup.mca$quali.sup$eta2
pander(coor_edad)
  Dim 1 Dim 2
Edad 0.04859 0.06076
fviz_mca_var(sup.mca,repel=T)+labs(
  title ="                     Nube de puntos de Categorias y Edad Suplementaria")

Del gráfico anterior, inferimos que de las relaciones más fuertes que se pueden notar, son cuando los estudiantes tienen 15 y 26 años su estrato es bajo, y provienen de otros sectores fuera de Bogotá. Otra puede ser los que tengan 25 años y provengan de municipios de Cundinamarca.

Las variables e individuos suplementarios no se utilizan para determinar las dimensiones principales. Sus coordenadas se predicen utilizando únicamente la información proporcionada por el análisis de correspondencia múltiple realizado sobre las variables/individuos activos.