Se requiere realizar un Análisis de Correspondencia Multiple (ACM) a una base de datos, la cual contiene una tabla cruzada con la información de 27 tipo de razas de perros con unas características (6 variables cualitativas (tamaño, peso, velocidad, inteligencia, afectividad, y agresividad) y adicional se tendrá como variable suplementaria(función del perro). Se usará la base de datos “DogBreeds”, la cual se extrae de LIBRARY(FactoClass).

library(FactoMineR)
library(ggplot2)
library(FactoClass)
library(factoextra)
library(Rcpp)
library(broom)
library(pander)
library(corrplot)
library(gridExtra)
library(ggthemes)
data("DogBreeds")
attach(DogBreeds)
Tamaño <- DogBreeds$SIZE
Peso <- DogBreeds$WEIG
Velocidad<- DogBreeds$SPEE
Inteligencia <- DogBreeds$INTE
Afectividad <- DogBreeds$AFFE
Agresividad<- DogBreeds$AGGR
Funcion <- DogBreeds$FUNC

Datos <- cbind(DogBreeds,Tamaño,Peso,Velocidad,Inteligencia, Afectividad, Agresividad)
Datos[,1:7] <- NULL

Una vez se nombran las variables, se pasa a hacer un análisis descriptivo de estas, especialmente de su frecuencia:

pander(summary(Datos))
Tamaño Peso Velocidad Inteligencia Afectividad Agresividad
lar:15 hea: 5 hig: 9 hig: 6 hig:14 hig:13
med: 5 lig: 8 low:10 low: 8 low:13 low:14
sma: 7 med:14 med: 8 med:13 NA NA

Para observar visualmente la frecuencia se utilizan diagramas de barras:

F1<-ggplot(Datos, aes(x=Peso)) + geom_bar(fill= "plum3") + theme_classic()
F2<-ggplot(Datos, aes(x=Velocidad)) + geom_bar(fill= "thistle2") + theme_classic()
F3<-ggplot(Datos, aes(x=Inteligencia)) + geom_bar(fill= "wheat2") + theme_classic()
F4<-ggplot(Datos, aes(x=Afectividad)) + geom_bar(fill= "slategray1") + theme_classic()
F5<-ggplot(Datos, aes(x=Agresividad)) + geom_bar(fill= "slategray3") + theme_classic()
F6 <- grid.arrange(F1,F2,F3,F4,F5, nrow = 2)

  1. Genere una nube de puntos, ¿hay similitudes entre razas de perros? Y si las hay, ¿Qué razas presentan similitudes según sus características? ¿Qué porcentaje de la varianza se explica en el primer plano factorial?
uni.mca <- MCA(Datos, graph = FALSE)
print(uni.mca)
## **Results of the Multiple Correspondence Analysis (MCA)**
## The analysis was performed on 27 individuals, described by 6 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"

Aquí están todos los valores de la información de las listas y matrices.

fviz_mca_ind(uni.mca, repel = TRUE, 
             ggtheme = theme_minimal())+labs(title ="Representación individual de las razas")

El gráfico muestra una distribución en los diferentes zonas de la nube, en la dimensión 2 hay mayor similitud entre las razas:

Este plano factorial tiene una varianza explicada del 52%, aquí se distribuyen las asociaciones donde podemos reconocer razas como el Pekinés y el Chichuahua con mucha cercanía, estas razas presentan gran similitud ya que son perros regularmente pequeños y por lo tanto comparte caracteristicas fisicas. Lo mismo se puede visualizar entre razas más grandes como el Boxer, el Dalmata y el Labrador las cuales también comparten cualidades fisicas.

eigenval <- get_eigenvalue(uni.mca)
pander(head(eigenval))
  eigenvalue variance.percent cumulative.variance.percent
Dim.1 0.4816 28.9 28.9
Dim.2 0.3847 23.08 51.98
Dim.3 0.211 12.66 64.64
Dim.4 0.1576 9.453 74.09
Dim.5 0.1501 9.008 83.1
Dim.6 0.1233 7.398 90.5
fviz_screeplot(uni.mca, addlabels = TRUE, ylim = c(0, 15)) + geom_hline(yintercept = 7.14, linetype = 2, color = "red")

Ya con los porcentajes de varianza y el scree plot podemos definir la cantidad de componentes pricipales, en este caso los 6 primeros superan el límite de explicación valida con un total del 90.5%.

  1. Genere una nube de puntos simultanea (biplot) con las razas de perros y características (clasificaciones), ¿Qué características presenta la raza dálmata?, ¿hay otras razas que presenten las mismas características que la raza dálmata? ¿Qué raza de perros presenta una baja velocidad?
fviz_mca_biplot(uni.mca, repel = TRUE, 
                ggtheme = theme_minimal())+labs( title ="Representación simultanea de las razas y las categorías")

Al graficar el biplot podemos observar que el dálmata posee un nivel de velocidad y tamaño promedio. Respecto a tener similitudes con otras razas, sí, se encuentra muy cercano al Boxer, al labrador y al podb como mencionamos anteriormente.

Respecto a la caracteristica de la velocidad, el Basset Hound se encuentra más cerca de correr lento.

variables <- get_mca_var(uni.mca)
variables
## 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_minimal())

La inteligencia, agresividad y afectividad están más correlacionadas con la primera dimensión y la velocidad, el peso y el tamaño con la segunda.

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

pander(head(round(variables$coord, 2), 15))
  Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
Tamaño_lar -0.84 -0.02 -0.05 -0.17 0.11
Tamaño_med 0.85 -1.23 1.02 0.34 -0.31
Tamaño_sma 1.18 0.92 -0.62 0.12 -0.02
Peso_hea -1.02 0.97 1.22 0.07 0.61
Peso_lig 1.17 0.82 -0.36 0.16 -0.05
Peso_med -0.31 -0.82 -0.23 -0.12 -0.19
Velocidad_hig -0.89 -0.37 -0.76 -0.24 -0.01
Velocidad_low 0.32 1.04 0.4 -0.08 0.31
Velocidad_med 0.6 -0.89 0.36 0.37 -0.37
Inteligencia_hig -0.34 -0.46 -0.6 1.28 1.06
Inteligencia_low -0.35 0.81 -0.35 0.02 -1.04
Inteligencia_med 0.37 -0.29 0.49 -0.6 0.15
Afectividad_hig 0.78 -0.27 -0.06 0.08 0.04
Afectividad_low -0.84 0.29 0.07 -0.08 -0.04
Agresividad_hig -0.43 0.21 0.33 0.55 -0.37

Para sólo ver las modalidades o categorías de las variables (sin las razas):

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

En la nube de puntos se obsevan las categorias más similares, en este caso tenemos un perro con una inteligencia promedio tiene una afectividad alta y por lo tanto una agresividad más baja. También que un perro grande es menos efectivo y más rápido y por último que un perro pequeño tiene un peso liviano.

  1. Realice el mismo procedimiento del primer punto, pero añadiendo la variable suplementaria del enunciado, ¿Qué sucede en el primer plano factorial?

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

Datos2<-cbind(Datos,Funcion)

Luego, observamos las coordenadas de las distintas categorías de la variable, compuestas por las funciones del perro, si es de compañía, es un cazador o es de utilidad:

sup.mca<- MCA(Datos2,quali.sup = 7,ncp=2,graph = FALSE)
coordenadas <- sup.mca$quali.sup$coord
pander(coordenadas)
  Dim 1 Dim 2
com 1.039 0.09532
hun -0.3224 -0.4324
uti -0.9365 0.3673

Primer plano factorial:

fviz_mca_var(sup.mca,repel=T)+labs(
  title ="Nube de puntos de Categorias y Función")

En el gráfico se puede observar que las relaciones más fuertes están dadas cuando un perro cazador posee alta inteligencia y un peso promedio, cuando un perro útil tiene baja afectividad y es grande y por último, cuando un perro de compañía tiene alta afectividad.