library(FactoMineR)
library(ade4)
library(FactoClass)
library(factoextra)
library(missMDA)

Contexto

En éste documento, se abordará un análisis de correspondencia multiple con la base de datos DogBreeds del paquete FactoClass,la cual representa una tabla cruzada de 27 filas y 7 columnas, las filas corresponden a 27 “tipos de razas de perro”, en cuanto a las columnas, son 7 variables cualitativas: “tamaño”, “peso”, “velocidad” (Características Físicas) e “inteligencia”, “afectividad”, “agresividad” (características Mentales), además, como variable suplementaria se tiene a “función”. Fine, J (1996). ##VARIABLES

Análisis Descriptivo

data("DogBreeds")
baseperro<-DogBreeds[,-7]
summary(baseperro,nbelements=Inf)
##   SIZE     WEIG     SPEE     INTE     AFFE     AGGR   
##  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

En cuanto al análisis descriptivo, notamos que en las 3 primeras variables (características físicas) se presenta mayor atributo en tamaño grande (15), peso mediano (14) y velocidad baja (10). En cuanto a las 3 ultimas variables (Características mentales) se presenta mayor concentración en inteligencia media (13), para afectividad y agresividad se presentan resultados similares en ambos casos.

Punto 1

  1. ¿Cuántos ejes se generan en el ACM? R/. En este tipo de analisis se generan p-s ejes, donde p es el número de categorías y s el número de variables, por tanto serán 10 ejes (p = 16 - s = 6).

Punto 2

  1. ¿Qué relación existe entre la Inercia Total, el número de modalidades y el número de variables cualitativas ? R/. La relación radica en que en ACM, la inercia total hace uso de las modalidades y e número de variables cualitativas para su obtención, ya que la incercia total corresponde al número de modalidades entre el número de variables cualitativas menos 1.
p<-16
s<-6
Intotal<-(p/s)-1
Intotal
## [1] 1.666667

Punto 3

  1. ¿Qué similitudes existen entre las razas de perros?
acm<-dudi.acm(baseperro,nf=10,scannf = FALSE)
fviz_mca_ind(acm,repel=T)+labs(title ="Nube de Puntos de la Raza de Perros")

En el primer plano factorial explicando un 52% de la varianza, observamos que existen razas cuyas caracteristicas son prácticamente iguales, como lo son: la raza chihuahua y pekines; teckel y Bulldog; Dalmata y labrador; Collie y Podf. Cabe recalcar que éstas son las razas más relacionadas, pero la nube indica que hay más simulitudes, entonces sería pertinente revisar, qué grupos de razas se forman según su ubicación en el plano.

Representación Simultanea (Biplot)

fviz_mca_biplot(acm,repel=TRUE)+labs(title ="Representación simultanea de Raza de perros y Modalidades")

Podemos análizar que:

Punto 4

  1. Con base a la nube de individuos ¿cuales son los valores excéntricos?
fviz_contrib(acm,axes=c(1,2),choice = "ind" )+labs(title = "Contribución de individuos en el primer plano factorial")

Al inferir sobre las contribuciones en el primer plano, observamos que las razas que más contribuyen a éste plano sobrepasando la contribución promedio de 3.70 significativamente son: Chihuahua, Pekines, Dalmata, Labrador, Mastin, Dogo, Bulldog, Teck, Podb, Bass y Boxer, respectivamente.

fviz_cos2(acm,axes=c(1,2),choice = "ind" )+labs(title = "Cos2 de individuos en el primer plano factorial")

De la gráfica de cosenos cuadrádos podemos deducir, que las razas con con mayor calidad de representación al primer plano factorial, son: Bulldog, Teck, Dálmata y Labrador.

Punto 5

  1. Con base a la nube de variables, ¿cuales son las modalidades más asociadas
fviz_mca_var(acm,axes=c(1,2),repel = T )+labs(title = "Nube de puntos de Categorías en el primer plano factorial")

Como se observa en la nube de variables y sus categorías, un peso ligero, está asociado con un tamaño pequeño del perro, además, los perros con pesos medianos se ven relacionados con alto grado de inteligencia. Por otro lado, mirando las correlaciones negativas, vemos que los perros de tamaño pequeño tienen baja inteligencia.

Punto 6

  1. Se tiene la variable Edad (años) como variable suplementaria.
edad<-as.factor(c(2 ,2  ,2, 2,  2,  4,  1,  1,  1,  4,
4,  2,  2,  2,  2,  4,  4,  5,  5,  5,
5,  6,  6,  7,  7,  7,  5))         

nuevabd<-cbind(baseperro,edad)
acmsup<-MCA(nuevabd,quali.sup = 7,ncp=2,graph = FALSE)
coor_cat<-acmsup$quali.sup$coord
coor_cat
##         Dim 1      Dim 2
## 1  0.69971882  0.2132493
## 2 -0.17189174  0.2662877
## 4  0.23523296 -0.7820574
## 5 -0.08847186  0.2306590
## 6 -0.58953227 -0.7574665
## 7 -0.03562392  0.4118626
coor_edad<-acmsup$quali.sup$eta2
coor_edad
##          Dim 1     Dim 2
## edad 0.1018316 0.2131518
fviz_mca_var(acmsup,repel=T)+labs(title ="Nube de puntos de  Variables con edad suplementaria")

Al trabajar a la variale edad como suplementaria, inferimos que la relación más fuerte es que cuando los perros tienen 1 año de edad, su agresividad es baja.

Punto 7

  1. Realice una interpretación de las contribuciones absolutas y cosenos cuadrados para las modalidades y variables. ¿Los valores excéntricos tienen contribuciones altas?
fviz_contrib(acm,choice = "var",axes=c(1,2),repel = T )+labs(title = "Contribuciones de Categorías en el primer plano factorial")

fviz_cos2(acm,choice="var",axes=c(1,2),repel = T )+labs(title = "cos2 de Categorías en el primer plano factorial")

Al análizar las contribuciones y concenos, nos damos cuenta que las variables que están alejadas del centro de datos como lo son: el peso ligero, tamaño pequeño velocidad baja tamaño medio peso medio, entre otras, corresponden a las variables cuya contribución al primer plano factorial es más alta, sobrepasando la media de contribuciones(6.25) significativamente. Además, éstas variables son las que mejor calidad de representación tienen en éste primer plano.

Punto 8

  1. De la base de datos activa generé un 5% de datos faltantes o no disponibles (NA) y utilice la función impute.MCA para completar la base de datos. Luego realice el ACM y compare el caso de datos completos vs imputación.
fmd <- function(Xo,a)   # Genera a% NAs , md: miss data
{
  X. <- as.matrix(Xo)
  n <- nrow(X.); p <- ncol(X.); N <- n*p
  m <- sample(N,round(a*N,0)); d <- length(m)
  
  for(j in 1:d){
    X.[m[j]] <- NA
  } 
  return(X.)
}


#----Contaminada----#

  Xna <- fmd(baseperro,0.05)
  mcana <- imputeMCA(Xna)
  acmNA<-MCA(Xna,tab.disj = mcana$tab.disj.comp,graph = FALSE)
fmd <- function(Xo,a)   # Genera a% NAs , md: miss data
{
  X. <- as.matrix(Xo)
  n <- nrow(X.); p <- ncol(X.); N <- n*p
  m <- sample(N,round(a*N,0)); d <- length(m)
  
  for(j in 1:d){
    X.[m[j]] <- NA
  } 
  return(X.)
}


#----Contaminada----#

  Xna <- fmd(baseperro,0.05)
  mcana <- imputeMCA(Xna)
  acmNA<-MCA(Xna,tab.disj = mcana$tab.disj.comp,graph = FALSE)
fviz_mca_ind(acmNA,repel=T,axes = c(1,2))+labs(title ="Nube de Puntos de la Raza de Perros con NA´s",x="Dim1 (19.16%)",y="Dim2 (16.44%)")

En la nube de puntos de los individuos, nos damos cuenta que el porcentaje de varianza explicado en el primer plano factorial es de 35.61%, que comparandolo con el PVE del MCA con datos completos que es de 52%, el MCA con NA´s se queda corto en la explicación de varianza. Por otro lado, a diferencia del primer MCA realizado, las similitudes de razas encontradas en el MCA con NA´s, no son las mismas, es decir que fueron modificadas.

fviz_mca_var(acmNA,repel=T,axes = c(1,2))+labs(title ="Nube de puntos de variables con NA´s",x="Dim1 (19.16%)",y="Dim2 (16.44%)")

Por otro lado, al análizar la nube de variables y modalidades, vemos que las correlaciones altas como peso bajo relacionada con tamaño pequeño y agresividad baja relacionada con inteligencia media, se antuvieron. Por otro lado, el modelo sufrió una alteración dado que se crearon nuevas modalidades, como AGGR.NA, que a priori muestre alta excentricidad, sin embargo se deben revisas las contribuciones.

fviz_contrib(acmNA,choice="var",repel=T,axes = c(1,2))+labs(title ="Contribuciones de las variables de la Raza de Perros con NA´s",x="Dim1 (19.16%)",y="Dim2 (16.44%)")

Al analizar las contribuciones, vemos que se ve afectado el promedio de contribución debido a que se crean las variables con los NA´s, teniendo ahora un promedio de 4.76. Por otro lado, el gran cambio en las contribuciones fue de AGGR.NA, pues aunque no tiene la contribución más alta, supera el promedio de contribuciones.

Punto 9

9.¿ Cómo se encuentran las coordenadas de la variable suplementaria 7?

perrosup<-DogBreeds
acmfun<-MCA(perrosup,quali.sup = 7,ncp=2,graph = FALSE)
coor_cat1<-acmfun$quali.sup$coord
coor_cat1
##          Dim 1       Dim 2
## com  1.0393408  0.09532043
## hun -0.3223906 -0.43243220
## uti -0.9364865  0.36733569
coor_edad1<-acmfun$quali.sup$eta2
coor_edad1
##          Dim 1     Dim 2
## FUNC 0.6945841 0.1056786
fviz_mca_var(acmfun,repel=T,axes = c(1,2))+labs(title ="Nube de Puntos de variables y categorías con Función Suplementaria")

Al analizar la variable suplementaria implementada, observamos que la utilidad está relacionada con grados de afectividad baja, que la inteligencia alta, por su parte, se relaciona con caninos con habilidades de caza y finalmente los perros con alto grado de afectividad tienen una función de acompañantes.