Jeu « brut » du cas 1 — DONNÉES SYNTHÉTIQUES (chapitre 14) — généré le 2026-10-31, graine 20261031
Aucune de ces lignes ne décrit une propriété, une transaction, un matricule ou une adresse réels. Les quatre fichiers ci-dessous sont
produits par analysis/python/cases/ch14_nettoyage.py (PYTHONPATH=analysis/python python3 analysis/python/cases/ch14_nettoyage.py) à partir
du jeu propre cas1_gatineau_ventes.csv (600 ventes, voir README.md). Ils servent à enseigner la détection et la correction des anomalies ;
ils ne sont utilisés par aucun autre chapitre. Ce fichier est tenu à la main (le README.md voisin est régénéré par synth.py).
| Fichier | Lignes | Contenu |
|---|---|---|
cas1_gatineau_ventes_brut.csv |
618 | inscriptions de ventes « telles que reçues » : 600 ventes + 18 doublons, 109 lignes altérées |
cas1_gatineau_anomalies_injectees.csv |
127 | table de vérité : id_inscription, id_vente_origine, anomalie, detail |
cas1_gatineau_role_extrait.csv |
600 | extrait de rôle fictif (une unité par vente propre) : matricule canonique, adresse fictive, secteur, terrain, année, valeur au rôle |
cas1_gatineau_journal_exclusions.csv |
144 | journal produit par le pipeline du chapitre : étape, inscription, action (exclusion / correction / imputation), motif, champ, valeur avant / après |
Colonnes du jeu brut
id_inscription (B0001…B0618, ordre = date d'acte) ; id_vente_origine (colonne de traçabilité pédagogique, absente d'un vrai jeu brut,
jamais lue par le pipeline) ; matricule (clé d'unité fictive au format canonique SS-FF-NNNN-C, 9 chiffres, altérée dans 44 % des lignes :
25 % avec espaces, 10 % sans séparateurs, 5 % avec un chiffre erroné, 4 % absente) ; adresse_fictive ; date_promesse, date_acte
(l'acte suit la promesse de 21 à 90 jours, tirage uniforme) ; secteur, type ; superficie_habitable_m2, superficie_terrain_m2,
annee_construction, qualite_1a5, garage_places, sous_sol_fini, piscine, chambres, salles_de_bain ; lat, lon ;
valeur_role_2025 ; montant_meubles ; type_transaction (ordinaire / entre personnes liées / succession) ; prix_vente (prix déclaré,
meubles compris le cas échéant). Les colonnes dérivées du jeu propre (age, dist_centre_km, date_vente) sont volontairement absentes :
le pipeline les recalcule.
Anomalies injectées (lignes tirées sans remise, disjointes ; graine 20261031)
| Code | n | Loi d'injection | Détection attendue |
|---|---|---|---|
doublon |
18 | copie intégrale d'une inscription, nouvel identifiant ; pour 6 d'entre elles l'acte est décalé de 1 à 3 jours | R1 (clé d'unité normalisée + promesse + prix ; puis attributs) |
prix_symbolique |
5 | prix remplacé par 1 $ | R4 (prix < 5 000 $) |
meubles_inclus |
8 | montant_meubles ~ U(8 000 ; 35 000) arrondi à 500 $, ajouté au prix |
R3 (correction : prix − meubles) |
superficie_pi2 |
12 | superficie × 10,7639 (saisie en pi²) | R5 (> 450 m² et plausible une fois divisée) |
dates_inversees |
10 | permutation promesse ↔ acte | R2 (acte antérieur à la promesse) |
coord_nulles |
9 | lat = lon = 0 | R6 puis G1 (géocodage de repli au centre du secteur) |
coord_hors_zone |
6 | signe de la longitude inversé (≈ ½) ou lat ↔ lon | R6 puis G1 |
vente_liee_declaree |
8 | prix × U(0,40 ; 0,60), type_transaction = « entre personnes liées » (p = 0,65) ou « succession » |
R7 |
vente_liee_non_declaree |
6 | prix × U(0,40 ; 0,60), type_transaction laissé à « ordinaire » |
S1 (score robuste) ou E1 (résidu studentisé) |
terrain_manquant |
20 | superficie_terrain_m2 = NA |
I1 (imputation) |
qualite_manquante |
15 | qualite_1a5 = NA |
I1 |
annee_manquante |
10 | annee_construction = NA |
I1 |
Les proportions (≈ 18 % des lignes touchées) sont volontairement élevées pour que chaque mécanisme soit visible ; elles ne mesurent pas la
fréquence des anomalies dans une source réelle (aucune statistique publique sur ce point n'a été trouvée, voir verification/chapters/ch14-claims.csv).
Pipeline de référence (chapitre 14)
R1 doublons → R2 dates → R3 meubles → R4 prix symbolique → R5 unité de superficie → R6 coordonnées → R7 transactions déclarées non représentatives →
G1 géocodage de repli → I1 imputation (médiane conditionnelle secteur × type) → S1 scores robustes (|z| > 3,5 sur ln prix/m² par secteur, ln superficie,
ln terrain par secteur) → E1 régression (traite.cas1.hedonique, exclusion si |t_i| > 3, au plus deux itérations). Résultat : 579 ventes ;
le modèle hédonique réestimé coïncide avec celui du jeu propre à moins de 0,5 erreur-type sur chaque coefficient (σ = 0,0837 contre 0,0830).
Version du pipeline inscrite dans le journal : ch14_nettoyage.py 1.0 (2026-10-31). Tests : analysis/python/tests/test_ch14.py.