Prédiction des données socio-économiques des ménages
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


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.
- Pour une maison individuelle (résidence principale), il existe un seul ménage dans le segment d’habitation.
- Pour un bâtiment collectif de 130 logements avec 120 résidences principales, dont la moitié sont des T4 de 85m² et l’autre des T3 de 55m², et qui est occupé par 1 tiers de locataires et 2 tiers de propriétaires, la table
menage_prediction_socio_eco_probase compose de 4 entrées pour ce bâtiment (et 169 colonnes):
| batiment_groupe_id | segment_habitat_id | nbpi | surf | stocd | poids_menage | prob_ager20_02 | prob_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.
- Les variables
TYPMR,INPERetVOITsont relatives au ménage. - Les variables
AGER_20,GS,TRANS,DIPL,EMPLetTPsont relatives à l’individu.
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ématique | Description | Colonnes concernées |
|---|---|---|
| Identifiants & Localisation | Identifiant 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 logement | Description physique et statut d’occupation du logement selon les fichiers fonciers, convertis en modalités INSEE. | typl, surf, hlml, stocd, nbpi, achlr |
| Âge des individus | Variable 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’emploi | Variable 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 travail | Variable 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 automobile | Variable relative aux ménages : Nombre de voitures à disposition du ménage. | voit_top, voit_random, prob_voit_x |
| Catégorie socio-professionnelle | Variable relative aux individus : Groupe socioprofessionnel agrégé en 6 postes. | gs_top, gs_random, prob_gs_x |
| Niveau de diplôme | Variable relative aux individus : Diplôme le plus élevé obtenu. | dipl_top, dipl_random, prob_dipl_xx |
| Taille du ménage | Variable relative aux ménages : Nombre de personnes composant le ménage. | inper_top, inper_random, prob_inper_xx |
| Type de ménage | Variable 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 segment | Poids 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 peuplement | Espé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 Niveau de vie moyen, Chalon-Sur-Saône
(carreaux de 200m, à gauche: prédictions BDNB, à droite filosofi 2019)
(carreaux de 200m, à gauche: prédictions BDNB, à droite filosofi 2019)
Taux de ménages pauvres, Strasbourg Taux de ménages pauvres, Landes
(carreaux de 200m, à gauche: prédictions BDNB, à droite filosofi 2019)
(carreaux de 200m, à gauche: prédictions BDNB, à droite filosofi 2019)
Taux de familles mono parentales, Reims Taux de 65 ans et +, Nancy
(carreaux de 200m, à gauche: prédictions BDNB, à droite filosofi 2019)
(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ésultats | Valeurs |
|---|---|
| Nombre de bâtiments | 32 136 |
| Nombre de ménages | 143 277 |
| Nombre d’habitants | 312 486 |
| Nombre de cadres | 43 410 |
| Nombre d’ouvriers | 16 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ésultats | Valeurs |
|---|---|
| Nombre de ménages | 84 287 |
| Nombre de ménages pauvres | 16 837 |
| Nombre d’individus | 144 889 |
| Nombre d’individus dans un logement F ou G | 15 571 |
| Nombre d’individus dans un logement F ou G et dans un ménage pauvre | 2301 |
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
| Echelle | Variables | INSEE RP2022 | BDNB | Source BDNB |
|---|---|---|---|---|
| Localisation au bâtiment | ❌ | ✅ | ||
| Localisation et contexte géographique | département, pseudo-canton, iris, catégorie d’iris | ✅ | ✅ | Référentiel géographique |
| Bâti | Année de construction (regroupé en 7 classes)Type de logement (MI / LC)Type de construction (MI accolé) | ✅ | ✅ | Fichiers fonciersBD Topo |
| Logement | Nombre de piècesSurface (regroupé en 7 classes) | ✅ | ✅ | Fichiers Fonciers |
| Occupation | Logement HLMStatut d’occupation (locataire, propriétaire) | ✅ | ✅ | Fichiers Fonciers |
| Ménage | Type de ménage (ex: famille mono parentale)Nombre de personnesNombre de voitures | ✅ | ❌ | |
| Individus | Age (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 variable | Nom | Modalité |
|---|---|---|
| INPER | Nombre de personne | 1->30 |
| AGER20 | Âge | 13 classes segmentées sur 3,6,11,15,18, 20,25,30,40,55,65,80 |
| TYPMR | Type de ménage | 9 classes: H ou F seul, monoparentale, couple de 2 actifs, couples 1 actifs et autre, 2 personnes autres |
| EMPL | Condition d’emploi | Apprenti, intérim, emploi aidé, stagiaire, CDD, CDI, indépendant, employeur, aide familiale |
| TACT | Type d’activité | Actif, chômeur, retraité, étudiant, <14 ans, femme ou homme au foyer, inactif |
| DIPL | Diplôme le plus élevé | Pas de scolarité, aucun diplôme, CEP, BEPC, CAP, BEP, BAC, Bac Pro, BTS, DUT, Licence, Master, Doctorat, <14ans |
| GS | Groupe social | Agriculteur, [Artisan / commerçant, chef d’entreprise], Cadre, intermédiaire, employé, ouvrier, sans objet |
| VOIT | Nombre de voiture | 1,2,3,4, Sans objet |
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
- $y$ le niveau de vie du ménage,
- $x$ un vecteur de variables descriptives de l’individu,
- $A$ et $b$ des paramètres du modèle,
- $\epsilon$ le résidu du modèle, qu’on suppose suivre une loi normale.
Données
Les données utilisées pour estimer les paramètres du modèle sont :
- le recensement de la population 2021 : individus localisés au canton ou ville (variables prédictives),
- l’enquête Filosofi 2021 : Revenus, pauvreté et niveau de vie en 2021 (Iris).
Variables prédictives
Les variables prédictives sont issues du fichier de recensement individu. Il s’agit des variables catégoriques :
dipl: niveau de diplôme de la personne de référence ;empl: catégorie d’emploi (CDD, CDI, employeur…) ;cs: catégorie socio-professionnelle (Employé, Cadre, Ouvrier…) ;tp: emploi à temps complet ou non ;stocd: statut d’occupation du logement (propriétaire, locataire du parc privé ou social) ;ager20: âge de la personne de référence ;inper: nombre de personnes du ménage.
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 :
- en prédisant à partir des données du recensement (fichier détail individus)
- en prédisant à partir des données de population prédites au bâtiment

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

Validation des prédictions de niveau de vie basées sur les prédictions de population au ménage de la BDNB
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. ↩︎