{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE)
El análisis (MFA) (J. Pages 2002) es una técnica de análisis de datos multivariante para resumir y visualizar una tabla compleja de datos en la que los individuos se describen mediante múltiples grupos de variables estructuradas (cuantitativas y/o cualitativas) por grupo. En este capítulo, le mostraremos cómo realizar un análisis multivariante y visualizarlo en R usando FactoMineR (para análisis) y factoextra (para visualización de datos). Además, le mostraremos cómo identificar las variables más importantes que más contribuyen a la interpretación de la varianza en su conjunto de datos.
Instale FactoMineR y factoextra de la siguiente manera:
install.packages(c("FactoMineR", "factoextra"))
Cargue los paquetes:
library("FactoMineR")
library("factoextra")
Usaremos los conjuntos de datos de demostración disponibles en el paquete FactoMineR. Este conjunto de datos se trata de una evaluación sensorial de los vinos por parte de diferentes jueces.
library("FactoMineR")
data(wine)
colnames(wine)
Se puede utilizar la función MFA()[paquete FactoMiner]. Un formato simplificado es: este paquete es para Métodos exploratorios de análisis de datos para resumir, visualizar y describir conjuntos de datos. Se encuentran disponibles los principales métodos de componentes principales, aquellos con mayor potencial en términos de aplicaciones: análisis de componentes principales (PCA) cuando las variables son cuantitativas, análisis de correspondencias (CA) y análisis de correspondencias múltiples (MCA) cuando las variables son categóricas, Análisis de Factores Múltiples cuando las variables se estructuran en grupos, etc. y el análisis de conglomerados jerárquicos. F. Husson, S. Le y J. Pages (2017).
El siguiente código R realiza el MFA en los datos de los vinos utilizando los grupos: olor, visual, olor después de agitar y sabor. Estos grupos se denominan grupos activos. El grupo restante de variables - origen (el primer grupo) y juicio general (el sexto grupo) - se denominan grupos complementarios; num.grupo.sup = c(1, 6):
library(FactoMineR)
data(wine)
res.mfa <- MFA(wine,
group = c(2, 5, 3, 10, 9, 2),
type = c("n", "s", "s", "s", "s", "s"),
name.group = c("origin","odor","visual", "odor.after.shaking", "taste", "overall"),
num.group.sup = c(1, 6),
graph = FALSE)
La salida de la función MFA() es una lista que incluye:
print(res.mfa)
Usaremos el paquete factoextra R para ayudar a explicar y visualizar el análisis multivariante. Se utilizarán las siguientes funciones [en el paquete de realidad aumentada]:
get_eigenvalue(res.mfa): recuperar valores propios/variantes almacenados para cada dimensión (eje). fviz_eig(res.mfa): muestra valores propios/variantes. get_mfa_ind(res.mfa): Obtener puntajes individuales. get_mfa_var(res.mfa): Recupera resultados para variables continuas y categóricas, así como para grupos de variables.
fviz_mfa_ind(res.mfa), fviz_mfa_var(res.mfa): Muestra los resultados para la unidad y la variable correspondiente. Ilustraremos cada una de estas características en las siguientes secciones.
Usando la función get_eigenvalue() [paquete factoextra] de la siguiente manera .
El paquete factoextra ,Proporciona algunas funciones fáciles de usar para extraer y visualizar la salida de análisis de datos multivariados, incluidos ‘PCA’ (Análisis de componentes principales), ‘CA’ (Análisis de correspondencia), ‘MCA’ (Análisis de correspondencia múltiple), ‘FAMD’ ( Análisis factorial de datos mixtos), funciones ‘MFA’ (Análisis factorial múltiple) y ‘HMFA’ (Análisis jerárquico factorial múltiple) de diferentes paquetes de R. También contiene funciones para simplificar algunos pasos del análisis de agrupamiento y proporciona una elegante visualización de datos basada en ‘ggplot2’.
library("factoextra")
eig.val <- get_eigenvalue(res.mfa)
head(eig.val)
La función fviz_eig() o fviz_screeplot() [paquete factoextra] se puede utilizar para dibujar el gráfico de pantalla:
fviz_screeplot(res.mfa)
FIGURA # 1 :
Aquí hay un gráfico de la deposición donde puede ver que la relación es más alta en la primera dimensión (50%) y más baja en la décima dimensión, alrededor del 3%. Aparte del hecho de que este número está disminuyendo.
La función get_mfa_var() [de facto extra] se utiliza para extraer los resultados de grupos de variables. Esta función devuelve una lista que contiene las coordenadas, el cos2 y la contribución de los grupos.
group <- get_mfa_var(res.mfa, "group")
group
Se puede acceder a los diferentes componentes de la siguiente manera:
# Coordinates of groups
head(group$coord)
# Cos2: quality of representation on the factore map
head(group$cos2)
# Contributions to the dimensions
head(group$contrib)
Para trazar los grupos de variables, escriba esto:
fviz_mfa_var(res.mfa, "group")
Figura 2: Se observo dos colores ,color rojo que es los grupos activos de variables y color verde que es grupos suplementarios de variables
El gráfico anterior muestra la correlación entre grupos y parámetros. Las coordenadas de los cuatro grupos activos en la primera dimensión son casi idénticas. Esto significa que contribuyen por igual a la primera dimensión. En cuanto a la segunda dimensión, los dos grupos, olfateando y olfateando después de agitar, tienen las coordenadas más altas, mostrando una mayor contribución a la segunda dimensión. Utilice fviz_contrib(): para trazar la parte de métricas del grupo.
# Contribution to the first dimension
fviz_contrib(res.mfa, "group", axes = 1)
# Contribution to the second dimension
fviz_contrib(res.mfa, "group", axes = 2)
Figura 3: Podemos observar un diagrama de barras de las dimensiones de la contribucion de los grupos , el porcentaje mas alto es el del odor con un 40 porciento y el menor es el visual con menos del 10 por ciento
La función get_mfa_var() [extra de facto] se utiliza para extraer los resultados de variables cuantitativas. Esta función devuelve una lista que contiene coordenadas, cos2 y contribución variable:
quanti.var <- get_mfa_var(res.mfa, "quanti.var")
quanti.var
Se puede acceder a los diferentes componentes de la siguiente manera:
# Coordinates
head(quanti.var$coord)
# Cos2: quality on the factore map
head(quanti.var$cos2)
# Contributions to the dimensions
head(quanti.var$contrib)
El siguiente código R representa las variables cuantitativas por grupo. La paleta de argumentos se usa para cambiar los colores del grupo (consulte ?ggpubr::ggpar para obtener más información sobre la paleta). Las variables cuantitativas adicionales se indican mediante una flecha discontinua y color púrpura. Para evitar la duplicación de texto, usamos repel = TRUE.
fviz_mfa_var(res.mfa, "quanti.var", palette = "jco",
col.var.sup = "violet", repel = TRUE)
Figura 4 : La figura es una variable cuantitativa donde logramos ver las dimensiones de unos porcentajes de diferentes grupos,cada color es un grupo , y se muestra el porcentaje de las dimensiones donde la mayoria se muestran en el lado derecho , la mitad son positivas y las otras negativas.
fviz_mfa_var(res.mfa, "quanti.var", palette = "jco",
col.var.sup = "violet", repel = TRUE,
geom = c("point", "text"), legend = "bottom")
Figura 5 Los gráficos de variables (círculos de correlación) muestran relaciones entre variables, calidad de representación de variables y correlaciones entre variables y dimensiones. Las variables que tienen una correlación positiva se agrupan y las variables que tienen una correlación negativa se colocan en lados opuestos del origen del gráfico (cuadrantes opuestos). La distancia entre los puntos de la variable y el origen mide la calidad de las variables en el mapa de factores. Los puntos variables alejados del origen están bien representados en el mapa de factores. Para una dimensión dada, las variables que están más correlacionadas con esa dimensión son las más cercanas a esa dimensión.
La contribución de las variables cuantitativas (en %) a la definición de las dimensiones se puede visualizar mediante la función fviz_contrib() [paquete factoextra]. Las variables están coloreadas por grupos.
El siguiente código R muestra las 20 principales categorías de variables que contribuyen a las dimensiones:
# Contributions to dimension 1
fviz_contrib(res.mfa, choice = "quanti.var", axes = 1, top = 20,
palette = "jco")
Figura 6: Es una variable cuantitativa , donde cada grupo es un color , y sus porcentajes de contribuciones van disminuyendo , donde el surface.feeling es el que mas porcentaje tiene y el odor. intensity el que menos .
# Contributions to dimension 2
fviz_contrib(res.mfa, choice = "quanti.var", axes = 2, top = 20,
palette = "jco")
Figura 7: La línea roja discontinua en el gráfico anterior muestra el valor medio esperado si las contribuciones son uniformes. Cálculo del valor esperado del precio en base a la hipótesis nula ademas tambien esta disminuyendo hasta fritly . before shaking con un porcentaje menor al 5 Las variables cuantitativas con la mayor contribución se pueden resaltar en el diagrama de dispersión usando el argumento col.var = “contrib”. Esto crea un color degradado que se puede personalizar con el argumento “gradient.cols”.
fviz_mfa_var(res.mfa, "quanti.var", col.var = "contrib",
gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
col.var.sup = "violet", repel = TRUE,
geom = c("point", "text"))
Figura 8: El diagrama anterior representa una variable cuantitativa, asimismo, tenemos los datos expresados en porcentajes de diferentes cosas. Cada color representa el numero de contribuciones y el lugar donde esten posicionados tambien influye. hay dos contribuciones mayores a 6 en el lado positivo mayores al 0.5 pero menor al 1 .
# Color by cos2 values: quality on the factor map
fviz_mfa_var(res.mfa, col.var = "cos2",
gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
col.var.sup = "violet", repel = TRUE)
Figura 9: El diagrama anterior representa una variable cuantitativa, donde mas del 0.8 de cos2 estan maso menos en el 0.1 y hay dos de 0.2 entre el 0 y 0.5 positivo y negativo
fviz_cos2(res.mfa, choice = "quanti.var", axes = 1)
Figura 10: se muestra un diagrama de co2 de variables cuantitativas que esta disminuyendo , logramos observar un cos2 de representacion de cualidad mayor para surface.feeling y el menor es spice .before .shaking
Para obtener los resultados de las personas, escriba esto:
ind <- get_mfa_ind(res.mfa)
ind
Para graficar individuos, use la función fviz_mfa_ind() [en realidad adicional]. Por defecto, las personas son de color azul. Sin embargo, al igual que las variables, los individuos pueden colorearse según sus valores de cos2.
fviz_mfa_ind(res.mfa, col.ind = "cos2",
gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
repel = TRUE)
Figura 11: muestra las dimensiones individuales del mfa del cos , el 0.75 tuvo un porcentaje mayor al 3 y positivo y entre el 0,50 tuvo un porcentaje negativo menor a -1 , tambien se ve que el 0.75 esta exactamente en el 1 L
fviz_mfa_ind(res.mfa,
habillage = "Label", # color by groups
palette = c("#00AFBB", "#E7B800", "#FC4E07"),
addEllipses = TRUE, ellipse.type = "confidence",
repel = TRUE # Avoid text overlapping
)
Figura 12: En el grafico anterior podemos ver diferentes figuras con diversos colores que representan una etiqueta, es decir, que por ejemplo: La figura que tenga el color naranja representara a “Chinon”, ademas de que podemos obtener datos de ellas , este chichon ocupa el eje negativo tanto positivo de el lado derecho e izquierdo .
usando la función fviz_ellipses() [de hecho extra] de la siguiente manera:
fviz_ellipses(res.mfa, c("Label", "Soil"), repel = TRUE)
Figura 13: En estos dos graficos se ven a la derecha el grafico de los suelos y el de la izquierda de las etiquetas mostrando las dimensiones
El análisis factorial múltiple (MFA) se utiliza para analizar un conjunto de datos en el que los individuos son descritos por varios conjuntos de variables (cuantitativas y / o cualitativas) estructuradas en grupos. fviz_mfa() proporciona una visualización elegante basada en ggplot2 de las salidas MFA de la función R: MFA [FactoMineR].
Alternativamente, puede especificar índices de variables categóricas:
fviz_mfa_ind(res.mfa, partial = "all")
Figura 14: El color rojo representa las variables de olor; el color azul representa las variables taste , y así sucesivamente.
fviz_mfa_ind(res.mfa, partial = c("1DAM", "1VAU", "2ING"))
Figura 15:
El morado va desde el -1.5 hasta el 1 y se une con el taste Desde el punto de vista del grupo de olor, 2ING fue más “intenso” y “armonioso” que 1VAU pero desde el punto de vista del grupo de sabor, 1VAU fue más “intenso” y “armonioso” que 2ING.
La gráfica del eje secundario muestra la relación entre el eje primario MFA y el eje primario obtenido al analizar cada grupo usando PCA (para grupos de variables continuas) o MCA (para variables cualitativas).
fviz_mfa_axes(res.mfa)
Figura 16: el grafico de ejes parciales muestra 6 grupos de diferente color donde unos muestran dinamicas 1 y otros dinamicas dos en este ejes del plano cartesiano .