On indique les packages à utiliser pour l’exécution de ce programme. Tidyverse sera utilisé pour la gestion des données, questionr pour le calcul de statiques pondérées
# Packageslibrary(tidyverse)
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr 1.1.4 ✔ readr 2.1.5
✔ forcats 1.0.0 ✔ stringr 1.5.1
✔ ggplot2 3.5.1 ✔ tibble 3.2.1
✔ lubridate 1.9.3 ✔ tidyr 1.3.1
✔ purrr 1.0.2
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag() masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(questionr)
On localise les bases de données sous R, deux formats principaux .RData et .rds
################ Localisation###############Rep="./materiel/"File="FPA_TEO1_v4.RData"# Montée en tableload(paste0(Rep,File))
Ci après, la création des variables nécessaires, en fonction des variables existantes :
origine : Pays de naissance si descendant d’immigré,
group2 : Recodification de la position d’Ego, par rapport au nombre de parents immigrés,
Les variables du fichier FPA utilisées seront les suivantes :
GROUP1 (Statut d’ego par rapport à la migration en 5 positions),
D_DISCRI (Traitements inégalitaires ou discriminations depuis 5 ans)
# Création Variable group2 FPA=mutate(FPA,group2=case_when( GROUP1 %in%c("1","2") ~"Immigrés (ou natif Dom)", GROUP1 =="5"~"Groupe majoritaire", GROUP1 %in%c("3","4") & (regionnaism2_11t =="France métro"| regionnaisp2_11t =="France métro") ~"Descendant d'un immigré (ou Dom)", GROUP1 %in%c("3","4") & (regionnaism2_11t !="France métro"& regionnaisp2_11t !="France métro") ~"Descendant 2 immigrés (ou Dom)"))# Création variable origineFPA=mutate(FPA,origine=case_when(# Pays de naissance du père si né à l'étranger (ou Dom) GROUP1 %in%c("3","4") & regionnaisp2_11t !="France métro"~ regionnaisp2_11t,# Pays de naissance de la mère sinon (ou Dom) GROUP1 %in%c("3","4") & regionnaisp2_11t =="France métro"& regionnaism2_11t !="France métro"~ regionnaism2_11t ))
A noter qu’on n’utilisera que les réponses 1,2 et 3 de la variable indiquant un sentiment de discriminations (D_DISCRI), en ne prenant pas en compte les refus de répondre et réponse “Ne sait pas”.
# On ne retient pas les valeurs 8 et 9 de la variable D_DISCRI FPA =filter(FPA, D_DISCRI %in%c("1","2","3"))
On va enlever de l’étude ceux pour lesquels l’origine n’est pas connue avec certitude (modalité à 9999, due à une incertitude sur l’une des variables origine du père ou de la mère)
FPA =filter(FPA,origine !="9999")
Quelques tris à plat, pour l’échantillon retenu pour cette analyse (8405 personnes, uniquement les personnes ayant répondu clairement au sentiment de discrimination)
# Effectifs bruts (non pondérés)freq(FPA$origine)
n % val%
Afrique subsaharienne 805 3.7 3.7
Algérie 1325 6.1 6.1
Asie 567 2.6 2.6
Autres pays 571 2.6 2.6
DOM 654 3.0 3.0
Espagne/Italie 1652 7.6 7.6
Groupe témoin 3774 17.5 17.5
Immigrés (ou natif Dom) 9112 42.2 42.2
Maroc/Tunisie 1124 5.2 5.2
Portugal 925 4.3 4.3
Turquie 445 2.1 2.1
UE27 659 3.0 3.0
n % val%
Descendant 2 immigrés (ou Dom) 5354 24.8 24.8
Descendant d'un immigré (ou Dom) 3370 15.6 15.6
Groupe témoin 3774 17.5 17.5
Immigrés (ou natif Dom) 9112 42.2 42.2
NA 3 0.0 NA
Construction 1er graphique du Pop&Soc 466, avril 2010
X0 = FPA %>%group_by(group2) %>%count(discri,wt=POIDSI) %>%mutate(wtd_prop=100*n/sum(n)) %>%filter(discri==1&!is.na(group2))# Graphique avec les pourcentages à coté des barres d'histogrammeX0 %>%ggplot(aes(x=group2,y=wtd_prop)) +geom_bar(stat="identity") +xlab("Origine de l'enquêté") +ylab("En %") +ylim(0,50) +ggtitle("Proportion de personnes déclarant avoir subi des discriminations") +geom_text(aes(label=sprintf('%0.0f%%',wtd_prop)), position =position_dodge(width =1),hjust=-0.1) +coord_flip()
Construction 2eme graphique
########################################################## Cas des immigrés ou natif d'un DOM (Chiffres en NOIR)#########################################################X1 = FPA %>%# Sélection immigrés ou DOMfilter(GROUP1 %in%1:2) %>%# Effectifs pondérés par pays de naissancegroup_by(regionnaise2_11t) %>%count(discri,wt=POIDSI) %>%# Calcul des proportionsmutate(wtd_prop=100*n/sum(n,na.rm=T)) %>%# Sélection proportion de ceux qui sentent (ou non) discriminésfilter(discri==1)X1 = X1 %>%# Variable renomméerename(origine=regionnaise2_11t)%>%# Variable type créée et positionnée à "Immigré" dans ce casmutate(type="Immigré")########################################################## Cas des fille ou fils d'immigré (Chiffres en ORANGE)#########################################################X2 = FPA %>%# Sélection indidividusfilter(GROUP1 %in%3:4) %>%# Pays de naissance du parentgroup_by(origine) %>%# Calcul des effectifs pondérés, de ceux qui sentent (ou non) discriminéscount(discri,wt=POIDSI) %>%mutate(wtd_prop=100*n/sum(n,na.rm=T))%>%filter(discri==1)# Variable type créée et positionnée à "Fils ou fille d'immigré" dans ce casX2 = X2 %>%mutate(type="Fils ou fille d'immigré")# Jonction des résultatsX3=bind_rows(X1,X2)# Affichage graphiqueggplot(X3) +# On représente la proportion de personnes qui se sentent discriminées (y) selon l'origine (x)# Ceci selon le type de personne immigrée (type)# wtd_prop reprénsente la proportion (pondérée) de ceux qui se sentent discriminés dans le groupe# indiqué aes(x = origine, fill = type, y = wtd_prop) +# Mode de représentation = Histogramme, barres non superposéesgeom_bar(stat="identity",position ="dodge") +# Couleurs indiquées explicitementscale_fill_manual(values =c(`Fils ou fille d'immigré`="#D3781E", Immigré ="#11090E")) +# Formatage des pourcentages et affichage à coté des barresgeom_text(aes(label=sprintf('%0.0f%%',wtd_prop)),position =position_dodge(width =1), hjust=-0.1) +# Titre du graphique et des axes, limite de l'axe verticallabs(title ="Proportion de personnes déclarant avoir subi des discriminations") +ylim(0,50) +xlab("Origine de l'enquêté") +ylab("En %") +# Barres horizontalescoord_flip() +# Position de la légende en bastheme(legend.position="bottom")