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).
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.
#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
# 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).
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).
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 axesAucune 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)
Axe 1
Axe 2
Axe 3
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.
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é.
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 :
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)
}