SPB Git

spb/wp3_uqo

Public

UQO Working Paper No. 3 — Hedonic housing price models for the US: parametric, quantile, and machine-learning approaches.

History of scripts Clear filter
page 1
  1. Wed, Nov 4, 2026 5

    1. Stage F B1/B2 + N1..N14
      …
      Verification sign-off (Agent 11) corrections, numbers through macros/generators only.
      B1 SHAP rho macros renamed to the defined keys (d_shap_rho_xgb_lgb/_xgb_rf/_lgb_rf) + tests/test_inline_numbers.py (every \inum key used is defined, every numeric macro renders a number, committed inline_numbers.tex not stale).
      B2 make_inline_numbers.py: float() before round(), d() coerces numpy scalars, render guard rejects object representations (no np.float64 in the PDF).
      N1 one rounding rule: inline_numbers.json stores raw + digits, formatted macros/derived/README round once from raw (prose = tables: 0.637, 17.6, 0.767, 0.622, 0.523, 0.706, 0.8).
      N2 feasible correction on its own seed-42 baseline (0.635; share 82 -> 83 %), stated in 5.7.1. N3 trees-curve column "LOSO (mean of 51 state R2)" + legend/caption. N4 r2_ols_random_test_v12 refreshed via 10_stored_checks.py. N5 README written entirely by 08::t_readme. N6 title-page commit convention. N7 "monotonically"/"nothing out of state"/"under every rule" softened to the numbers. N8 SHAP beeswarm tercile markers. N9 cluster_se note -> tab:ols_results, 3.743 -> 3.7, \inumsci for the condition number. N10 eq:moran/iqr_test/mdape/within referenced. N11 abstract 149 words. N12 style flags removed, p. 66 widow gone. N13 run_meta.json restored from the M4BP48 log (5.67 h) with the re-run kept under previous_runs; 05 script no longer overwrites. N14 tab:contributions.
      Build: 89 pages, 0 errors, 0 undefined, 0 overfull > 5 pt, 0 float too large; 18 tests pass.
      
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 3 files +242 −31
    2. Simon-Pierre Boucher · 1 file +5 −1
    3. R03-ADVE-16: 05_geo_designs keeps trees_curves.csv on a cached --resume run
      …
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +2 −2
    4. Simon-Pierre Boucher · 1 file +5 −3
  2. Tue, Nov 3, 2026 7

    1. R03-ADVE-06: QR legacy check records that the stored pseudo-R2 equals 1 - R1(tau)
      …
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +3
    2. R03-ADVE-08/ECON-02/THEO-06/ECON-04/THEO-05/EDIT-07/ADVE-14/ECON-07/EDIT-09/DATA-03/DATA-04: wild bootstrap, state regressions with SEs, full-sample Moran, Conley HAC; table generator, run_all.sh, test_tables
      …
      - wild cluster bootstrap by state (B = 9,999): 23 of 63 slopes at 5% (Webb and Rademacher), 9 after Holm
      - state-by-state OLS with ZIP3-cluster SEs: reversals with |t| > 2 are 0-12 per variable (v1.2: 19-23 by sign only);
        homogeneity rejected for every variable; EB shrinkage bands; fully interacted +6.1 pp over state FE (0.752 vs 0.690)
      - Moran's I on the full random test set (157,769 listings, k = 8): OLS 0.454, LightGBM 0.288, XGBoost 0.234; distance
        bands 0-1 / 1-5 / 5-25 km; Conley HAC 25/50/100 km on 100,000 listings (between HC0 and state-cluster SEs)
      - scripts/08_tables_figures_v2.py: every table as a v2_*.tex fragment + figures + inline_numbers.json (re-runnable as
        batches complete); run_all.sh entry point; tests/test_tables.py
      
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +759
    3. R03-DATA-06/EDIT-04/ADVE-05/ADVE-12/ECON-10/THEO-08/EDIT-02/ECON-08/ADVE-17: inference v2 (fast steps) and geo-inference script
      …
      - 06_inference_v2.py: zpid/split assertions pass; v2 OLS cluster SEs: 33 of 63 slopes |t|>1.96 under state
        clustering (t(50): 33; Holm 17; BH 26), CSS effective G (state: median 14.2, min 3.7); '000' cluster = 16
        listings, nearest-ZIP3 reassignment; clustered Kennedy; lot recoding on v2 (0.0182 -> 0.0958, matches
        v1.2 Table 29); paired squared-error differences with ZIP3-cluster SEs (stored predictions)
      - 09_geo_inference.py: ZIP3-cluster bootstrap of the OLS-vs-ensemble gap per design, LOSO paired tests,
        SSE decomposition, feasible level correction, 2x2 region x rounds, duplicates re-score, gap range
      
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 2 files +807
    4. Simon-Pierre Boucher · 1 file +3 −1
    5. R03-DATA-04/ADVE-13/ECON-12/ECON-09: legacy exhibits machine-generated; OLS predictions via centred least squares
      …
      - 04_export_tables.py --legacy-exhibits: Tables 2, 5, 9, 11, 17, 30 from stored artefacts / rebuilt sample
        (Table 9 reproduced: 0.634/0.630, 0.681/0.678, 0.729/0.725; Ridge/Lasso/ENet rows flagged not reproducible;
        Moran SD under both ddof conventions 0.0076 / 0.0094; z-statistics not stored)
      - OLS out-of-fold predictions use LinearRegression (centred): a raw-constant lstsq on the legacy design with the
        corrupt parking column gives 0.613 instead of the stored 0.630 on the random split (now reproduced to 1e-12)
      
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 3 files +135 −9
    6. R03-EDIT-01/ADVE-01/ADVE-03/ADVE-04/EDIT-03/THEO-01/ADVE-06/ECON-03/ADVE-05/THEO-15: geo-design runner, QR v2 and stored-estimate checks
      …
      - scripts/05_geo_designs.py: OLS/XGB/LGB under random, size-matched, ten-state, GroupKFold by state/ZIP3/ZIP5
        and LOSO on the v2 design; nested inner GroupKFold(3) round selection; 5 seeds; factorial ablation; OOF predictions;
        resumable (smoke-tested on a 15k/30k subsample on the laptop)
      - scripts/07_qr_v2.py: QR at 5 tau on the trimmed v2 design with convergence flags, 10-seed stability, paired
        obs + ZIP3 bootstrap (999 draws), Holm/BH/Romano-Wolf, percentile/basic CIs, legacy check vs qr_results.pkl
      - scripts/10_stored_checks.py: counts over 62 slopes (|t|>1.96: 32 state / 34 ZIP3; t(50): 31; Holm 19; BH 29),
        oracle within-state R2 on the stored random split (XGB 0.802, LGB 0.774, OLS 0.599), '000' cluster = 16,
        Moran SD conventions, LOSO summaries, 0.547/0.542 traced to extended_results.pkl, duplicates (1,127 test rows,
        R2 change < 0.001), Zestimate selection, clustered Kennedy; results/inline_numbers.json (82 entries)
      
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 2 files +585
    7. R03-DATA-01/EDIT-05/ADVE-07/ADVE-10/DATA-06/THEO-15/DATA-02/DATA-08: rebuild the upstream stage (00_build_sample, 00b_design_matrix, 00c --legacy, tests, DAS, environment)
      …
      - scripts/00_build_sample.py + src/wp3/build.py: DuckDB -> analytical sample; all 68 columns equal
        analytical_sample.pkl bit-for-bit (max |d| = 0); attrition, descriptives, corrected Table 3 rules
        (stories/parking = state median), lot reconciliation (123,942 + 6,115 + 211 + 3 negative = 130,271),
        duplicates (6,787 rows / 3,152 groups), listing-type shares, data window (snapshot 2026-01-08)
      - data/ref/category_map.csv: frozen raw-string -> category lookup (30,038 strings)
      - scripts/00b_design_matrix.py + src/wp3/design.py: one design matrix (design_v2.parquet); legacy mode
        equals model_data.pkl::X_const (max |d| = 0, means/stds ddof=1); v2 = ln lot recoded + lot_missing,
        parking/stories winsorised, implausible flag (4,970), six missingness indicators
      - scripts/00c_primary_models.py --legacy --ols-only: baseline OLS reproduced (params rel 7e-12, HC3 SE
        rel 9e-8, R2 0.634277, F 18,712.47, skew 0.1776, kurtosis 5.5452; state-FE test R2 0.67757 vs 0.67754)
      - tests/: 13 assertions green; environment/: requirements.lock (laptop + M4M64c), README
      - data/DATA_AVAILABILITY.md: source, window, licence, SHA-256, sizes, listing types
      
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 4 files +1,133
  3. Sat, Oct 17, 2026 1

    1. révision scientifique complète (editorial board, 2026-10-17)
      …
      v1.1 → v1.2 (October 2026). Audit des données (variables scolaires imputées à 93 %, ln(lot)=0 pour 16,5 %,
      valeurs aberrantes), inférence groupée ZIP3/État, estimation État par État, bootstrap apparié des tests
      inter-quantiles, validation géographique étendue (courbe d'arbres, split apparié, GroupKFold, leave-one-state-out,
      R² within-state), OLS hors État corrigé (0,539), 23 références vérifiées ajoutées + 28 DOI, sections réécrites,
      docs/REVIEW-REPORT.md et docs/CHANGELOG-REVISION.md, scripts 05–08, 82 pages.
      
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 4 files +1,158
  4. Wed, Aug 5, 2026 1

    1. Initial commit: WP3 research compendium (hedonic housing prices, US)
      …
      Restructured research project for UQO Working Paper No. 3: refactored
      analysis pipeline (src/wp3 + numbered scripts), 11 publication-ready
      figures regenerated from stored artifacts, LaTeX paper (52 pages,
      BibTeX bibliography, compiles clean), CSV table exports, and full
      audit/change documentation (AUDIT.md, CHANGES.md).
      
      Large data artifacts (DuckDB raw extract, processed pickles) are
      excluded from the repository and available on request.
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      simon-pierre boucher · 4 files +938
Menu

Theme