SPB Git

# 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.

Files · main
Menu

Theme