Section 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 2019.

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 “Logements ordinaires” qui décrit les caractéristiques des logements 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. 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/6544344/RP2019_LOGEMTZA_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 R : 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), et on transforme l’objet obtenu en data.frame.

# install.packages("data.table")
library(data.table)
RP <- fread("data/FD_LOGEMTZA_2019.csv", stringsAsFactors=TRUE)
RP <- as.data.frame(RP)

On a donc 70 variables et 2 850 830 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_LOGEMT_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/menages2019.Rdata")
saveRDS(object = meta, file = "data/menages2019_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 html (notebook ou markdown), 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
X.U.FEFF.COD_VAR LIB_VAR COD_MOD LIB_MOD TYPE_VAR LONG_VAR
COMMUNE Département et commune du lieu de résidence 1001 L'Abergement-Clémenciat (01001) CHAR 5
COMMUNE Département et commune du lieu de résidence 1002 L'Abergement-de-Varey (01002) CHAR 5
COMMUNE Département et commune du lieu de résidence 1004 Ambérieu-en-Bugey (01004) CHAR 5
COMMUNE Département et commune du lieu de résidence 1005 Ambérieux-en-Dombes (01005) CHAR 5
COMMUNE Département et commune du lieu de résidence 1006 Ambléon (01006) CHAR 5
COMMUNE Département et commune du lieu de résidence 1007 Ambronay (01007) CHAR 5

On va corriger le nom de la 1ère colonne qui n’a pas été bien importée, avec la fonction rename() ; puis on va établir la liste des variables en utilisant la fonction levels.

meta <- meta %>% rename(COD_VAR=X.U.FEFF.COD_VAR)
levels(meta$COD_VAR) 
 [1] "ACHL"       "AEMM"       "AEMMR"      "AGEMEN8"    "ANEM"      
 [6] "ANEMR"      "ARM"        "ASCEN"      "BAIN"       "BATI"      
[11] "CATIRIS"    "CATL"       "CHAU"       "CHFL"       "CHOS"      
[16] "CLIM"       "CMBL"       "COMMUNE"    "CUIS"       "DEROU"     
[21] "DIPLM"      "EAU"        "EGOUL"      "ELEC"       "EMPLM"     
[26] "GARL"       "HLML"       "ILETUDM"    "ILTM"       "IMMIM"     
[31] "INAIM"      "INEEM"      "INP11M"     "INP15M"     "INP17M"    
[36] "INP19M"     "INP24M"     "INP3M"      "INP5M"      "INP60M"    
[41] "INP65M"     "INP75M"     "INPAM"      "INPER"      "INPER1"    
[46] "INPER2"     "INPOM"      "INPSM"      "IPONDL"     "IRANM"     
[51] "IRIS"       "METRODOM"   "NBPI"       "RECHM"      "REGION"    
[56] "SANI"       "SANIDOM"    "SEXEM"      "STAT_CONJM" "STOCD"     
[61] "SURF"       "TACTM"      "TPM"        "TRANSM"     "TRIRIS"    
[66] "TYPC"       "TYPL"       "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
COMMUNE Département et commune du lieu de résidence
ARM Arrondissement municipal de résidence (Paris,Lyon et Marseille)
IRIS Code IRIS du lieu de résidence
ACHL Période d'achèvement de la construction de la maison ou de l'immeuble
AEMM Année d'emménagement dans le logement (détaillée)
AEMMR Année d'emménagement dans le logement (regroupée)
AGEMEN8 Âge regroupé de la personne de référence du ménage en 8 classes d'âge
ANEM Ancienneté d'emménagement dans le logement (détaillée)
ANEMR Ancienneté d'emménagement dans le logement (regroupée)
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
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)
CUIS Cuisine intérieure avec évier (DOM)
DEROU Nombre de deux-roues à moteur du ménage (DOM)
DIPLM Diplôme le plus élevé obtenu (personne de référence du ménage)
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)
EMPLM Condition d'emploi (personne de référence du ménage)
GARL Emplacement réservé de stationnement
HLML Appartenance du logement à un organisme HLM
ILETUDM Indicateur du lieu d'études (personne de référence du ménage)
ILTM Indicateur de lieu de travail (personne de référence du ménage)
IMMIM Situation quant à l'immigration (personne de référence du ménage)
INAIM Indicateur du lieu de naissance (personne de référence du ménage)
INEEM Nombre d'élèves, étudiants ou stagiaires âgés de 14 ans ou plus du ménage
INP11M Nombre de personnes âgées de 11 ans ou moins du ménage
INP15M Nombre de personnes âgées de 15 ans ou moins du ménage
INP17M Nombre de personnes âgées de 17 ans ou moins du ménage
INP19M Nombre de personnes âgées de 19 ans ou plus du ménage
INP24M Nombre de personnes âgées de 24 ans ou moins du ménage
INP3M Nombre de personnes âgées de 3 ans ou moins du ménage
INP5M Nombre de personnes âgées de 5 ans ou moins du ménage
INP60M Nombre de personnes âgées de 60 ans ou plus du ménage
INP65M Nombre de personnes âgées de 65 ans ou plus du ménage
INP75M Nombre de personnes âgées de 75 ans ou plus du ménage
INPAM Nombre de personnes actives du ménage
INPER Nombre de personnes du ménage
INPER1 Nombre de personnes du ménage, de sexe masculin
INPER2 Nombre de personnes du ménage, de sexe féminin
INPOM Nombre de personnes actives ayant un emploi du ménage
INPSM Nombre de personnes scolarisées du ménage
IPONDL Poids du logement
IRANM Indicateur du lieu de résidence antérieure au 1er janvier de l'annéee précédente de la personne de référence du ménage
METRODOM Indicateur Métropole ou DOM du lieu de résidence
NBPI Nombre de pièces du logement
RECHM Ancienneté de recherche d'emploi (personne de référence du ménage)
REGION Région du lieu de résidence
SANI Installations sanitaires (France métropolitaine)
SANIDOM Installations sanitaires (DOM)
SEXEM Sexe de la personne de référence du ménage
STAT_CONJM Statut conjugal de la personne de référence du ménage
STOCD Statut d'occupation détaillé du logement
SURF Superficie du logement
TACTM Type d'activité de la personne de référence du ménage
TPM Temps de travail (personne de référence du ménage)
TRANSM Mode de transport principal le plus souvent utilisé pour aller travailler (personne de référence du ménage)
TRIRIS Code TRIRIS du lieu de résidence
TYPC Type de construction
TYPL Type de logement
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()

Pour une analyse des logements, on peut retenir les variables suivantes qui nous donnent des informations intéressantes :

  • l’ancienneté d’emménagement dans le logement, la catégorie de logement, l’appartenance du logement à un organisme HLM, le nombre de personnes du ménage, le nombre de pièces du logement, le statut d’occupation détaillé du logement, la superficie du logement, le type de logement ;
  • ainsi que les variables géographiques qui nous serviront pour la suite : département et commune du lieu de résidence, arrondissement le cas échéant, code IRIS, code TRIRIS du lieu de résidence ;
  • et éventuellement : l’existence ou non d’un ascenseur, le moyen de chauffage, l’emplacement réservé de stationnement, l’indicateur de lieu de travail de la personne de référence du ménage, le mode de transport principal le plus souvent utilisé pour aller travailler de la personne de référence, et le nombre de voitures du ménage (auquel on peut ajouter dans ce cas le nombre de deux-roues à moteur du ménage) ;
  • il ne faut pas oublier non plus l’existence d’une variable nommée “poids du logement” qui constitue la pondération.