# Chargement des librairies
library(tidyverse)
library(data.table)
library(gt)1 Récupération de la base de données
On va travailler cette année sur les données du Recensement de la Population (RP). C’est une base de données riche en informations, qui s’appuie sur les enquêtes annuelles du recensement et est produite par l’Insee. Les fichiers mis à disposition sur leur site sont au nombre de 9 : ils rassemblent des informations différentes, sur des espaces géographiques différents (canton ou ville, région), et à des niveaux d’analyse différents (individus, ménages/logements). Les derniers fichiers disponibles portent sur l’année 2021 mais nous allons travailer sur l’année 2019 qui rassemble les enquêtes annuelles du recensement (EAR) des années 2017 à 2021.
Avant de rentrer plus dans les détails, on va charger les librairies principales que l’on va utiliser lors de cette séance (si elles ne sont pas installées sur votre RStudio, il faut le faire avant en utilisant la commande install.packages("nom.du.package"), on pourra en appeler d’autres dans les deux sections suivantes.
1.1 Les données du Recensement de la Population (RP)
On va travailler plus précisément à partir du fichier “Individus localisés au canton-ou-ville” qui décrit les caractéristiques des individus et celles des ménages qui les occupent. Les données sont localisées au niveau de la commune et de l’IRIS. On ne va pas s’intéresser à l’ensemble de la France, pour des questions d’intérêt et d’analyse, ainsi que des questions pratiques (ces fichiers étant lourds). On va donc télécharger uniquement ce fichier pour la zone A, c’est-à-dire l’Île-de-France.
Le mieux est de télécharger le fichier puis le dézipper directement dans R comme ci-dessous en copiant le lien URL sur le site de l’Insee ; et on le stock dans le dossier “data” de notre projet R. Sinon, il reste possible de le télécharger via internet et de l’enregistrer dans un de vos dossiers bien spécifiés pour le “dézipper” ensuite.
download.file(url="https://www.insee.fr/fr/statistiques/fichier/6544333/RP2019_INDCVIZA_csv.zip",
destfile = "data/RP2019_INDCVIZA_csv.zip")
# Le fichier a donc été téléchargé dans le dossier intitulé "data" du projet R, on va
# maintenant le dézipper et enregistrer les fichiers extraits dans le même dossier.
unzip("data/RP2019_INDCVIZA_csv.zip", exdir = "data")Il nous reste plus qu’à charger les données dans notre environnement RStudio : pour cela on utilise la commande fread du package data.table (à installer avant), car cela va bien plus vite que les fonctions habituelles du type read.csv lorsqu’on a de gros fichiers. On indique également l’option stringsAsFactors=TRUE pour que les variables caractères soient directement transformées en variables “factor” (dont l’utilité est indéniable dans R, on en reparlera plus loin), et on transforme l’objet obtenu en data.frame.
# install.packages("data.table")
library(data.table)
RP <- fread("data/FD_INDCVIZA_2019.csv", stringsAsFactors=TRUE)
RP <- as.data.frame(RP)On a donc 88 variables et 4 354 518 observations.
Pour se renseigner sur les variables de la table, on peut télécharger également le fichier des métadonnées avec la commande read.csv cette fois, ce qui nous permet de voir quelles options sont utiles ici : l’argument sep = nous permet d’indiquer comment sont séparées les informations dans le fichier initial, l’argument encoding = permet que les accents aigus soient compris par R comme tel, et enfin la même option stringsAsFactors=TRUE peut être utilisée ici.
# Lecture du fichier de métadonnées
meta <- read.csv(file = 'data/Varmod_INDCVI_2019.csv',
sep = ";",
encoding = "UTF-8",
stringsAsFactors = TRUE)On peut enregistrer ce fichier, ainsi que celui contenant les métadonnées, dans le dossier R au format RDS.
# Enregistrement des fichiers
saveRDS(object = RP, file = "data/indiv2019.Rdata")
saveRDS(object = meta, file = "data/meta.Rdata")1.2 Quelles informations intéressantes dans cette base ?
On peut regarder plus précisément les variables disponibles dans cette base de données à partir de la table de métadonnées : on peut le faire avec la fonction view() et dans ce cas la table s’affichera dans un nouvel onglet dans votre RStudio ; sinon pour l’afficher sur notre document notebook, on peut utiliser la fonction head() et/ou tail() qui affiche respectivement les premières lignes et les dernières lignes de la table.
# view(meta)
meta %>% head() %>% gt() #La fonction gt() permet un affichage plus joli pour le document html| COD_VAR | LIB_VAR | COD_MOD | LIB_MOD | TYPE_VAR | LONG_VAR |
|---|---|---|---|---|---|
| CANTVILLE | Département, canton-ou-ville du lieu de résidence (pseudo-canton) | 0101 | Ambérieu-en-Bugey (0101) | CHAR | 5 |
| CANTVILLE | Département, canton-ou-ville du lieu de résidence (pseudo-canton) | 0102 | Attignat (0102) | CHAR | 5 |
| CANTVILLE | Département, canton-ou-ville du lieu de résidence (pseudo-canton) | 0103 | Valserhône (0103) | CHAR | 5 |
| CANTVILLE | Département, canton-ou-ville du lieu de résidence (pseudo-canton) | 0104 | Belley (0104) | CHAR | 5 |
| CANTVILLE | Département, canton-ou-ville du lieu de résidence (pseudo-canton) | 0105 | Bourg-en-Bresse-1 (0105) | CHAR | 5 |
| CANTVILLE | Département, canton-ou-ville du lieu de résidence (pseudo-canton) | 0106 | Bourg-en-Bresse-2 (0106) | CHAR | 5 |
On peut établir la liste des variables de la base de données en utilisant la fonction levels qui donne les niveaux de la variable “COD_VAR” puisque c’est une variable ‘factor’.
levels(meta$COD_VAR) [1] "ACHLR" "AEMMR" "AGED" "AGER20" "AGEREV" "AGEREVQ"
[7] "ANAI" "ANEMR" "APAF" "ARM" "ASCEN" "BAIN"
[13] "BATI" "CANTVILLE" "CATIRIS" "CATL" "CATPC" "CHAU"
[19] "CHFL" "CHOS" "CLIM" "CMBL" "COUPLE" "CS1"
[25] "CUIS" "DEPT" "DEROU" "DIPL" "DNAI" "EAU"
[31] "EGOUL" "ELEC" "EMPL" "ETUD" "GARL" "HLML"
[37] "ILETUD" "ILT" "IMMI" "INAI" "INATC" "INFAM"
[43] "INPER" "INPERF" "IPONDI" "IRAN" "IRIS" "LIENF"
[49] "LPRF" "LPRM" "METRODOM" "MOCO" "MODV" "NA17"
[55] "NA5" "NAIDT" "NBPI" "NE17FR" "NE24FR" "NE3FR"
[61] "NE5FR" "NENFR" "NPERR" "NUMF" "NUMMI" "ORIDT"
[67] "RECH" "REGION" "SANI" "SANIDOM" "SEXE" "SFM"
[73] "STAT_CONJ" "STATR" "STOCD" "SURF" "TACT" "TACTD16"
[79] "TP" "TRANS" "TRIRIS" "TYPC" "TYPFC" "TYPL"
[85] "TYPMC" "TYPMR" "VOIT" "WC"
Les codes des variables n’étant pas très parlant, on va les afficher avec leur intitulé : pour cela, il suffit de repartir de la table meta en sélectionnant les 2 colonnes qui nous intéressent et en n’affichant pas les valeurs dupliquées avec la fonction unique().
meta %>% select(COD_VAR, LIB_VAR) %>% unique() %>% gt()| COD_VAR | LIB_VAR |
|---|---|
| CANTVILLE | Département, canton-ou-ville du lieu de résidence (pseudo-canton) |
| NUMMI | Numéro du ménage dans le canton-ou-ville (anonymisé) |
| ACHLR | Période regroupée d'achèvement de la construction de la maison ou de l'immeuble |
| AEMMR | Année d'emménagement dans le logement (regroupée) |
| AGED | Âge détaillé (en différence de millésimes) |
| AGER20 | Âge en années révolues (âge au dernier anniversaire) en 13 classes d'âge, détaillées autour de 20 ans |
| AGEREV | Âge en années révolues détaillé |
| AGEREVQ | Âge quinquennal en années révolues |
| ANAI | Année de naissance |
| ANEMR | Ancienneté d'emménagement dans le logement (regroupée) |
| APAF | Appartenance à une famille |
| ARM | Arrondissement municipal de résidence (Paris, Lyon et Marseille) |
| ARM | Arrondissement municipal de résidence (Paris,Lyon et Marseille) |
| ASCEN | Desserte par un ascenseur |
| BAIN | Baignoire ou douche (DOM) |
| BATI | Aspect du bâti (DOM) |
| CATIRIS | Catégorie de l'IRIS |
| CATL | Catégorie de logement |
| CATPC | Catégorie de population condensée |
| CHAU | Moyen de chauffage du logement (DOM) |
| CHFL | Chauffage central du logement (France métropolitaine) |
| CHOS | Chauffe-eau solaire (DOM) |
| CLIM | Existence d'au moins une pièce climatisée (DOM) |
| CMBL | Combustible principal du logement (France métropolitaine) |
| COUPLE | Déclaration de vie en couple |
| CS1 | Catégorie socioprofessionnelle en 8 postes |
| CUIS | Cuisine intérieure avec évier (DOM) |
| DEPT | Département du lieu de résidence |
| DEROU | Nombre de deux-roues à moteur du ménage (DOM) |
| DIPL | Diplôme le plus élevé |
| DNAI | Département de naissance (si né en France) |
| EAU | Point d'eau potable à l'intérieur du logement (DOM) |
| EGOUL | Mode d'évacuation des eaux usées (DOM) |
| ELEC | Électricité dans le logement (DOM) |
| EMPL | Condition d'emploi |
| ETUD | Inscription dans un établissement d'enseignement |
| GARL | Emplacement réservé de stationnement |
| HLML | Appartenance du logement à un organisme HLM |
| ILETUD | Indicateur du lieu d'études |
| ILT | Indicateur du lieu de travail |
| IMMI | Situation quant à l'immigration |
| INAI | Indicateur du lieu de naissance |
| INATC | Indicateur de nationalité condensé (Français/Étranger) |
| INFAM | Nombre de familles du ménage |
| INPER | Nombre de personnes du ménage |
| INPERF | Nombre de personnes de la famille |
| IPONDI | Poids de l'individu |
| IRAN | Indicateur de résidence antérieure au 1er janvier de l'année précédente |
| IRIS | Code IRIS du lieu de résidence |
| LIENF | Lien familial |
| LPRF | Lien à la personne de référence de la famille |
| LPRM | Lien à la personne de référence du ménage |
| METRODOM | Indicateur Métropole ou DOM du lieu de résidence |
| MOCO | Mode de cohabitation |
| MODV | Mode de vie |
| NA17 | Activité économique en 17 postes (NA - A17) |
| NA5 | Activité économique regroupée en 5 postes |
| NAIDT | Naissance dans un DOM-TOM-COM |
| NBPI | Nombre de pièces du logement |
| NE17FR | Nombre d'enfants âgés de 17 ans ou moins de la famille (regroupé) |
| NE24FR | Nombre d'enfants âgés de 24 ans ou moins de la famille (regroupé) |
| NE3FR | Nombre d'enfants âgés de 3 ans ou moins de la famille (regroupé) |
| NE5FR | Nombre d'enfants âgés de 5 ans ou moins de la famille (regroupé) |
| NENFR | Nombre d'enfants de la famille (regroupé) |
| NPERR | Nombre de personnes du ménage (regroupé) |
| NUMF | Numéro de famille |
| ORIDT | Originaire d'un DOM-TOM-COM |
| RECH | Ancienneté de recherche d'emploi |
| REGION | Région du lieu de résidence |
| SANI | Installations sanitaires (France métropolitaine) |
| SANIDOM | Installations sanitaires (DOM) |
| SEXE | Sexe |
| SFM | Structure familiale du ménage |
| STATR | Statut professionnel regroupé |
| STAT_CONJ | Statut conjugal |
| STOCD | Statut d'occupation détaillé du logement |
| SURF | Superficie du logement |
| TACT | Type d'activité |
| TACTD16 | Type d'activité détaillé en 16 postes |
| TP | Temps de travail |
| TRANS | Mode de transport principal le plus souvent utilisé pour aller travailler |
| TRIRIS | Code TRIRIS du lieu de résidence |
| TYPC | Type de construction |
| TYPFC | Type de famille condensé |
| TYPL | Type de logement |
| TYPMC | Type de ménage regroupé (en 4 postes) |
| TYPMR | Type de ménage regroupé (en 9 postes) |
| VOIT | Nombre de voitures du ménage |
| WC | Présence de W.-C. à l'intérieur du logement (DOM) |
Ou si on veut les afficher par ordre alphabétique selon le nom de la variable, on peut utiliser la fonction arrange() qui permet de trier une table de données selon la variable indiquée :
meta %>% select(COD_VAR, LIB_VAR) %>% unique() %>% arrange(COD_VAR) %>% gt()L’une des difficultés pour l’analyse de cette base de données réside dans les différents niveaux présents : “individu” pour la personne de référence du ménage ; “ménage” regroupant l’ensemble des occupants d’une résidence principale, qu’ils aient ou non des liens de parenté ; “famille” partie d’un ménage comprenant au moins 2 personnes (par exemple, un couple, ou un adulte avec un enfant…) ; et enfin “logement” qui comprend ici les résidences principales et rassemble des informations décrivant les types de logement.
Il faut bien comprendre comment utiliser à bon escient ces différents niveaux, en particulier ici le niveau logement : pour toute variable de ce niveau, il faudra utiliser un filtre, c’est-à-dire ne prendre que la personne de référence du ménage (LPRM=="1").
Il faut également penser que les données sont pondérées, donc pour sortir des statistiques descriptives, il faut à chaque fois mettre la variable de pondération IPONDI.