Análisis de Correspondencia Múltiple (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. Uno de los objetivos es identificar:

Lo primero es la asignación del directorio de trabajo

#1. Directorio de trabajo
wd="F:/Trabajo de consulta"
setwd(wd)

Librerias

Despues, comenzamos instalando los paquetes necesarios para el análisis de correspondencias múltiples y activándolos. Los paquetes son:

#2. 
library("FactoMineR")
library("factoextra")
library("corrplot")

Base de datos

Vamos a utilizar los datos “poison” del paquete FactoMineR, que es una encuesta a niños de primaria que tuvieron intoxicación por alimentos, información de los sintomas y comida. Estos datos poseen información de 55 niños, así como también algunas 15 variables.

#3. Base de datos
data(poison)
head(poison[, 1:7])
##   Age Time   Sick Sex   Nausea Vomiting Abdominals
## 1   9   22 Sick_y   F Nausea_y  Vomit_n     Abdo_y
## 2   5    0 Sick_n   F Nausea_n  Vomit_n     Abdo_n
## 3   6   16 Sick_y   F Nausea_n  Vomit_y     Abdo_y
## 4   9    0 Sick_n   F Nausea_n  Vomit_n     Abdo_n
## 5   7   14 Sick_y   M Nausea_n  Vomit_y     Abdo_y
## 6  72    9 Sick_y   M Nausea_n  Vomit_n     Abdo_y

Para este ejemplo utilizaremos las variables cualitativa y la asignamos al objeto poison.active. Usamos la función summary para observar la frecuencia de las categorías en cada variable.

poison.active <- poison[1:55, 5:15]
head(poison.active[, 1:6])
##     Nausea Vomiting Abdominals   Fever   Diarrhae   Potato
## 1 Nausea_y  Vomit_n     Abdo_y Fever_y Diarrhea_y Potato_y
## 2 Nausea_n  Vomit_n     Abdo_n Fever_n Diarrhea_n Potato_y
## 3 Nausea_n  Vomit_y     Abdo_y Fever_y Diarrhea_y Potato_y
## 4 Nausea_n  Vomit_n     Abdo_n Fever_n Diarrhea_n Potato_y
## 5 Nausea_n  Vomit_y     Abdo_y Fever_y Diarrhea_y Potato_y
## 6 Nausea_n  Vomit_n     Abdo_y Fever_y Diarrhea_y Potato_y
# Summary de las variables
summary(poison.active)
##       Nausea      Vomiting   Abdominals     Fever          Diarrhae 
##  Nausea_n:43   Vomit_n:33   Abdo_n:18   Fever_n:20   Diarrhea_n:20  
##  Nausea_y:12   Vomit_y:22   Abdo_y:37   Fever_y:35   Diarrhea_y:35  
##       Potato       Fish        Mayo      Courgette       Cheese  
##  Potato_n: 3   Fish_n: 1   Mayo_n:10   Courg_n: 5   Cheese_n: 7  
##  Potato_y:52   Fish_y:54   Mayo_y:45   Courg_y:50   Cheese_y:48  
##        Icecream 
##  Icecream_n: 4  
##  Icecream_y:51

Para observar visualmente dicha frecuencia se pueden utilizar tablas de frecuencia:

# plot de las frecuencias de las 4 primeras variables
par(mfrow=c(2,2))
for (i in 1:4) {
  plot(poison.active[,i], main=colnames(poison.active)[i],
       ylab = "Count", col="steelblue", las = 2)
}  

ACM

La función MCA() crea un objeto que contiene mucha información encontrada en diferentes listas y matrices. Al llamar el objeto res.mca mostrará una lista con todos los valores que contiene. También, vamos a visualizar los valores propios y las varianzas

#4. ACM
res.mca <- MCA(poison.active, graph = FALSE)
res.mca
## **Results of the Multiple Correspondence Analysis (MCA)**
## The analysis was performed on 55 individuals, described by 11 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"
#visualizar los resultados
#extrae los valores propios y varianzas
eig.val <- get_eigenvalue(res.mca)
head(eig.val)
##       eigenvalue variance.percent cumulative.variance.percent
## Dim.1 0.33523140        33.523140                    33.52314
## Dim.2 0.12913979        12.913979                    46.43712
## Dim.3 0.10734849        10.734849                    57.17197
## Dim.4 0.09587950         9.587950                    66.75992
## Dim.5 0.07883277         7.883277                    74.64319
## Dim.6 0.07108981         7.108981                    81.75217

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.

#visualizar porcentajes de inercia por cada dimension
fviz_screeplot(res.mca, addlabels = TRUE, ylim = c(0, 45))

Luego, hacemos un diagrama simetrico donde 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í se ve la similitud de algunos individuos que no tuvieron diarrea o fiebre.

#biplot de individuos y categorias (similitud)
x11()
fviz_mca_biplot(res.mca,
                repel = TRUE, # evita la superposicion de texto
                ggtheme = theme_minimal())

Resultado del ACM para variables

#5. Resultado del ACM para variables
var <- get_mca_var(res.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"
# Coordinadas
head(var$coord)
##               Dim 1       Dim 2        Dim 3       Dim 4       Dim 5
## Nausea_n  0.2673909  0.12139029 -0.265583253  0.03376130  0.07370500
## Nausea_y -0.9581506 -0.43498187  0.951673323 -0.12097801 -0.26410958
## Vomit_n   0.4790279 -0.40919465  0.084492799  0.27361142  0.05245250
## Vomit_y  -0.7185419  0.61379197 -0.126739198 -0.41041713 -0.07867876
## Abdo_n    1.3180221 -0.03574501 -0.005094243 -0.15360951 -0.06986987
## Abdo_y   -0.6411999  0.01738946  0.002478280  0.07472895  0.03399075
# Cos2: calidad de representacion
head(var$cos2)
##              Dim 1        Dim 2        Dim 3       Dim 4       Dim 5
## Nausea_n 0.2562007 0.0528025759 2.527485e-01 0.004084375 0.019466197
## Nausea_y 0.2562007 0.0528025759 2.527485e-01 0.004084375 0.019466197
## Vomit_n  0.3442016 0.2511603912 1.070855e-02 0.112294813 0.004126898
## Vomit_y  0.3442016 0.2511603912 1.070855e-02 0.112294813 0.004126898
## Abdo_n   0.8451157 0.0006215864 1.262496e-05 0.011479077 0.002374929
## Abdo_y   0.8451157 0.0006215864 1.262496e-05 0.011479077 0.002374929
# Contribuciones a las dimensiones
head(var$contrib)
##              Dim 1       Dim 2        Dim 3      Dim 4      Dim 5
## Nausea_n  1.515869  0.81100008 4.670018e+00 0.08449397 0.48977906
## Nausea_y  5.431862  2.90608363 1.673423e+01 0.30277007 1.75504164
## Vomit_n   3.733667  7.07226253 3.627455e-01 4.25893721 0.19036376
## Vomit_y   5.600500 10.60839380 5.441183e-01 6.38840581 0.28554563
## Abdo_n   15.417637  0.02943661 7.192511e-04 0.73219636 0.18424268
## Abdo_y    7.500472  0.01432051 3.499060e-04 0.35620363 0.08963157

Para visualizar la correlación entre variables y las dimensiones principales de ACM:

#Correlacio entre variables y dimensiones
fviz_mca_var(res.mca, choice = "mca.cor",
             repel = TRUE,
             ggtheme = theme_minimal())

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 “Courgette” es la que presenta mayor correlación con la dimensión 2, por una diferencia pequeña con “Potato”. Así mismo, la variable más correlacionada con la dimensión 1 es “Abdominals”, “Fever” y “Diarrhae”.

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

#Visualizar las variables y sus coordenadas
head(round(var$coord, 2))
##          Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
## Nausea_n  0.27  0.12 -0.27  0.03  0.07
## Nausea_y -0.96 -0.43  0.95 -0.12 -0.26
## Vomit_n   0.48 -0.41  0.08  0.27  0.05
## Vomit_y  -0.72  0.61 -0.13 -0.41 -0.08
## Abdo_n    1.32 -0.04 -0.01 -0.15 -0.07
## Abdo_y   -0.64  0.02  0.00  0.07  0.03

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

fviz_mca_var(res.mca,
             repel = TRUE, 
             ggtheme = theme_minimal())

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 “Abdominals_n”, “Fever_n”, “Diarrhae_n”, “Mayo_n” y “Cheese_n” comparten un perfil similar, existe cierta asociación. Por lo que se podría decir que hay un grupo de personas que no presentaron ninguna de estas características.

Calidad de la representación de las categoría de las variables.

La calidad de la representación se llama el coseno cuadrado (Cos2), el cual mide el grado de asociación entre las categorías de las variables y un eje en particular. Si la categoría de una variable está bien representada por dos dimensiones, la suma del cos2 es cercana a uno. Para algunos ítems de las filas, más de dos dimensiones son requeridas para represetar perfectamente los datos. Hay distintas maneras de ver dicha calidad de representación:

Mediante una tabla:

#Calidad de representacionn de las variables
head(var$cos2)
##              Dim 1        Dim 2        Dim 3       Dim 4       Dim 5
## Nausea_n 0.2562007 0.0528025759 2.527485e-01 0.004084375 0.019466197
## Nausea_y 0.2562007 0.0528025759 2.527485e-01 0.004084375 0.019466197
## Vomit_n  0.3442016 0.2511603912 1.070855e-02 0.112294813 0.004126898
## Vomit_y  0.3442016 0.2511603912 1.070855e-02 0.112294813 0.004126898
## Abdo_n   0.8451157 0.0006215864 1.262496e-05 0.011479077 0.002374929
## Abdo_y   0.8451157 0.0006215864 1.262496e-05 0.011479077 0.002374929

En este caso las categorías que estarían bien representadas únicamente por 2 dimensiones serían “Abdo_n” y “Abdo_y”, ya que cuenta con un cos2 de más de 0.85 lo suficientemente cercano a uno.

Diagrama de puntos:

#grado de asociacion entre las categorias de las variables
fviz_mca_var(res.mca, col.var = "cos2",
             gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
             repel = TRUE,
             ggtheme = theme_minimal())

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 Abdo, Diarrhea y Fever).

#se le aplica la transparencia
fviz_mca_var(res.mca, alpha.var="cos2",
             repel = TRUE,
             ggtheme = theme_minimal())

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

#miramos la correlacion
corrplot(var$cos2, is.corr=FALSE)

fviz_cos2(res.mca, choice = "var", axes = 1:2)

####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:

#contribucion de las variables a las dimensiones
head(round(var$contrib,2))
##          Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
## Nausea_n  1.52  0.81  4.67  0.08  0.49
## Nausea_y  5.43  2.91 16.73  0.30  1.76
## Vomit_n   3.73  7.07  0.36  4.26  0.19
## Vomit_y   5.60 10.61  0.54  6.39  0.29
## Abdo_n   15.42  0.03  0.00  0.73  0.18
## Abdo_y    7.50  0.01  0.00  0.36  0.09

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:

# contribuciones a la dimension 1
fviz_contrib(res.mca, choice = "var", axes = 1, top = 15)

# contribuciones a la dimension 2
fviz_contrib(res.mca, choice = "var", axes = 2, top = 15)

La linea roja indica el valor promedio esperado si las contribuciones fueran uniformes. En este caso, las categorías “Abdo_n”, “Diarrhea_n”, “Fever_n” son las más importantes en la definición de la primera dimensión, por otro lado, “Courg_n”, “Potato_n”, “Vomit_y”, “icecream_n”, “Vomit_n” 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:

# Total contribuciones a las dimensiones 1 y 2
fviz_contrib(res.mca, choice = "var", axes = 1:2, top = 15)

Y uno de dispersión:

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

Aquí, las categorías que más contribuyen son “Abdo_n”, “Diarrhea_n”, “Fever_n”, y se puede distinguir a qué polo de las dimensiones están contribuyendo al polo positivo de la dimensión 1.

# transparencia
fviz_mca_var(res.mca, alpha.var="contrib",
             repel = TRUE,
             ggtheme = theme_minimal())

Resultados Individuos.

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

#6. Resultados de individuos
ind <- get_mca_ind(res.mca)
ind
## 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
# Coordinadas
head(ind$coord)
##        Dim 1       Dim 2       Dim 3       Dim 4       Dim 5
## 1 -0.4525811 -0.26415072  0.17151614  0.01369348 -0.11696806
## 2  0.8361700 -0.03193457 -0.07208249 -0.08550351  0.51978710
## 3 -0.4481892  0.13538726 -0.22484048 -0.14170168 -0.05004753
## 4  0.8803694 -0.08536230 -0.02052044 -0.07275873 -0.22935022
## 5 -0.4481892  0.13538726 -0.22484048 -0.14170168 -0.05004753
## 6 -0.3594324 -0.43604390 -1.20932223  1.72464616  0.04348157
  • Calidad de representación
# calidad de representacion
head(ind$cos2)
##        Dim 1        Dim 2        Dim 3        Dim 4        Dim 5
## 1 0.34652591 0.1180447167 0.0497683175 0.0003172275 0.0231460846
## 2 0.55589562 0.0008108236 0.0041310808 0.0058126211 0.2148103098
## 3 0.54813888 0.0500176790 0.1379484860 0.0547920948 0.0068349171
## 4 0.74773962 0.0070299584 0.0004062504 0.0051072923 0.0507479873
## 5 0.54813888 0.0500176790 0.1379484860 0.0547920948 0.0068349171
## 6 0.02485357 0.0365775483 0.2813443706 0.5722083217 0.0003637178
  • Contribuciones.
# Contribuciones
head(ind$contrib)
##      Dim 1      Dim 2        Dim 3        Dim 4      Dim 5
## 1 1.110927 0.98238297  0.498254685  0.003555817 0.31554778
## 2 3.792117 0.01435818  0.088003703  0.138637089 6.23134138
## 3 1.089470 0.25806722  0.856229950  0.380768961 0.05776914
## 4 4.203611 0.10259105  0.007132055  0.100387990 1.21319013
## 5 1.089470 0.25806722  0.856229950  0.380768961 0.05776914
## 6 0.700692 2.67693398 24.769968729 56.404214518 0.04360547

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

# contribucion y calidad de representacion
fviz_mca_ind(res.mca, col.ind = "cos2",
             gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
             repel = TRUE,
             ggtheme = theme_minimal())

Se ven individuos más 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.

# Cos2 de individuos
fviz_cos2(res.mca, choice = "ind", axes = 1:2, top = 20)

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 codigo para observar las contribuciones en % sería

# contribucion de individuos a las variables
fviz_contrib(res.mca, choice = "ind", axes = 1:2, top = 20)

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 “Vomiting”. 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.

#color por grupos
fviz_mca_ind(res.mca,
             label = "none", 
             habillage = "Vomiting", # color por grupos
             palette = c("#00AFBB", "#E7B800"),
             addEllipses = TRUE, ellipse.type = "confidence", #elipse de concentracion  y punto medio
             ggtheme = theme_minimal())

Se puede observar cómo las elipses de concentración de los puntos correspondientes a las categorías de la variable Vomiting están diferenciadas entre sí.

Si se quiere hacer con varias variables categóricas:

fviz_ellipses(res.mca, c("Vomiting", "Fever"),
              geom = "point")

fviz_ellipses(res.mca, 1:4, geom = "point")

Descripción de la dimensión:

El primer eje (dimension 1) se caracteriza por todas las cualitativas de la base de datos, siendo la variable Abdominals la que mas influencia tiene en esta dimension dado que tiene el R-cuadrado mas alto.

Se puede ver que la categoria Abdo_n tiene coordenadas significativamente más elevadas que la media (0) en el primer eje.

#Correlacion de varaibles con las dimensiones
res.desc <- dimdesc(res.mca, axes = c(1,2))
# Descripcion de dimension 1
res.desc[[1]]
## $quali
##                   R2      p.value
## Abdominals 0.8451157 4.055640e-23
## Diarrhae   0.7994680 3.910776e-20
## Fever      0.7846788 2.600566e-19
## Mayo       0.3829749 4.756234e-07
## Vomiting   0.3442016 2.510738e-06
## Nausea     0.2562007 8.062777e-05
## Cheese     0.1944181 7.534834e-04
## 
## $category
##                       Estimate      p.value
## Abdominals=Abdo_n    0.5671866 4.055640e-23
## Diarrhae=Diarrhea_n  0.5380920 3.910776e-20
## Fever=Fever_n        0.5330918 2.600566e-19
## Mayo=Mayo_n          0.4644981 4.756234e-07
## Vomiting=Vomit_n     0.3466915 2.510738e-06
## Nausea=Nausea_n      0.3547892 8.062777e-05
## Cheese=Cheese_n      0.3830043 7.534834e-04
## Cheese=Cheese_y     -0.3830043 7.534834e-04
## Nausea=Nausea_y     -0.3547892 8.062777e-05
## Vomiting=Vomit_y    -0.3466915 2.510738e-06
## Mayo=Mayo_y         -0.4644981 4.756234e-07
## Fever=Fever_y       -0.5330918 2.600566e-19
## Diarrhae=Diarrhea_y -0.5380920 3.910776e-20
## Abdominals=Abdo_y   -0.5671866 4.055640e-23
## 
## attr(,"class")
## [1] "condes" "list"
# Descripcion de dimension 2
res.desc[[2]]
## $quali
##                  R2      p.value
## Courgette 0.4464145 2.500166e-08
## Potato    0.3957543 2.690662e-07
## Vomiting  0.2511604 9.728027e-05
## Icecream  0.1409011 4.743927e-03
## 
## $category
##                       Estimate      p.value
## Courgette=Courg_n    0.4176013 2.500166e-08
## Potato=Potato_y      0.4977523 2.690662e-07
## Vomiting=Vomit_y     0.1838104 9.728027e-05
## Icecream=Icecream_n  0.2597197 4.743927e-03
## Icecream=Icecream_y -0.2597197 4.743927e-03
## Vomiting=Vomit_n    -0.1838104 9.728027e-05
## Potato=Potato_n     -0.4977523 2.690662e-07
## Courgette=Courg_y   -0.4176013 2.500166e-08
## 
## attr(,"class")
## [1] "condes" "list"

El primer eje (dimension 2) la variable Courgette la que mas influencia tiene en esta dimensioó dado que tiene el R-cuadrado mas alto.

Se puede ver que la categoria Courg_n tiene coordenadas significativamente más elevadas que la media (0).

Variable Suplementaria.

Se agrega la variable suplementaria sexo y enfermo a la base de datos, para crear una que la incluya.

#7. elemntos suplementarios
res.mca <- MCA(poison, ind.sup = 53:55,
               quanti.sup = 1:2, quali.sup = 3:4, graph=FALSE)

Luego, observamos las coordenadas de las distintas categorías de la variable, que están compuestas por las edades de los niños y el tiempo.

# Variables categoricas suplementarias
res.mca$quali.sup
## $coord
##              Dim 1         Dim 2       Dim 3        Dim 4       Dim 5
## Sick_n  1.41809140  0.0020394048  0.13199139 -0.016036841 -0.08354663
## Sick_y -0.63026284 -0.0009064021 -0.05866284  0.007127485  0.03713184
## F      -0.03108147  0.1123143957  0.05033124 -0.055927173 -0.06832928
## M       0.03356798 -0.1212995474 -0.05435774  0.060401347  0.07379562
## 
## $cos2
##              Dim 1        Dim 2       Dim 3        Dim 4       Dim 5
## Sick_n 0.893770319 1.848521e-06 0.007742990 0.0001143023 0.003102240
## Sick_y 0.893770319 1.848521e-06 0.007742990 0.0001143023 0.003102240
## F      0.001043342 1.362369e-02 0.002735892 0.0033780765 0.005042401
## M      0.001043342 1.362369e-02 0.002735892 0.0033780765 0.005042401
## 
## $v.test
##             Dim 1        Dim 2      Dim 3       Dim 4      Dim 5
## Sick_n  6.7514655  0.009709509  0.6284047 -0.07635063 -0.3977615
## Sick_y -6.7514655 -0.009709509 -0.6284047  0.07635063  0.3977615
## F      -0.2306739  0.833551410  0.3735378 -0.41506855 -0.5071119
## M       0.2306739 -0.833551410 -0.3735378  0.41506855  0.5071119
## 
## $eta2
##            Dim 1        Dim 2       Dim 3        Dim 4       Dim 5
## Sick 0.893770319 1.848521e-06 0.007742990 0.0001143023 0.003102240
## Sex  0.001043342 1.362369e-02 0.002735892 0.0033780765 0.005042401
# Variables cuantitativa suplementarias
res.mca$quanti
## $coord
##             Dim 1       Dim 2       Dim 3       Dim 4       Dim 5
## Age   0.003934896 -0.00741340 -0.26494536  0.20015501  0.02928483
## Time -0.838158507 -0.08330586 -0.08718851 -0.08421599 -0.02316931
# individuos suplementarios
res.mca$ind.sup
## $coord
##         Dim 1     Dim 2      Dim 3      Dim 4      Dim 5
## 53  1.0835684 0.5172478  0.5794063  0.5390903  0.4553650
## 54 -0.1249473 0.1417271 -0.1765234 -0.1526587 -0.2779565
## 55 -0.4315948 0.1270468 -0.2071580 -0.1186804 -0.1891760
## 
## $cos2
##         Dim 1      Dim 2      Dim 3      Dim 4      Dim 5
## 53 0.36304957 0.08272764 0.10380536 0.08986204 0.06411692
## 54 0.03157652 0.04062716 0.06302535 0.04713607 0.15626590
## 55 0.50232519 0.04352713 0.11572730 0.03798314 0.09650827
# Biplot de individuos y variables
fviz_mca_biplot(res.mca, repel = TRUE,
                ggtheme = theme_minimal())

Del gráfico anterior, inferimos que los nios que no estan enfermos no presentan características de fiebre, diarrea o fiebre. Ademas, que las niñas estan más propable a enfermarse que los niños, ya sea porconsumir queso, o helado.

fviz_mca_var(res.mca, choice = "mca.cor",repel = TRUE)

fviz_mca_var(res.mca, repel = TRUE,
             ggtheme= theme_minimal())