Validation empirique de la méthode des comparables (Vrai Prix)
Projet de recherche : rétro-évaluation à grande échelle de la méthode de comparaison des ventes sur les transactions
résidentielles unifamiliales du Québec (Vrai Prix, 2021-01 → 2026-09). Protocole : docs/PROTOCOLE.md.
Rapport de résultats : docs/RAPPORT.md / docs/RAPPORT.pdf.
Organisation
pipeline/ 01_dataset → 02_index → 03_models → 04_backtest → 05_analyze → 06_report
docs/ PROTOCOLE.md, RAPPORT.md(.pdf), header.tex
out/<version>/ sales.parquet, index_asof.npy, models_*.json, est_E*.npy, targets.parquet, tables/, fig/, results.json
data/ (nœud seulement) vraiprix-20261010.db — instantané de la base de production Vrai Prix
ref/ MUN.csv (répertoire des municipalités MAMH : code → MRC → région)Exécution
Le calcul se fait sur M2U64 (~/comparables-validation, venv ~/uqo-eval-terrains/env, Python 3.14 : pandas, numpy, scipy,
lightgbm, matplotlib). Le laptop garde le code, les docs et une copie des sorties.
rsync -a --exclude out --exclude data --exclude .git ~/Desktop/Recherche-UQO/immobilier/sales-comparison-validation/ M2U64:comparables-validation/
ssh M2U64 'cd ~/comparables-validation && CV_VERSION=2026-10-10 ./run_all.sh' # ~ 30 min
./make_pdf.sh # rapatrie out/ + docs/ et compile le PDFVariables : CV_VERSION (dossier de sortie), CV_SAMPLE=3000 (échantillon de cibles pour un essai), CV_PROCS (processus, 20 par défaut).
Données
Instantané vraiprix.db pris sur M3U96a (~/apps/vrai-prix/data) le 2026-10-10 : 766 596 transactions, 3,75 M d'unités du rôle.
Jeu propre : ventes unifamilial jumelées au rôle, règles R0-R11 journalisées dans out/<v>/exclusions.csv.
Working paper (UQO WP 16)
paper/ : article en anglais au gabarit UQO (main.tex, sections/*.tex, appendix/, references.bib).
Les chiffres du texte sont des macros (tables/numbers.tex) et les tableaux sont générés depuis out/<version>/ :
./make_pdf.sh # rapatrie out/ et compile docs/RAPPORT.pdf (français)
cd paper && python3 make_paper_tables.py && latexmk -pdf main.tex # tables + macros + PDF du WPCalcul réparti
run_distributed.sh : distribue les modèles trimestriels aux nœuds, lance la rétro-évaluation en 15 fragments
(M3U96a ×4, M3U96b ×4, M2U64 ×3, M4M64a ×2, M4M64b ×2), rassemble sur M2U64 (04b_gather.py) puis exécute 05 et 06.
Ré-estimation trimestrielle répartie : CV_ASOF=54,57 CV_THREADS=28 ../env/bin/python 03_models.py sur chaque nœud.