Au vu des documents qui nous étaient fournis, nous avons choisis de poser la problématique suivante : Comment les données socio-économiques de la population du Pas-de-Calais sont-elles corrélée à l’indice de position sociale (IPS) ?
library(tidyverse)
## Warning: le package 'tidyverse' a été compilé avec la version R 4.2.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.0 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ ggplot2 3.4.1 ✔ tibble 3.1.8
## ✔ lubridate 1.9.2 ✔ tidyr 1.3.0
## ✔ purrr 1.0.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the ]8;;http://conflicted.r-lib.org/conflicted package]8;; to force all conflicts to become errors
library(stringr)
library(gapminder)
## Warning: le package 'gapminder' a été compilé avec la version R 4.2.3
library(dplyr)
library(readxl)
library(questionr)
library(ggplot2)
On a d’abord importé les données des 2 excels puis on a trié la base de données sur les collèges :
pour ne garder que les informations de l’année 2018-2019 et pour le département 62
pour supprimer les colonnes que nous n’allons pas utiliser
pour renommer la colonne “code_insee_de_la_commune” en “COM” afin d’avoir 2 colonnes qui portent le même nom dans chaque base pour faire un join
On a ensuite trié la base de données de l’INSEE avec les activités des habitants :
pour ne garder uniquement les 4 catégories les plus représentatives entre 15 et 64 ans (chômeurs, ouvriers, professions intermédiaires, cadres supérieurs) et l’IRIS
pour ne garder que les informations sur le départements 64
pour regrouper les IRIS qui ont le même COM en faisant la moyenne du nombre d’actifs dans chaque catégorie associée (comme l’IRIS est un indicateur plus précis que le COM)
pour renommer les noms des catégories pour que ce soit plus lisible
insee_data <- read_delim("base-ic-activite-residents-2019.csv",
delim = ";", col_names = T)
## Rows: 49282 Columns: 120
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ";"
## chr (4): IRIS, COM, TYP_IRIS, LAB_IRIS
## dbl (116): MODIF_IRIS, P19_POP1564, P19_POP1524, P19_POP2554, P19_POP5564, P...
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
colleges_data <- read_delim("fr-en-ips_colleges.csv",
delim = ";", col_names = T)
## Rows: 41701 Columns: 11
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ";"
## chr (9): rentree_scolaire, academie, code_du_departement, departement, uai, ...
## dbl (2): ips, ecart_type_de_l_ips
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
colleges_data2 <- colleges_data %>% filter(rentree_scolaire == "2018-2019" & code_du_departement == "062")
colleges_data2 <- colleges_data2 %>% select(-uai, -ecart_type_de_l_ips)
colleges_data2 <- colleges_data2 %>% rename(COM = code_insee_de_la_commune)
insee_data2 <- insee_data %>% select(COM, C19_ACT1564_CS3, C19_ACT1564_CS4, C19_ACT1564_CS6, P19_CHOM1564)
insee_data2 <- insee_data2 %>% filter(stringr::str_starts(COM, '62'))
insee_data2 <- insee_data2 %>% group_by(COM) %>%
summarize(C19_ACT1564_CS3 = mean(C19_ACT1564_CS3),
C19_ACT1564_CS4 = mean(C19_ACT1564_CS4),
C19_ACT1564_CS6 = mean(C19_ACT1564_CS6),
P19_CHOM1564 = mean(P19_CHOM1564))
colnames(insee_data2)[2] ="cadres_sup"
colnames(insee_data2)[3] ="pro_inter"
colnames(insee_data2)[4] ="ouvriers"
colnames(insee_data2)[5] ="chomeurs"
On fait une jointure pour fusionner nos deux jeux de données en utilisant comme clé de jointure COM.
On a utilisé left join pour fusionner les données de “colleges_data2” avec celles de “insee_data2” en conservant toutes les observations de “colleges_data2” et en y ajoutant les variables de “insee_data2” correspondantes pour les observations qui ont la même valeur dans la colonne “COM”.
Puis on a trié les communes par ordre croissant en fonction de leur IPS
fusion_colleges_insee <- left_join(colleges_data2, insee_data2, by = 'COM')
fusion_colleges_insee <- fusion_colleges_insee %>% arrange(desc(ips))
On a d’abord créé un tableau de fréquence à partir de la variable “secteur” qui nous donne le type de collège : privé sous contrat ou public. Puis nous l’avons affiché sous forme d’un diagramme en barres
Observation : Dans notre département et pendant l’année 2028-2019 : il y avait une part beaucoup plus importante de collèges publics que de collèges privés sous contrat. Cela peut nous indiquer que la majorité des élèves dans ce département sont scolarisés dans les établissements publics, ce qui pourrait révéler un niveau de vie généralement plus faible.
freq_table <- table(fusion_colleges_insee$secteur)
barplot(freq_table, col=c("green", "blue"))
On a créé un diagramme en barres pour représenter la distribution des IPS des collèges dans le département 62.
Observation : On observe que les IPS les plus représentés se situent entre 80 et 95, ce qui est relativement faible puisque la moyenne nationale en 2018-2019 est de 102,68.Cela suggère que la grande majorité des collèges du Pas-de-Calais avait un niveau de performance qui était inférieur à la moyenne nationale.
ggplot(colleges_data2) +
aes(x = ips) +
geom_histogram(bins = 30L, fill = "pink")
On a crée un diagramme en barres avec les données sur les villes avec l’IPS le plus élevé et celle avec l’IPS le plus faible.
D’abord avec les fonctions select et filter on a selectionné seulement les variables qui nous interessent.
Puis on a converti les données en format “long” en utilisant pivot_longer pour les représenter plus facilement sous forme de graphique. Ainsi, chaque ville est représentée sur plusieurs lignes et chaque ligne a une seule variable associée.
Observation : on voit que la ville d’ARRAS (avec l’IPS le plus élevé) a un nombre de cadres supérieurs et de professions intermédiaires beaucoup plus élevé,tandis que les deux autres catégories sont à peu près équivalentes entre les deux villes. Cela nous suggère bien qu’il y a un lien entre l’IPS du collège d’une commune et le niveau de vie des habitants de cette commune.
Fig3 <- fusion_colleges_insee %>% filter(ips == max(ips)|ips == min(ips)) %>%
select(nom_de_la_commune, cadres_sup, pro_inter, ouvriers, chomeurs)
Fig3_bis <- pivot_longer(Fig3, cols = -nom_de_la_commune, names_to = "categorie", values_to = "nombre")
ggplot(Fig3_bis, aes(x = categorie, y = nombre, fill = nom_de_la_commune)) +
geom_bar(stat = "identity", position = "dodge") +
scale_fill_manual(values = c("orange", "yellow"))
On cherche à filtrer les données pour sélectionner toutes les communes avec des collèges dont l’IPS est supérieur à 105 et ceux dont l’IPS est inférieur à 84.
On a crée un tableau pour afficher ces deux nombres en comptant le nombre de lignes à chaque fois.
Observation : On voit qu’il y a seulement 26 communes dans lesquelles le collège a un IPS supérieur à 105, face à 47 dont l’IPS est inférieur à 84. Or, lorsqu’un IPS est inférieur à 84, cela signifie que c’est des réseaux d’éducation prioritaire et donc qu’il y a un niveau socio-économique relativement faible. Cela fait écho à notre figure 1 qui nous indique qu’il y a une part importante de collèges publics dans le Pas-de-Calais.
ips_sup <- fusion_colleges_insee %>% filter(ips >= 105) %>%
select(ips, nom_de_la_commune)
nb_ips_sup <- nrow(ips_sup)
ips_inf <- fusion_colleges_insee %>% filter(ips <= 84) %>%
select(ips, nom_de_la_commune)
nb_ips_inf <- nrow(ips_inf)
table_ips <- data.frame(Categorie = c("Nombre de collèges dont IPS supérieur à 105", "Nombre de collèges dont IPS inférieur à 84"), Nombre = c(nb_ips_sup, nb_ips_inf))
table_ips
## Categorie Nombre
## 1 Nombre de collèges dont IPS supérieur à 105 26
## 2 Nombre de collèges dont IPS inférieur à 84 47
On a crée un nuage de points pour voir la relation entre l’IPS du collège de la ville (sur l’axe vertical) et le nombre de cadres supérieurs (sur l’axe horizontal)
Observation : On voit que la relation est positive, que les données sont plutôt dispersées avec quelques valeurs extrêmes. On peut donc dire que plus le nombre de cadres supérieurs dans une commune est élevé, plus l’IPS du collège de cette commune est éléve et inversement. Cela fait écho et confirme notre résultat de la figure 3
ggplot(fusion_colleges_insee) +
aes(x = cadres_sup, y = ips) +
geom_point(shape = "circle", size = 1.5)
Nous avons calculé le nombre de collèges par tranche d’IPS sous forme de diagramme circulaire. Il nous permet de visualiser rapidement que ce sont les catégories 60-89 et 90-119 qui sont les plus représentées. Cela nous confirme que le niveau socio-économique du département est relativement faible mais que la situation n’est pas alarmante non plus car la catégorie 38-59 n’est pas représenté. Cela fait écho à notre figure 2.
total_tranche_1 <- sum(fusion_colleges_insee$ips >= 38 & fusion_colleges_insee$ips < 59)
total_tranche_2 <- sum(fusion_colleges_insee$ips >= 60 & fusion_colleges_insee$ips < 89)
total_tranche_3 <- sum(fusion_colleges_insee$ips >= 90 & fusion_colleges_insee$ips < 119)
total_tranche_4 <- sum(fusion_colleges_insee$ips >= 120 & fusion_colleges_insee$ips < 149)
total_tranche_5 <- sum(fusion_colleges_insee$ips >= 150 & fusion_colleges_insee$ips < 179)
donnees_tranches <- data.frame(
categorie = c("38 à 59", "60 à 89", "90 à 119", "120 à 149", "150 à 179"),
valeur = c(total_tranche_1, total_tranche_2, total_tranche_3, total_tranche_4, total_tranche_5))
ggplot(donnees_tranches, aes(x = "", y = valeur, fill = categorie))+
geom_bar(stat = "identity", width = 1)+
coord_polar("y", start=0)+
labs(fill = "Répartition des IPS dans le Pas de Calais")+
theme_void()
Ainsi, à l’aide de nos tableaux et de nos diagrammes, on remarque que les données sur les catégories socio-professionnelles d’une commune et l’IPS du collège de cette commune sont fortement liées. En effet, on a remarqué que quand l’IPS du collège est élevé, les CSP les plus représentés sont les cadres supérieurs et les professions intermédiaires. De manière générale, ce travail nous permis d’observer que le niveau de vie dans le département Pas-de-Calais n’est pas très élevé, sans être catastrophique.