1 Objectif

L’objectif de cette cinquième série de modèles est de commencer à approcher la notion d’espace social grâce à des analyses factorielles (ACM).

2 Analyses

L’espace social des pauvretés monétaire, institutionnelle et subjective des données du Baromètre se structure en deux principaux axes avec un effet Guttmann très clair qui signifie simplement une forte liaison entre les différentes réponses de l’enquête. En quelques sortes, toutes les modalités sont prises par les mêmes individus typiques à droite et à gauche.

Cet effet oppose traditionnellement deux axes avec un premier axe de niveau et un second qui oppose les situations médianes et extrêmes :

Gauche / Bas Droite / Haut
Axe 1 Richesse (objective et ressentie) Pauvreté (objective et ressentie)
Axe 2 (artificiel) Situation médiane en termes de pauvreté Situation extrême

On voit nettement que le sentiment de pauvreté se situe à droite et le sentiment de risque de pauvreté se situe en bas, arguments qui permettent de conforter l’interprétation faite de ces axes. Finalement, c’est le bas de l’effet Guttmann qu’il est souvent intéressant d’analyser, c’est-à-dire ici le risque de pauvreté future qui concernent les gens avec niveaux de vie intermédiaires, situés entre richesse et pauvreté.

Voir les résultats statistiques plus bas.

3 Code et résultats

#chargement des packages
library(knitr)
library(dplyr) #manipuler les bases de données
library(FactoMineR) #pour les analyses factorielles
library(explor) #contient FactoMineR
library(RColorBrewer) #palettes de couleur
library(fastcluster) #pour la CAH
library(ade4) #pour la fonction s5 de plot des classes de CAH
library(poLCA) #pour les Latent Categorical Variables (pour utiliser les graphs à batons)
library(ggplot2) #pour les graphiques statiques
library(ggrepel) #pour les étiquettes ggplot2

3.1 Pauvreté monétaire, institutionnelle et subjective

3.1.1 Variables actives

# actives_subj <- c("subj_pauvrete_et_risque", "subj_inf_mini_decla")
# actives <- c(actives_subj,actives_autres)
# passives <- c("statut_occup", "diplome", "conn_rsa","annee_fac", "prof_statut_act", "age_tranche","vie_fam"#,"presta_handi",
#               )
actives_autres <- c("quantile_nivie","revenus_financiers","revenus_locatifs","presta_rsa","presta_chomage","presta_apl","presta_handi","presta_etudes", "presta_hlm")
actives_subj <- c("subj_pauvrete_et_risque", "subj_inf_mini_decla")
actives <- c(actives_subj,actives_autres)
passives <- c("revenus_financiers","revenus_locatifs","presta_handi","statut_occup", "diplome", "conn_rsa","annee_fac", "prof_statut_act", "age_tranche","vie_fam")

bdd_acm <- bdd_logit %>% 
  dplyr::select(c(all_of(actives),all_of(passives))) %>% 
  tidyr::drop_na()
res.mca <- MCA(bdd_acm,
               quali.sup=(length(actives)+1):(ncol(bdd_acm)),
               graph=FALSE) 
#explor(res.mca)
saveRDS(res.mca,"../data/res.mca.RDS")
res <- explor::prepare_results(res.mca)
inertie_1_15 <- res.mca$eig[,1]
saveRDS(inertie_1_15,"../rapport/figures/inertie_1_15.RDS")
barplot(inertie_1_15, ylab="Inertie", xlab="Nombre d'axes")

Les trois premiers axes de l’ACM (qui conservent respectivement 19,9 %, 9,7 % et 7,3 % de l’inertie) sont les suivants. Le saut d’inertie entre les axes 2 et 3 est faible et les résultats de l’axe 3 nous invitent à structurer l’espace uniquement selon les deux premières dimensions. - Le premier axe (horizontal figure 1) oppose clairement à droite les personnes pauvres monétairement (premier quintile de niveau de vie), institutionnellement (RSA en particulier, APL, bourses d’études, locataie HLM) et subjectivement (sentiment de pauvreté et revenu inférieur au minimum déclaré et « déjà pauvre ») et à gauche les personnes plus riches (Q5 non pauvre, non inférieur au minimum déclaré, actifs financiers et de location).

  • Le deuxième axe (vertical) peut paraître étrange à interpréter. Avec les Q1 et Q5 qui sont au même niveau en haut et s’opposent aux Q2, Q3 et Q4 en bas. C’est en fait un résultat très classique en ACM, un effet Guttmann qui oppose les situations extrêmes en termes de richesse (Q5, Actifs financiers et de locations) ou de pauvreté (Q1, « Déjà pauvre », APL, RSA, bourses d’études) en haut de l’axe à des personnes pouvant éventuellement basculer dans la pauvreté en bas (Q2, Q3, risque ressenti de pauvreté dans 5 ans, au chômage).
xlim <- c(-2, 2)
ylim <- c(-1, 2)

explor::MCA_var_plot(res, xax = 1, yax = 2, var_sup = TRUE, var_sup_choice = NULL,
    var_lab_min_contrib = 0, col_var = "Variable", symbol_var = "Type", size_var = NULL,
    size_range = c(10, 300), labels_size = 10, point_size = 56, transitions = TRUE,
    labels_positions = NULL, labels_prepend_var = FALSE, xlim = xlim,
    ylim = ylim)

Axe 1

Axe 2

Axe 3

Axe 4

Ci-dessous quelques nuages des +13 000 individus colorés selon certaines variables catégorielles actives. On voit sur ce nuage uniquement quelques centaines d’individus car nombre d’entre eux se ressemblent selon les variables actives (variables avec peu de modalités, donc souvent mêmes combinaisons de modalités répondues).

  • Pour les quintiles de niveau de vie, rien de plus à ajouter que ce qui a été dit au-dessus, avec un positionnement en “cuvette”.
  • Pour les revenus d’actifs et de location, un positionnement sur la diagonale du haut à gauche vers le bas au milieu. Opposition entre situation médiane et très riche.
  • Pour le RSA, l’opposition se fait entre haut à droite et reste de l’ACM (opposition des très pauvres aux autres).
  • Même remarque pour APL, avec une distinction moins nette que pour le RSA (se rapproche du centre de l’ACM). Idem pour location de HLM et bourses d’études.
  • Pour les allocations chômage et la prestation handicap, la localisation est plutôt au centre du nuage, décalé légèrement sur la droite (pauvreté) ce qui veut dire que ces prestations peuvent concerner des personnes qui sont à la limite entre pauvreté et richesse.
  • L’indicateur subj_pauvrete_et_risque qui rassemble sentiment de pauvreté (indiquer se sentir pauvre, à droite) et risque de pauvreté (indiquer ne pas se sentir pauvre mais penser risquer l’être dans les 5 prochaines années, en bas) a un positionnement en triangle qui illustre l’importance fondamentale que cette variable a dans la constitution des deux premiers axes
  • L’indicateur du niveau de vie inférieur à un niveau de vie minimum pour vivre déclaré s’oppose sur les deux diagonales de manière symétrique. Il semble donc bien résumer l’opposition entre richesse et pauvreté selon cette typologie.

3.1.2 Distinction avant/après 2018

Aucune distinction de la structure avant après 2018. Même effet Guttman.

2015-2017

bdd_acm_2015_2017 <- bdd_logit_2015_2017 %>% 
  dplyr::select(c(all_of(actives),all_of(passives))) %>% 
  tidyr::drop_na()
res.mca_2015_2017 <- MCA(bdd_acm_2015_2017,
               quali.sup=(length(actives)+1):(ncol(bdd_acm_2015_2017)),
               graph=FALSE) 
res_2015_2017 <- explor::prepare_results(res.mca_2015_2017)

explor::MCA_var_plot(res_2015_2017, xax = 1, yax = 2, var_sup = TRUE, var_sup_choice = NULL,
    var_lab_min_contrib = 0, col_var = "Variable", symbol_var = "Type", size_var = NULL,
    size_range = c(10, 300), labels_size = 10, point_size = 56, transitions = TRUE,
    labels_positions = NULL, labels_prepend_var = FALSE, xlim = xlim,
    ylim = ylim)

2018-2019

bdd_acm_2018_2019 <- bdd_logit_2018_2019 %>% 
  dplyr::select(c(all_of(actives),all_of(passives))) %>% 
  tidyr::drop_na()
res.mca_2018_2019 <- MCA(bdd_acm_2018_2019,
               quali.sup=(length(actives)+1):(ncol(bdd_acm_2018_2019)),
               graph=FALSE) 
res_2018_2019 <- explor::prepare_results(res.mca_2018_2019)

explor::MCA_var_plot(res_2018_2019, xax = 1, yax = 2, var_sup = TRUE, var_sup_choice = NULL,
    var_lab_min_contrib = 0, col_var = "Variable", symbol_var = "Type", size_var = NULL,
    size_range = c(10, 300), labels_size = 10, point_size = 56, transitions = TRUE,
    labels_positions = NULL, labels_prepend_var = FALSE, xlim = xlim,
    ylim = ylim)

3.1.3 Variables supplémentaires

Axe 1

Axe 2

Axe 3

3.1.3.1 Professions et statuts d’emploi

Les professions et statuts d’emploi ont des positions assez marquées sur les axes de l’ACM comparées aux autres variables en supplémentaire.

  • En haut à droite (pauvreté) : Autre inactif, au foyer, chômeurs,
  • En haut à gauche (richesse) : cadres, professions libérales, professions intermédiaires, retraités, artisans et même agriculteur
  • En bas (situation entre deux) : Employés, Ouvriers

3.1.3.2 Vie familiale et tranche d’âge

Vie familiale et tranche d’âge se positionnent selon la même logique, en particulier selon l’axe horizontal, c’est-à-dire de manière moins tranchée que les PCS, à part les familles monoparentales (en haut à droite, pauvreté). Les personnes qui vivent seules sont positionnées au centre légèrement en bas et font dont partie des personnes pouvant basculer facilement dans la pauvreté.

3.1.3.3 Autres variables qui se démarquent peu

Ce dernier graphique présente les dernières modalités, qui se démarquent peu sur cette ACM. Le graphique a d’ailleurs été zoomé car tout s’agglutinait au centre des deux axes. Quelques variables particulières à noter cependant :

  • Les diplômés de bac+3 et dans une moindre mesure bac+2 et les propriétaires plus sont plutôt en haut à gauche
  • Avoir quelqu’un dans son entourage au RSA ou être peu ou pas diplômé situe les individu plutôt en bas légèrement à droite (pauvreté relative)

3.2 CAH

3.2.1 Sur les deux premiers axes factoriels

donnees <- res.mca$ind$coord[,c(1,2)]
arbre <- hclust(dist(donnees), method = "ward.D2")
inertie <- sort(arbre$height, decreasing = TRUE)
plot(inertie[1:20], type = "s", xlab = "Nombre de classes", ylab = "Inertie")
points(c(2, 3, 4,5), inertie[c(2, 3, 4,5)], col = c("green3", "red3", "blue3","yellow3","pink3"), cex = 2, lwd = 3)

plot(arbre, labels = FALSE, main = "Partitions selon le nb de classes", xlab = "", ylab = "", sub = "", axes = FALSE, hang = -1)
rect.hclust(arbre, 2, border = "green3")
rect.hclust(arbre, 3, border = "red3")
rect.hclust(arbre, 4, border = "blue3")
rect.hclust(arbre, 5, border = "yellow3")

#Typologie en 5 classes
nbclasses <- 5

typo <- factor(factor(cutree(arbre,k=nbclasses),labels=c(5,3,4,2,1)),levels=1:5)

#saveRDS(typo,"../rapport/figures/typo_cah.RDS")

s.class(res.mca$ind$coord[,c(1,2)], typo, col = brewer.pal(5, "Set1")[1:nbclasses], sub = "Axes 1 et 2")

for(i in 1:nbclasses){
  poLCA.makeplot.poly.oneclass(creer_x(typo),i)
}

3.3 ACP

3.4 Figures rapport

4 Notes méthodologiques

Pour ces modèles cinq vagues du Baromètre ont été empilées : 2015, 2016, 2017, 2018 et 2019 (15 137 observations) mais seules XX XXX observations sont conservées (celles qui n’ont aucune variable manquante pour l’ensemble des variables utilisées, actives comme supplémentaires).

Bibliographie