Identifier les personnes vulnérables, un enjeu d’adaptation au changement climatique

L’atténuation et l’adaptation au changement climatique ne peuvent se concevoir sans prendre en compte les populations qui occupent et possèdent ces logements. Capacité d’investissement dans la rénovation, vulnérabilité sanitaire, précarité énergétique, sont autant d’enjeux qui requièrent une connaissance croisée de la performance du bâti et des caractéristiques socio-économiques.

À ce jour, l’obtention de données socio-économiques à l’échelle du bâtiment se heurte à des contraintes légitimes de confidentialité (RGPD, secret statistique). Pour lever ce frein et accompagner les acteurs publics, la BDNB propose une prédiction probable de l’état socio-économique du ménage dans chacun de ses bâtiments à usage résidentiel.

Introduite avec le statut “expérimental” dans le millésime BDNB 2026_02.a, la table menage_prediction_socio_eco_proba fournit des prédictions probabilistes concernant les déterminants sociologiques et économiques des ménages. Elle permet de croiser la performance du bâti avec la réalité socio-économique de ses occupants. Les données sont restituées par individus et par ménages au sein d’un bâtiment.

Les prédictions socio-économiques de la BDNB en résumé

  • Echelle ménage et individus
  • Compatible RGPD : l’approche probabiliste garantit l’anonymat statistique (pas de ré-identification des données INSEE).
  • Accès restreint : Table de statut “Expert”, réservée aux ayants droit des Fichiers Fonciers.
  • Richesse thématique : niveau de vie / pauvreté, composition familiale, emploi, éducation, mobilité, sobriété immobilière…
  • Permet la construction d’indicateurs croisés bâtiment / occupant : précarité énergétique (TEE_3D), vulnérabilité sanitaire, sous-occupation…
  • Nomenclature alignée sur celle du recensement de l’INSEE

Prédiction des proportions des groupes sociaux des individus dans les bâtiments, Région Parisienne
Prédiction des niveaux de vie des ménages dans les bâtiments, Région Parisienne

Usage

menage_prediction_socio_eco_proba

Chaque ligne agrège les prédictions pour les ménages occupant un segment d’habitation homogène au sein du bâtiment ( surface habitable, nombre de pièces, type de logement, HLM, locataire / propriétaire). segment_habitat_id est un identifiant fictif permettant d’identifier le segment d’habitation. Il est associé à un poids poids_menage qui compte le nombre de ménages au sein du segment d’habitat.

batiment_groupe_idsegment_habitat_idnbpisurfstocdpoids_menageprob_ager20_02prob_ager20_05
‘bdnb-bg-BRYS-G7DY-877U’‘1’‘4’‘4’‘10’40
‘bdnb-bg-BRYS-G7DY-877U’‘2’‘4’‘4’‘21’20
‘bdnb-bg-BRYS-G7DY-877U’‘3’‘3’‘3’‘10’40
‘bdnb-bg-BRYS-G7DY-877U’‘4’‘3’‘3’‘21’20

Les données obtenues à partir des fichiers fonciers et converties dans les modalités INSEE sont reportées directement (typl, typc, stocd, surf, nbpi). Les prédictions probabilistes sont reportées modalité par modalité, agrégées aux segments d’habitation. Ex : prob_inper_2 = P(inper=2) est la probabilité que les ménages dans ce segment soient composés de 2 individus.

La variable poids_menage indique combien de ménages sont dans le segment d’habitat. La somme des poids des ménages est égale au nombre de résidences principales dans le groupe de bâtiments.

ThématiqueDescriptionColonnes concernées
Identifiants & LocalisationIdentifiant fictif du segment d’habitation et code de localisation géographique (pseudo-canton insee cantville).batiemnt_groupe_id, code_departement_insee, code_iris,cantville , code_commune, segment_habitat_id,
Caractéristiques du logementDescription physique et statut d’occupation du logement selon les fichiers fonciers, convertis en modalités INSEE.typl, surf, hlml, stocd, nbpi, achlr
Âge des individusVariable relative aux individus : Âge en années révolues, détaillé en 13 classes d’âge autour de 20 ans.ager20_top, ager20_random, prob_ager20_xx
Condition d’emploiVariable relative aux individus : Situation contractuelle et condition d’emploi (CDI, CDD, Intérim, Indépendant, etc.).empl_top, empl_random, prob_empl_xx
Type d’activitéVariable relative aux individus : Statut d’activité (Actif, Chômeur, Retraité, Étudiant, etc.).tact_top, tact_random, prob_tact_xx
Temps de travailVariable relative aux individus : Différenciation entre temps complet, temps partiel ou sans objet.tp_top, tp_random, prob_tp_x
Mobilité (Transport)Variable relative aux individus : Mode de transport principal le plus souvent utilisé pour aller travailler.trans_top, trans_random, prob_trans_x
Équipement automobileVariable relative aux ménages : Nombre de voitures à disposition du ménage.voit_top, voit_random, prob_voit_x
Catégorie socio-professionnelleVariable relative aux individus : Groupe socioprofessionnel agrégé en 6 postes.gs_top, gs_random, prob_gs_x
Niveau de diplômeVariable relative aux individus : Diplôme le plus élevé obtenu.dipl_top, dipl_random, prob_dipl_xx
Taille du ménageVariable relative aux ménages : Nombre de personnes composant le ménage.inper_top, inper_random, prob_inper_xx
Type de ménageVariable relative aux ménages : Composition familiale regroupée en 9 postes (Personne seule, couple, famille monoparentale, etc.).typmr_top, typmr_random, prob_typmr_xx
Indicateurs structurels du segmentPoids du ménage dans le segment, espérance du nombre d’individus, et surfaces habitables (moyenne et par individu).poids_menage, nb_individu, surface_logement_moyen_menage, s_log_moyen_menage, m2_par_individu
Précarité & VulnérabilitéEspérances et probabilités liées à des situations spécifiques (Monoparentalité précaire, individus NEET, seniors vivant seuls ou non).nb_menage_mono_precaire, prob_menage_mono_precaire, nb_individu_neet, prob_individu_neet, nb_individu_65p_seul, prob_individu_65p_seul, nb_individu_65p, prob_individu_65p
Conditions de peuplementEspérances et probabilités identifiant les situations de suroccupation (accentuée, modérée, globale) ou de sous-occupation du logement.nb_menage_suroccupe_acc, prob_menage_suroccupe_acc, nb_menage_suroccupe_mod, prob_menage_suroccupe_mod, nb_menage_sousoccupe, prob_menage_sousoccupe, prob_menage_suroccupe_globale
Niveau de vie & PauvretéEstimations du niveau de vie (moyen, écart-type, bornes de l’intervalle de confiance à 95%, valeur aléatoire), probabilité de précarité (seuil de pauvreté) et appartenance aux déciles.niveau_de_vie_moyen, niveau_de_vie_random, niveau_de_vie_std, niveau_de_vie_lower, niveau_de_vie_upper, prob_men_pauvre, prob_dx, niveau_de_vie_decile_random

Comparaison avec les données INSEE : agrégation des données bâtiments à la maille 200m

Niveau de vie moyen, Région Parisienne (carreaux de 200m, à gauche: prédictions BDNB, à droite filosofi 2019)

Niveau de vie moyen, Région Parisienne
(carreaux de 200m, à gauche: prédictions BDNB, à droite filosofi 2019)

Niveau de vie moyen, Chalon-Sur-Saône (carreaux de 200m, à gauche: prédictions BDNB, à droite filosofi 2019)

Niveau de vie moyen, Chalon-Sur-Saône
(carreaux de 200m, à gauche: prédictions BDNB, à droite filosofi 2019)

Taux de ménages pauvres, Strasbourg (carreaux de 200m, à gauche: prédictions BDNB, à droite filosofi 2019)

Taux de ménages pauvres, Strasbourg
(carreaux de 200m, à gauche: prédictions BDNB, à droite filosofi 2019)

Taux de ménages pauvres, Landes (carreaux de 200m, à gauche: prédictions BDNB, à droite filosofi 2019)

Taux de ménages pauvres, Landes
(carreaux de 200m, à gauche: prédictions BDNB, à droite filosofi 2019)

Taux de familles mono parentales, Reims (carreaux de 200m, à gauche: prédictions BDNB, à droite filosofi 2019)

Taux de familles mono parentales, Reims
(carreaux de 200m, à gauche: prédictions BDNB, à droite filosofi 2019)

Taux de 65 ans et +, Nancy (carreaux de 200m, à gauche: prédictions BDNB, à droite filosofi 2019)

Taux de 65 ans et +, Nancy
(carreaux de 200m, à gauche: prédictions BDNB, à droite filosofi 2019)

Exemple 1 : Compter le nombre d’habitants et leur revenu moyen à 500m d’une ligne reliant Lyon à Paris

WITH axe_transport AS (
    SELECT 
        
            ST_Transform(
                ST_GeomFromText('LINESTRING(2.3522 48.8566, 4.8357 45.7640)', 4326), 
                2154
            )
        
         AS zone_etude
)

SELECT 
    ROUND(SUM(menage.nb_individu)) AS total_habitants_proximite_axe,
    ROUND(SUM(menage.poids_menage )) AS total_menage_proximite_axe,
    ROUND(SUM(menage.nb_individu* menage.prob_gs_6)) AS total_habitants_ouvrier,
    ROUND(SUM(menage.nb_individu* menage.prob_gs_3)) AS total_habitants_cadre,
    COUNT(DISTINCT bg.batiment_groupe_id) AS nombre_batiments_concernes,
    (SUM(menage.niveau_de_vie_random *menage.poids_menage )/SUM(menage.poids_menage ))::int as niveau_de_vie_moyen
    
FROM bndb_v07.menage_prediction_socio_eco_proba AS menage
JOIN batiment_groupe AS bg 
    ON bg.code_departement_insee = menage.code_departement_insee 
    AND bg.batiment_groupe_id = menage.batiment_groupe_id 
JOIN axe_transport 
    ON st_dwithin(bg.geom_groupe, axe_transport.zone_etude,500);
RésultatsValeurs
Nombre de bâtiments32 136
Nombre de ménages143 277
Nombre d’habitants312 486
Nombre de cadres43 410
Nombre d’ouvriers16 758
Niveau de vie moyen des ménages (€)26 988

Exemple 2 : Estimer le nombre d’individus vivant dans un bâtiment avec un DPE de classe F ou G à Dijon

SELECT 
    -- Individus
    SUM(menage.nb_individu)::int AS total_individus, 
    SUM(menage.nb_individu * (dpe.etiquette_dpe_initial_f + dpe.etiquette_dpe_initial_g))::int AS individus_logement_passoire, 

    -- Ménages
    SUM(menage.poids_menage)::int AS total_menages,
    SUM(menage.poids_menage * menage.prob_men_pauvre)::int AS menages_pauvres, 
    
    -- Vulnérabilité croisée
    SUM(
        menage.nb_individu * 
        menage.prob_men_pauvre * 
        (dpe.etiquette_dpe_initial_f + dpe.etiquette_dpe_initial_g)
    )::int AS individus_vulnerabilite_energetique
    
FROM bndb_v07.menage_prediction_socio_eco_proba AS menage
INNER JOIN bndb_v07.batiment_groupe AS bg 
    ON bg.code_departement_insee = menage.code_departement_insee 
    AND bg.batiment_groupe_id = menage.batiment_groupe_id 
INNER JOIN bndb_v07.batiment_groupe_simulations_dpe AS dpe
    ON bg.code_departement_insee = dpe.code_departement_insee 
    AND bg.batiment_groupe_id = dpe.batiment_groupe_id 
WHERE bg.code_commune_insee = '21231';
RésultatsValeurs
Nombre de ménages84 287
Nombre de ménages pauvres16 837
Nombre d’individus144 889
Nombre d’individus dans un logement F ou G15 571
Nombre d’individus dans un logement F ou G et dans un ménage pauvre2301

Fiche méthode

Prédiction des descriptions des individus et des ménages

La prédiction des données de population est réalisée par apprentissage supervisé sur les données du fichier détails individu du recensement de la population (RP INDCVI 2022 ).

Entrées et sorties du modèle

EchelleVariablesINSEE RP2022BDNBSource BDNB
Localisation au bâtiment
Localisation et contexte géographiquedépartement, pseudo-canton, iris, catégorie d’irisRéférentiel géographique
BâtiAnnée de construction (regroupé en 7 classes)Type de logement (MI / LC)Type de construction (MI accolé)Fichiers fonciersBD Topo
LogementNombre de piècesSurface (regroupé en 7 classes)Fichiers Fonciers
OccupationLogement HLMStatut d’occupation (locataire, propriétaire)Fichiers Fonciers
MénageType de ménage (ex: famille mono parentale)Nombre de personnesNombre de voitures
IndividusAge (regroupé en 20 catégories)Diplôme le plus élevéCondition d’emploi (CDD, CDI, stagiaire,…)Type d’activité (actifs, chômeurs, étudiant)Groupe économique (ex: cadre, ouvrier,…)Temps partiel

Modalités prédites

Code variableNomModalité
INPERNombre de personne1->30
AGER20Âge13 classes segmentées sur 3,6,11,15,18, 20,25,30,40,55,65,80
TYPMRType de ménage9 classes: H ou F seul, monoparentale, couple de 2 actifs, couples 1 actifs et autre, 2 personnes autres
EMPLCondition d’emploiApprenti, intérim, emploi aidé, stagiaire, CDD, CDI, indépendant, employeur, aide familiale
TACTType d’activitéActif, chômeur, retraité, étudiant, <14 ans, femme ou homme au foyer, inactif
DIPLDiplôme le plus élevéPas de scolarité, aucun diplôme, CEP, BEPC, CAP, BEP, BAC, Bac Pro, BTS, DUT, Licence, Master, Doctorat, <14ans
GSGroupe socialAgriculteur, [Artisan / commerçant, chef d’entreprise], Cadre, intermédiaire, employé, ouvrier, sans objet
VOITNombre de voiture1,2,3,4, Sans objet
Les données sont ensuite agrégées et pondérées pour chaque ménage

L’inférence est réalisé avec un modèle génératif tabulaire probabiliste de type transformer + VAE, entraîné sur les données individuelles du recensement. Son architecture est similaire à celui utilisé pour les prédictions des données de performances énergétiques de la BDNB.
Il reconstruit des individus cohérents statiquement (corrélations entre variables respectées) à partir d’un ensemble réduit de variables explicatives.

Prédiction du niveau de vie des ménages

La prédiction du niveau de vie des ménages s’appuie sur un modèle économétrique reliant des données relatives aux individus avec le niveau de vie de leurs ménages. Il s’agit d’un modèle linéaire généralisé : $$ \log(y) = Ax + b + \epsilon $$ avec

Données

Les données utilisées pour estimer les paramètres du modèle sont :

Variables prédictives

Les variables prédictives sont issues du fichier de recensement individu. Il s’agit des variables catégoriques :

Seule les variables renseignée par le modèle de prédiction des occupants sont considérées. Le sexe des individus, pourtant déterminant, est ainsi exclus.

Variables prédites

La variable prédite est le niveau de vie du ménage : son revenu disponible rapporté à sa taille en unités de consommations.

Estimateur statistique

Le modèle est entraîné en minimisant sur chaque IRIS un écart aux déciles mesurés par l’enquête Filosofi. Plus précisément, notre estimateur de $A$, $b$ et $\sigma$ est : $$ \mathrm{MSE}(A, \sigma) = \sum_{i \in I} \sum_{k=1}^9 \left( p(y < d_{ik} | I, A, \sigma) - \frac{k}{10} \right)^2, $$ où la première somme porte sur l’ensemble $I$ des IRIS, et $d_{ik}$ est le $k$-ème décile de l’IRIS $i$. Cet estimateur dispose de bonnes propriétés statistiques : il est cohérent et sans biais1.

Un dernier point reste à éclaircir pour comparer notre modèle, conditionné au niveau des individus, avec l’enquête Filosofi, qui caractérise la distribution des ménages. Dans l’estimateur ci-dessus, la distribution $p$ est celle du niveau de vie d’un ménage tiré uniformément au hasard dans la population. Conditionnellement à un ménage $M$ constitué des individus $x_1,\ldots,x_k$, celle-ci est donnée par $$ \tilde{p}(y | M) = \frac{1}{k}\sum_{i=1}^k p(y | x_i). $$

Validation

La performance du modèle est évaluée sur chaque IRIS en comparant les déciles des distributions de niveau de vie. Les déciles de la distribution prédites sont comparés aux déciles empiriques mesurés par l’enquête Filosofi. Les QQ-plots ci-dessous donnent deux comparaisons :

QQ-plot des niveaux de vie prédits vs filosofi 2019 à l'iris

Validation sur jeu de données d’apprentissage (Recensement de la population et Filosofi)

QQ-plot des niveaux de vie prédits vs filosofi 2019 à l'iris

Validation des prédictions de niveau de vie basées sur les prédictions de population au ménage de la BDNB


  1. Il appartient en effet à la classe des M-estimateurs, donné par une somme de fonctions convexes lisses. Voir Vaart, A. W. van der. 1998. Asymptotic Statistics. Cambridge Series in Statistical and Probabilistic Mathematics. Cambridge University Press. ↩︎