La base de datos utilizada para el desarrollo del ejercicio corresponde a “DogBreeds”, la cual corresponde a una tabla de 27 filas (razas de perros) y 7 columnas (variables cualitativas respecto al físico: tamaño, peso, velocidad; variables relacionadas con la actividad psiquíca: inteligencia, afectividad, agresividad; y la última es una variable suplementaria: función). Fine, J (1996).
| Variables | Categorías | ||
|---|---|---|---|
| Tamaño (SIZE) | Small (sma) | Medium (med) | Large (lar) |
| Peso (WEIG) | Lightwight (lig) | Medium (med) | Heavy (hea) |
| Velocidad (SPEE) | Low (low) | Medium (med) | High (hig) |
| Inteligencia (INTE) | Low (low) | Medium (med) | High (hig) |
| Afectividad (AFEE) | Low (low) | High (hig) | |
| Agresividad (AGGR) | Low (low) | High (hig) | |
| Función (FUNC) | Company (com) | Hunt (hun) | Utility (util) |
library(ade4)
library(FactoClass)
library(factoextra)
library(FactoMineR)
library(ggplot2)
library(knitr)
data("DogBreeds")
DogBreeds
## SIZE WEIG SPEE INTE AFFE AGGR FUNC
## bass sma lig low low low hig hun
## beau lar med hig med hig hig uti
## boxe med med med med hig hig com
## buld sma lig low med hig low com
## bulm lar hea low hig low hig uti
## cani sma lig med hig hig low com
## chih sma lig low low hig low com
## cock med lig low med hig hig com
## coll lar med hig med hig low com
## dalm med med med med hig low com
## dobe lar med hig hig low hig uti
## dogo lar hea hig low low hig uti
## foxh lar med hig low low hig hun
## foxt sma lig med med hig hig com
## galg lar med hig low low low hun
## gasc lar med med low low hig hun
## labr med med med med hig low hun
## masa lar med hig hig hig hig uti
## mast lar hea low low low hig uti
## peki sma lig low low hig low com
## podb med med med hig hig low hun
## podf lar med med med low low hun
## poin lar med hig hig low low hun
## sett lar med hig med low low hun
## stbe lar hea low med low hig uti
## teck sma lig low med hig low com
## tern lar hea low med low low uti
Inicialmente se propone realizar una análisis descriptivo de la información obtenida de las 27 razas de perros, donde se evidencia que según las características físicas la mayoría de los perros son de tamaño grande con un total de 15, de peso mediano (14), y velocidad baja (10). Respecto a las varibles psiquícas, la inteligencia media contiene la mayor cantidad de individuos (13), mientras que para la afectividad y agresividad la distribución de los resultados es similar.
summary(DogBreeds)
## SIZE WEIG SPEE INTE AFFE AGGR FUNC
## lar:15 hea: 5 hig: 9 hig: 6 hig:14 hig:13 com:10
## med: 5 lig: 8 low:10 low: 8 low:13 low:14 hun: 9
## sma: 7 med:14 med: 8 med:13 uti: 8
Con base a la Figura 1, se observa que el porcentaje de varianza explicado en el primer plano factorial es del 52%, adicionalmente, permite identificar algunas tipologías que están describiendo las asociaciones entre las modalidades, como por ejemplo:
datos=DogBreeds
ACM_Perro= MCA(datos, ncp = 6, graph = FALSE, quali.sup = 7)
ACM_Perro1= MCA(datos[1:6], ncp = 6, graph = FALSE)
fviz_mca_biplot(ACM_Perro1, repel = TRUE,
ggtheme = theme_minimal(), title = "")
Figura 1. Representación Simultanea ACM
# Contributions of rows to dimension 1
fviz_contrib(ACM_Perro, choice = "var", axes = 1, top = 15)
# Contributions of rows to dimension 2
fviz_contrib(ACM_Perro, choice = "var", axes = 2, top = 15)
# Contribucion total para la componente 1 y 2
fviz_contrib(ACM_Perro, choice = "var", axes = 1:2, top = 15)
Se generan p-s ejes, donde p = 16 categorías y s = 6 preguntas, entonces la cantidad de ejes que se generan correponde a 16-6 = 10. Esto también se puede ver en términos del número de valores propios.
ACM_Perro1$eig[,1]
## dim 1 dim 2 dim 3 dim 4 dim 5 dim 6
## 0.481606165 0.384737288 0.210954049 0.157554025 0.150132670 0.123295308
## dim 7 dim 8 dim 9 dim 10
## 0.081462460 0.045669757 0.023541911 0.007713034
La relación es que la Inercia Total es el cociente entre el número de modalidades y el número de variables cualitativas menos 1.
\(I = \frac{p}{s} - 1 = \frac{16}{6}-1 = 1.666667\)
sum(ACM_Perro1$eig[,1])
## [1] 1.666667
Para identificar las similitudes existentes entre las razas de perro resulta útil apoyarse de los planos factoriales. La Figura 2 muestra que los similares son:
fviz_mca_ind(ACM_Perro, repel = TRUE, title=" ")
Figura 2. Nube de individuos (raza de perros)
El \(Cos^2\) da información respecto a la calidad de representación para cada eje, es por esto, que con ayuda de la Tabla 1 se observa que las razas buld y teck son las que mayor represente para la primera componente, mientras que para la segunda componente bass, dalm y labr obtienen un \(Cos^2\) más alto.
kable(round(ACM_Perro$ind$cos2[,1:2],4), caption = "Tabla 1. Cos2 para la componente 1 y 2")
| Dim 1 | Dim 2 | |
|---|---|---|
| bass | 0.0338 | 0.6349 |
| beau | 0.0886 | 0.1537 |
| boxe | 0.1113 | 0.4325 |
| buld | 0.6245 | 0.1839 |
| bulm | 0.2707 | 0.1430 |
| cani | 0.3852 | 0.0001 |
| chih | 0.3799 | 0.3827 |
| cock | 0.2792 | 0.0032 |
| coll | 0.0124 | 0.2493 |
| dalm | 0.2363 | 0.5530 |
| dobe | 0.4876 | 0.0636 |
| dogo | 0.5608 | 0.1315 |
| foxh | 0.5583 | 0.0005 |
| foxt | 0.4363 | 0.0108 |
| galg | 0.3388 | 0.0051 |
| gasc | 0.1860 | 0.0089 |
| labr | 0.2363 | 0.5530 |
| masa | 0.1537 | 0.1402 |
| mast | 0.3000 | 0.4136 |
| peki | 0.3799 | 0.3827 |
| podb | 0.1050 | 0.4940 |
| podf | 0.0175 | 0.2221 |
| poin | 0.2946 | 0.1168 |
| sett | 0.2239 | 0.1253 |
| stbe | 0.2016 | 0.2087 |
| teck | 0.6245 | 0.1839 |
| tern | 0.0884 | 0.1415 |
Referente a la calidad de representación en el primer plano factorial según la Figura 3, se puede decir que las razas buld, teck, peki, chih, dalm, labr son los individuos que presentan un \(Cos^2\) más alto, es decir, la inercia se ve mejor explicada por ellos.
fviz_mca_ind(ACM_Perro, col.ind = "cos2",
gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
repel = TRUE, # Avoid text overlapping
ggtheme = theme_minimal(), title="", labelsize=4)
Figura 3. Nube de individuos y Cos2
Las contribuciones por Individuos permiten identificar cuales son los que más contribuyen en la construcción de los ejes, por está razón se generó la Tabla 2, allí se puede visualizar que para el primer eje la variable que más aporta corresponde a dogo, buld y teck, y para el eje 2 la mayor contribución está dada por las razas bass y podb.
kable(round(ACM_Perro$ind$contrib[,1:2],4), caption = "Tabla 2. Contribución para la componente 1 y 2")
| Dim 1 | Dim 2 | |
|---|---|---|
| bass | 0.4966 | 11.6742 |
| beau | 0.7738 | 1.6796 |
| boxe | 1.5391 | 7.4850 |
| buld | 7.8971 | 2.9108 |
| bulm | 4.3556 | 2.8794 |
| cani | 6.4006 | 0.0025 |
| chih | 5.4366 | 6.8550 |
| cock | 4.1353 | 0.0602 |
| coll | 0.1059 | 2.6645 |
| dalm | 3.2216 | 9.4385 |
| dobe | 5.8638 | 0.9581 |
| dogo | 8.4305 | 2.4741 |
| foxh | 5.9090 | 0.0061 |
| foxt | 5.9774 | 0.1859 |
| galg | 3.5215 | 0.0666 |
| gasc | 2.0582 | 0.1238 |
| labr | 3.2216 | 9.4385 |
| masa | 1.8194 | 2.0766 |
| mast | 4.3945 | 7.5847 |
| peki | 5.4366 | 6.8550 |
| podb | 1.7574 | 10.3508 |
| podf | 0.1615 | 2.5610 |
| poin | 3.4866 | 1.7297 |
| sett | 1.9545 | 1.3692 |
| stbe | 2.6173 | 3.3927 |
| teck | 7.8971 | 2.9108 |
| tern | 1.1311 | 2.2668 |
Adicionalmente se genera la Figura 4, donde se observa la contribución para la construcción del primer plano factorial, donde los individuos con colores cercanos a rojo son quienes dan un mayor aporte, caso contrario a los cercanos al tono azul. De aquí se resalta entonces los indivuduos como peki y chih como los de mayor valor de contribución, y gasc, beau, podf y coll como los de menos valor.
fviz_mca_ind(ACM_Perro, col.ind = "contrib",
gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
repel = TRUE, # Avoid text overlapping
ggtheme = theme_minimal(), title="", labelsize=4)
Figura 4. Nube de individuos y Contribuciones
Se observa en la Figura 5, que la modalidad de peso ligero (WEIG.lig) y tamaño pequeño (SIZE.sma) se encuentran con una alta asociación y tiene un relación significativa con la baja velocidad (SPEE.low). Además, hay una relación estrecha entré la afectividad baja, el tamaño grande y una agresividad alta, así como una inteligencia mediana con agresividad baja y afectividad alta. Por último, el tamaño mediano (SIZE.med), se encuentra altamente asociaciada con velocidad media (SPEE.med).
fviz_mca_var(ACM_Perro1,
repel = TRUE, # Avoid text overlapping
ggtheme = theme_minimal(), title="", labelsize=4)
Figura 5. Nube de variables
Las modalidades de mayor coseno cuadrado para el primer plano factorial corresponden a peso ligero y tamaño largo, mientras que la de menor valor inteligencia alta.
# Representacion de las variables por cos2
fviz_mca_var(ACM_Perro1, col.var = "cos2",
gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
repel = TRUE, # Avoid text overlapping
ggtheme = theme_minimal(), title="", labelsize=4)
Las modalidades de dan una mayor contribución para la construcción del primer plano factorial corresponden a peso ligero y tamaño pequeño, por el contrario, se encuentran las modalidades relacionadas con la inteligencia y la agresividad.
# Representacion de las variables por contribucion
fviz_mca_var(ACM_Perro1, col.var = "contrib",
gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
repel = TRUE, # Avoid text overlapping
ggtheme = theme_minimal(), title="", labelsize=4)
Como se observa en la figura, al tener datos datos faltantes se obtiene nuevas modalidades y categorías, es decir, dependiendo de donde de la categoría en la que este encuentre el valor faltante, esta categoría automáticamente aparece como nueva.
ACMNa <- 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.)
}
Datos_Faltantes=ACMNa(DogBreeds[-7] , 0.05)
ACM_Perro_Na= MCA(Datos_Faltantes, ncp = 6, graph = FALSE)
kable(round(ACM_Perro_Na$eig[,1],4))
| x | |
|---|---|
| dim 1 | 0.4926 |
| dim 2 | 0.4031 |
| dim 3 | 0.3137 |
| dim 4 | 0.2366 |
| dim 5 | 0.2123 |
| dim 6 | 0.1980 |
| dim 7 | 0.1579 |
| dim 8 | 0.1154 |
| dim 9 | 0.1036 |
| dim 10 | 0.0856 |
| dim 11 | 0.0649 |
| dim 12 | 0.0447 |
| dim 13 | 0.0392 |
| dim 14 | 0.0255 |
| dim 15 | 0.0069 |
fviz_mca_biplot(ACM_Perro_Na,
repel = TRUE, # Avoid text overlapping (slow if many point)
ggtheme = theme_minimal(), title = "")
Se tiene la variable suplementaria Edad, la cual es cuantitativa, con la que se calcula el ACM obteniendo las siguientes coordenadas
Edad_perros<-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)
DatosEdad<-cbind(DogBreeds[-7],Edad_perros)
ACM_Edad<-MCA(DatosEdad,ncp=7,graph = FALSE, quanti.sup = 7)
ACM_Edad$quanti.sup$coord
## Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
## Edad_perros -0.1217155 -0.09395855 0.04058668 -0.1535185 0.3931948
## Dim 6 Dim 7
## Edad_perros 0.3177735 -0.1894008
kable(round(ACM_Edad$quanti.sup$coord,4), caption = "Coordenada de ACM con la variable suplementaria edad")
| Dim 1 | Dim 2 | Dim 3 | Dim 4 | Dim 5 | Dim 6 | Dim 7 | |
|---|---|---|---|---|---|---|---|
| Edad_perros | -0.1217 | -0.094 | 0.0406 | -0.1535 | 0.3932 | 0.3178 | -0.1894 |
Como se observa en la figura, se obtiene las categorías de la variable cualitativa Función, las cuales son com, uti, hun.
ACM_Perro1= MCA(DogBreeds, ncp = 6, graph = FALSE, quali.sup = 7)
ACM_Perro1$quali.sup$coord
## Dim 1 Dim 2 Dim 3 Dim 4 Dim 5 Dim 6
## com 1.0393408 0.09532043 -0.06789625 -0.08896431 -0.01114286 -0.2682897
## hun -0.3223906 -0.43243220 -0.34874881 -0.18394526 -0.44294027 0.6648777
## uti -0.9364865 0.36733569 0.47721272 0.31814381 0.51223638 -0.4126253
kable(round(ACM_Perro1$quali.sup$coord,4), caption = "Coordenada de ACM con la variable suplementaria Función")
| Dim 1 | Dim 2 | Dim 3 | Dim 4 | Dim 5 | Dim 6 | |
|---|---|---|---|---|---|---|
| com | 1.0393 | 0.0953 | -0.0679 | -0.0890 | -0.0111 | -0.2683 |
| hun | -0.3224 | -0.4324 | -0.3487 | -0.1839 | -0.4429 | 0.6649 |
| uti | -0.9365 | 0.3673 | 0.4772 | 0.3181 | 0.5122 | -0.4126 |
fviz_mca_biplot(ACM_Perro1,
repel = TRUE, # Avoid text overlapping (slow if many point)
ggtheme = theme_minimal(), title = "")