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.

# Chargement des librairies
library(tidyverse)
library(data.table)
library(gt)

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.