Para el ejercicio se utilizo la base de poison pero esta ves el objetivo es identificar y responder a preguntas que surgirian y las asociasiones entre variables, Primero se extrae un bloque de la base de datos para el respectivo analisis, en este caso el siguiente ejemplo ilustra las variables
data(poison)
head(poison[, 9:15], 3)
## Diarrhae Potato Fish Mayo Courgette Cheese Icecream
## 1 Diarrhea_y Potato_y Fish_y Mayo_y Courg_y Cheese_y Icecream_y
## 2 Diarrhea_n Potato_y Fish_y Mayo_y Courg_y Cheese_n Icecream_y
## 3 Diarrhea_y Potato_y Fish_y Mayo_y Courg_y Cheese_y Icecream_y
en el siguiente apartado se requiere analizar las variables que contribuyen si los niños de la escuela sufireron diarrea, los datos del bloque son 55 observaciones y 15 variables, de las cuales 47 observaciones, y 13 variables se encuentran activas.
poison.active <- poison[9:55, 3:15]
head(poison.active[, 9:12], 5)
## Fish Mayo Courgette Cheese
## 9 Fish_y Mayo_y Courg_y Cheese_y
## 10 Fish_y Mayo_y Courg_y Cheese_y
## 11 Fish_y Mayo_y Courg_y Cheese_y
## 12 Fish_y Mayo_y Courg_y Cheese_y
## 13 Fish_y Mayo_y Courg_y Cheese_y
la siguiente tabla muestra en forma de frecuencia las variables observadas, en este caso solo se observan 2 filas y 4 columnas Resumen de las variables
summary(poison.active)[, 9:12]
## Fish Mayo Courgette Cheese
## Fish_n: 0 Mayo_n: 9 Courg_n: 5 Cheese_n: 6
## Fish_y:47 Mayo_y:38 Courg_y:42 Cheese_y:41
Frecuencias de forma grafica de los resultados
#Forma rápida de obtener infomación descriptiva
par(mfrow=c(2,2))
for(i in 9:12){
plot(poison.active[,i],main=colnames(poison.active)[i], ylab="Count",col="steelblue",las=2)
}
for (i in 9:12) {
plot(poison.active[,i], main=colnames(poison.active)[i],
ylab = "Count", col="steelblue", las = 2)
}
#Análisis de correspondencias simples
res.mca<-MCA(poison.active,graph=FALSE)
#Cálculo de autovalores
eig.val<-get_eigenvalue(res.mca)
#Cálculo de autovalores
eig.val<-get_eigenvalue(res.mca)
Para visualizar los porcentajes de inercia explicados por cada dimensión de MCA, es decir que entre la dimension 1 y 2 se obtiene mas del 50% de la informacion.
#Visualización de contribuciones
fviz_screeplot(res.mca,addlabels=TRUE,ylim=c(0,45))
El siguiente gráfico se visualiza un patron patrón global dentro de los datos. Las filas (individuos) están representadas por puntos azules y las columnas (categorías variables) por triángulos rojos.
La distancia entre cualquier punto de fila o columna da una medida de su similitud (o disimilitud). Los puntos de fila con perfil similar se cierran en el mapa de factores. Lo mismo es válido para los puntos de columna.
fviz_mca_biplot(res.mca,repel=TRUE,ggtheme=theme_minimal())
## Warning: ggrepel: 7 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps
El siguiente enunciado nos muestra ya lo que finalmente es el resultado, como las coordenadas, y contribucin de las categorias
#Resultados del análisis por Variable
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"
#Coordenadas
head(var$coord)
## Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
## Sick_n 1.40495853 -0.06753840 -0.02454959 0.0015213575 0.23319270
## Sick_y -0.65857431 0.03165863 0.01150762 -0.0007131363 -0.10930908
## F 0.01509210 0.39323521 0.37625179 -0.8257390215 -0.10162080
## M -0.01328104 -0.34604699 -0.33110158 0.7266503389 0.08942631
## Nausea_n 0.25696466 0.13406295 -0.18446956 -0.1128461937 -0.21805861
## Nausea_y -0.95076926 -0.49603293 0.68253736 0.4175309167 0.80681686
#Cos2
head(var$cos2)
## Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
## Sick_n 0.9252696020 0.002138173 0.0002825074 1.084935e-06 0.025490079
## Sick_y 0.9252696020 0.002138173 0.0002825074 1.084935e-06 0.025490079
## F 0.0002004388 0.136077862 0.1245775603 6.000235e-01 0.009087573
## M 0.0002004388 0.136077862 0.1245775603 6.000235e-01 0.009087573
## Nausea_n 0.2443141038 0.066499640 0.1259073651 4.711677e-02 0.175933366
## Nausea_y 0.2443141038 0.066499640 0.1259073651 4.711677e-02 0.175933366
#Contribuciones
head(var$contrib)
## Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
## Sick_n 14.011009032 0.09613620 0.016259928 7.334490e-05 1.9137526
## Sick_y 6.567660484 0.04506384 0.007621841 3.438042e-05 0.8970715
## F 0.002371226 4.77993091 5.601684533 3.169015e+01 0.5330311
## M 0.002086679 4.20633920 4.929482389 2.788734e+01 0.4690674
## Nausea_n 1.156111388 0.93435826 2.264591914 9.953862e-01 4.1277449
## Nausea_y 4.277612135 3.45712556 8.378990083 3.682929e+00 15.2726562
el siguiente grafico se observan las dimensiones que mas contribuyen y responden mejor
# Correlaciones entre las variables y las dimensiones
fviz_mca_var(res.mca,choice="mca.cor",
repel=TRUE,ggtheme=theme_minimal())
#Visualizar primeras coordenadas
head(round(var$coord,2),4)
## Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
## Sick_n 1.40 -0.07 -0.02 0.00 0.23
## Sick_y -0.66 0.03 0.01 0.00 -0.11
## F 0.02 0.39 0.38 -0.83 -0.10
## M -0.01 -0.35 -0.33 0.73 0.09
# dibujar solamente variables
fviz_mca_var(res.mca,
repel=TRUE,#Avoidtextoverlapping(slow)
ggtheme=theme_minimal())
#Otro color
fviz_mca_var(res.mca,col.var="black",shape.var=15,
repel=TRUE)
#Calidad de la representación de las variables
head(var$cos2,4)
## Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
## Sick_n 0.9252696020 0.002138173 0.0002825074 1.084935e-06 0.025490079
## Sick_y 0.9252696020 0.002138173 0.0002825074 1.084935e-06 0.025490079
## F 0.0002004388 0.136077862 0.1245775603 6.000235e-01 0.009087573
## M 0.0002004388 0.136077862 0.1245775603 6.000235e-01 0.009087573
#Cos2 feliz
fviz_mca_var(res.mca,col.var="cos2",
gradient.cols=c("#00AFBB","#E7B800","#FC4E07"),
repel=TRUE, ggtheme=theme_minimal())
#Cos
fviz_mca_var(res.mca,alpha.var="cos2",
repel=TRUE,ggtheme=theme_minimal())
#correlación
corrplot(var$cos2,is.corr=FALSE)
#Cos2 en dimensiones 1 y 2
fviz_cos2(res.mca,choice="var",axes=1:2)
#contribuciones de las variables a las dimensiones
head(round(var$contrib,2),4)
## Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
## Sick_n 14.01 0.10 0.02 0.00 1.91
## Sick_y 6.57 0.05 0.01 0.00 0.90
## F 0.00 4.78 5.60 31.69 0.53
## M 0.00 4.21 4.93 27.89 0.47
#Contribuciones eje 1
fviz_contrib(res.mca,choice="var",axes=1,top=15)
#Contribuciones eje 2
fviz_contrib(res.mca,choice="var",axes=1,top=15)
#contribuciones totales
fviz_contrib(res.mca,choice="var",axes=1:2,top=15)
#contribuciones felices
fviz_mca_var(res.mca,col.var="contrib",
gradient.cols=c("#00AFBB","#E7B800","#FC4E07"),repel=TRUE,
ggtheme=theme_minimal()
)
#otra forma
fviz_mca_var(res.mca,alpha.var="contrib",
repel=TRUE,
ggtheme=theme_minimal())
#Resultados del análisis por 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"
#Coordenadas
head(ind$coord)
## Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
## 9 -0.47165828 -0.3135257449 0.07398092 0.1801972 0.07920007
## 10 -0.21176978 -0.0009442361 -0.37428232 0.1298627 0.04818027
## 11 -0.62276576 0.0453600471 0.06606509 -0.1654032 0.18946046
## 12 0.01148998 0.1121304727 -0.23595928 -0.3622575 0.13188133
## 13 -0.30997731 -0.0048889543 0.03326865 -0.3954095 -0.27493219
## 14 0.88631381 0.0011891782 0.04666641 -0.2143015 0.07266415
#Calidad de la representación
head(ind$cos2)
## Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
## 9 0.3574613876 1.579504e-01 0.008794550 0.05217595 0.010079184
## 10 0.0824330981 1.638834e-06 0.257497059 0.03099862 0.004266897
## 11 0.5399798670 2.864673e-03 0.006076761 0.03809044 0.049976436
## 12 0.0002175703 2.072088e-02 0.091756119 0.21626968 0.028663391
## 13 0.2540395629 6.319366e-05 0.002926254 0.41336697 0.199844745
## 14 0.7310498444 1.316030e-06 0.002026659 0.04273880 0.004913741
#Contribuciones
head(ind$contrib)
## Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
## 9 1.3685145728 1.795494e+00 0.1279740 0.8917755 0.19131947
## 10 0.2758814255 1.628541e-05 3.2755240 0.4631569 0.07080217
## 11 2.3858544380 3.758240e-02 0.1020531 0.7513587 1.09482614
## 12 0.0008121441 2.296597e-01 1.3018361 3.6040778 0.53048689
## 13 0.5910909497 4.365856e-04 0.0258793 4.2939171 2.30546846
## 14 4.8324739824 2.583042e-05 0.0509203 1.2612750 0.16104540
#Cos2 feliz
fviz_mca_ind(res.mca, col.ind="cos2", gradient.cols=c("#00AFBB","#E7B800","#FC4E07"),
repel=TRUE, ggtheme=theme_minimal())
#cos2
fviz_cos2(res.mca,choice="ind",axes=1:2,top=20)
#contribuciones a las dimensiones
fviz_contrib(res.mca,choice="ind",axes=1:2,top=20)
#Individuos por grupo
fviz_mca_ind(res.mca, label="none",
habillage="Vomiting", palette=c("#00AFBB","#E7B800"), addEllipses=TRUE,ellipse.type="confidence", ggtheme=theme_minimal())
#Dibujo por variables
fviz_ellipses(res.mca,c("Vomiting","Fever"),geom="point")