Analyse Factorielle de Données Mixtes AFMD en langage R

L'essentiel de cette page

Selon les situations, lorsque l'on a beaucoup de variables, l'on va faire l'Analyse en Composantes Principales (ACP) lorsque les données sont continues pour réduire les dimensions ou de l’Analyse des Correspodances Multiples (ACM) lorsque les données sont catégorielles ou enfin de l’Analyse Factorielle de Données Mixtes (AFDM) lorsque les données sont continues et catégorielles.

Voici comment faire :

1- Mettons en place une AFMD

Prenons des valeurs simple à maîtriser, le jeu de donnée wine de {FactoMineR} qui décrit différents vins.

# Installer et charger le package FactoMineR

# install.packages("FactoMineR")

library(FactoMineR)


# Charger les données

data("wine")

res.afmd<- FAMD(wine)


# Afficher les résultats

print(res.afdm)


# Visualiser les résultats

# install.packages("factoextra")

library(factoextra)

fviz_mfa_ind(res.afdm)

2- Interprétons les résultats

Projection des variables quantitatives sur les composantes

Projection des variables qualitatives sur les composantes

Poids des différentes variablesdans les composantes

Représentation des individus sur les composantes (résultat principaux)

Représentation combinée des individus et des catégories.

3- Imputation des données manquantes sur AFMD

#install.packages("VIM")

library(VIM) ; data(iris)

# Simulons des trous NA dans iris

row_ind <- sample(1:nrow(iris),15,replace=T)

col_ind <- sample(1:ncol(iris),15,replace=T)

for (i in 1:15) {

iris[row_ind[i], col_ind[i]] <- NA

matrixplot(iris)

library(FactoMineR) ; library(missMDA)

# Convertir les facteurs en character (contre-intuitif)

iris$Species <- as.character(iris$Species) 

imputed_data <- imputeFAMD(iris, group = c(4, 1), type = c(rep("s",4), "n"))

Cette fonction imputeFAMD() marche mal, il peut être pertinent d'utiliser la technique des forêts aléatoires pour une imputation efficace :

library(missForest)

# Imputer les valeurs manquantes sans la colonne Banks

dfimp <- missForest(iris)

# Extraire les données imputées

imputed_data <- dfimp$ximp

Une  source externe : https://mate-shs.cnrs.fr/actions/tutomate/tuto32-les-analyses-factorielles-multiples-afm-amand/analyse-factorielle-multiple-avec-r/