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)
<- fread("data/FD_LOGEMTZA_2019.csv", stringsAsFactors=TRUE)
RP <- as.data.frame(RP) 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
<- read.csv(file = 'data/Varmod_LOGEMT_2019.csv',
meta 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)
%>% head() %>% gt() #La fonction gt() permet un affichage plus joli pour le document html meta
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 %>% rename(COD_VAR=X.U.FEFF.COD_VAR)
meta 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()
.
%>% select(COD_VAR, LIB_VAR) %>% unique() %>% gt() meta
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 :
%>% select(COD_VAR, LIB_VAR) %>% unique() %>% arrange(COD_VAR) %>% gt() meta
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.