Lab3 - AFC et ACM

Author
Affiliations

Marie-Pierre Etienne

ENSAI - CREST

https://marieetienne.github.io/MAF/

Published

December 19, 2024


Objectifs de la séance

Le but de la séance est d’utiliser l’AFC et l’ACM sur deux problématiques réelles.


Analyse factorielle des correspondances - Exemple

Les données sont extraites des résultats de la plateforme Parcoursup.

Contexte

Le but de l’étude menée ici etcette étude est d’étudier le lien entre type de formation et département.

  • Quels sont les départements ayant des offres de formation similaire ?
  • Quels sont les types de formations présents préférentiellement dans certains département ?

Données :

  • Fichier : parcoursup2023.csv

  • Variables qualitatives d’intérêts : Dept le département de la formation concernée, ’Formation`le type de formation.

  • Variables additionnelles : Selection vaut sélective si la formation est sélective, Parite est une variable pouvant prendre trois modalités : femininesi la formation comporte plus de 65% de femmes, paritaire si la formation compte entre 35 et 65% de femmes, masculine sinon,Detail`précise le type de formation.

  • Dimensions : 11 formations disciplines et 97 départements (les départements hors france métropolitaines et l’étranger sont rassemble dans un département fictif 99)

Exemple de code à commenter et discuter

Identifier ce que fait le code ci-dessous et comment il peut être mobilisé pour aborder la question de la typologie des départements selon leur offre de formation.

psup_dta <- read.csv("https://marieetienne.github.io/datasets/parcoursup2023.csv",fileEncoding = "UTF-8") 

head(psup_dta)

dta_dep_form <- psup_dta |> 
  group_by(Dept, Formation) |> 
  count() |> 
  pivot_wider(names_from = Formation, values_from = n, values_fill = 0) 

dta_dep_selection <- psup_dta |> 
  group_by(Dept, Selection) |> 
  count() |> 
  pivot_wider(names_from = Selection, values_from = n, values_fill = 0) 

dta_dep_parite <- psup_dta |> 
  group_by(Dept, Parite) |> 
  count() |> 
  pivot_wider(names_from = Parite, values_from = n, values_fill = 0) 

dta_dep_detail <- psup_dta |> 
  group_by(Dept, Detail) |> 
  count() |> 
  pivot_wider(names_from = Detail, values_from = n, values_fill = 0) 


dta_dep_filiere <- dta_dep_form |> inner_join(dta_dep_parite) |> inner_join(dta_dep_selection) |>  column_to_rownames('Dept')


dep_filiere.ca <-  CA(dta_dep_filiere , col.sup = 12:ncol(dta_dep_filiere))

fviz_eig(dep_filiere.ca, choice = "eigenvalue")

inertia.row <- tibble(Dept= row.names(dta_dep_filiere),
                      poids = dep_filiere.ca$call$marge.row, 
                  inertie = dep_filiere.ca$row$inertia,
                  percent.inertie = dep_filiere.ca$row$inertia / sum(dep_filiere.ca$row$inertia),
                  contrib_Dim1 = round(dep_filiere.ca$row$contrib[,1],2),
                  contrib_Dim2 = round(dep_filiere.ca$row$contrib[,2],2),
                  contrib_Dim3 = round(dep_filiere.ca$row$contrib[,3],2))
inertia.row |>  arrange(-inertie)|> flextable()


inertia.col <- tibble(Formation= colnames(dta_dep_filiere[1:11]),
                      poids = dep_filiere.ca$call$marge.col, 
                  inertie = dep_filiere.ca$col$inertia,
                  percent.inertie = dep_filiere.ca$col$inertia / sum(dep_filiere.ca$col$inertia), 
                  contrib_Dim1 = round(dep_filiere.ca$col$contrib[,1],2),
                  contrib_Dim2 = round(dep_filiere.ca$col$contrib[,2]),
                  contrib_Dim3 = round(dep_filiere.ca$col$contrib[,3]))
inertia.col |>  arrange(-inertie) |> flextable()


fviz_ca_row(dep_filiere.ca, axes = 1:2)

fviz_ca_col(dep_filiere.ca, axes = 1:2, invisible = c("col.sup")) ## bug montre encore les colonnes supplémenatiares
fviz_ca_col(dep_filiere.ca, axes = 1:2, invisible = c("col.sup"), select.col = list(contrib = 11)) ## trick


fviz_ca(dep_filiere.ca, axes = 1:2)
fviz_ca(dep_filiere.ca, axes = 1:2, select.col =  list(cos2 = 20),  alpha.col="cos2", select.row= list(contrib = 15))

Analyse factorielle des correspondances (AFC) - A vous de jouer

Contexte

Le but de cette étude est d’étudier le lien entre domaine d’étude, niveau d’étude et genre à l’université :

  • Quelles sont les disciplines pour lesquelles le profil des étudiants est le même ?
  • Quelles sont les disciplines privilégiées par les femmes (resp. par les hommes) ?
  • Quelles sont les disciplines pour lesquelles les études sont plus longues ?

Données :

  • Fichier : universite.csv
  • Variables qualitatives croisées : Discipline et Niveau-sexe
  • Dimensions : 10 disciplines et croisements de niveau (licence, master, doctorat) avec sexe (homme, femme).

Étapes de l’analyse

  1. Importer le jeu de données
    • Identifier le format (éditeur de texte).
    • Importer sous R.
  2. Statistiques descriptives
    • Indépendance entre Discipline et sexe ?
    • Indépendance entre Discipline et niveau ?
    • Indépendance entre niveau et sexe ?
  3. Mise en œuvre de l’AFC
    • Choisir les lignes et colonnes actives.
    • Utiliser la fonction CA.
  4. Interprétation des résultats
    • Interpréter le test du χ2.
    • Choisir le nombre d’axes.
    • Visualiser et interpréter.

Analyse des correspondances multiples (ACM)

Contexte

Objectif : Caractériser la clientèle d’un organisme de crédit.

Données :

  • Fichier : credit.csv
  • 66 clients ayant souscrit un crédit à la consommation.
  • 11 variables qualitatives :
    • Exemple : Marché, Apport, Impayé, Taux d'endettement, etc.

Étapes de l’analyse

  1. Importer le jeu de données
    • Identifier le format (éditeur de texte).
    • Importer sous R.
    • Vérifier le type des variables.
  2. Statistiques descriptives
    • Identifier les modalités rares.
    • Regrouper les modalités si nécessaire.
    • Identifier les variables liées.
  3. Mise en œuvre de l’ACM
    • Choisir les éléments actifs et supplémentaires.
    • Utiliser la fonction MCA.
  4. Interprétation des résultats
    • Choisir le nombre d’axes.
    • Visualiser et interpréter les axes factoriels.
  5. Synthèse des résultats
    • Rédiger un rapport de l’analyse : 2 pages, 3 graphiques, 5 statistiques numériques maximum.