révision scientifique complète (editorial board, 2026-10-17)
- scoreboard uniforme (règle médiane pour tous les modèles ; Duan en robustesse) : le « renversement » forward-in-time de la v1.0 était un artefact de retransformation - inférence : bootstrap par grappes (municipalités) + tests DM/GW groupés sur toutes les comparaisons ; décomposition niveau/compétence du generalization gap - robustesse : splits groupés parcelle/bâtiment, FE spatiaux emboîtés, Box–Cox fin, sensibilité HGB ; nouvelle section 7, 9 tables et 1 figure - méthodologie formalisée (13 équations) ; littérature 33 → 58 références vérifiées - docs/REVIEW-REPORT.md, docs/CHANGELOG-REVISION.md ; version 1.1, October 2026 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
62 changed files +3,545 −758
modified
README.md
+76 −36
@@ -4,7 +4,7 @@ | ||
| 4 | 4 | **UQO Working Paper No. 11** — *A Systematic Assessment of Hedonic Specifications |
| 5 | 5 | and Estimation Methods for the Quebec Housing Market, 2021–2026* |
| 6 | 6 | |
| 7 | −[-b31b1b?logo=latex&logoColor=white)](paper/main.pdf) | |
| 7 | +[-b31b1b?logo=latex&logoColor=white)](paper/main.pdf) | |
| 8 | 8 | [](requirements.txt) |
| 9 | 9 | [](data/raw/README.md) |
| 10 | 10 | [](src/wp11/models.py) |
@@ -15,13 +15,19 @@ and Estimation Methods for the Quebec Housing Market, 2021–2026* | ||
| 15 | 15 | > **TL;DR** — A controlled horse race of **20 hedonic models** on 514,212 Quebec sales |
| 16 | 16 | > (2021–2026) with assessor-grade structural attributes: 6 functional forms × a time-FE |
| 17 | 17 | > ladder × a spatial-FE ladder × 6 estimation methods, all scored on the **same |
| 18 | −> price-level scoreboard** (Duan smearing / Box–Cox inversion) under **two holdouts** | |
| 19 | −> (random 80/20 and forward-in-time). Functional form is second-order (±2 pp of MdAPE); | |
| 20 | −> spatial controls are first-order (~10 pp) but overfit at ~1 km granularity; **gradient | |
| 21 | −> boosting wins under random validation** (MdAPE 14.4% vs 16.5% for the best linear | |
| 22 | −> model) — but under the forward-in-time split *every* model degrades and the ML | |
| 23 | −> advantage **reverses** (splines 19.1% vs boosting 21.2%, identical R²_ln): random | |
| 24 | −> cross-validation is the wrong experiment for valuation models. | |
| 18 | +> price-level scoreboard** (one retransformation rule for every model) under **two | |
| 19 | +> holdouts** (random 80/20 and forward-in-time), with municipality-clustered bootstrap | |
| 20 | +> intervals and Diebold–Mariano-type tests on every comparison. Functional form is | |
| 21 | +> second-order (1.5 pp of MdAPE); spatial controls are first-order (~10 pp), and a ~1 km | |
| 22 | +> grid overfits when used alone but becomes the best linear specification once nested in | |
| 23 | +> municipalities; **gradient boosting wins under random validation** (14.4% vs 17.6% for | |
| 24 | +> the best linear model, −3.2 pp [−4.7, −1.9]), a gain that survives parcel- and | |
| 25 | +> building-grouped holdouts. Under the forward-in-time split (train < 2025, test 2025–26) | |
| 26 | +> every model degrades and the gap shrinks to 0.5 pp and to insignificance — but the | |
| 27 | +> decomposition shows this is a *level* (staleness) effect: re-levelled, boosting still | |
| 28 | +> leads by 2.9 pp. Random cross-validation hides the staleness cost; it does not reverse | |
| 29 | +> the ranking (the reversal reported in v1.0 was an artefact of an asymmetric | |
| 30 | +> retransformation, corrected in v1.1). | |
| 25 | 31 | |
| 26 | 32 | --- |
| 27 | 33 | |
@@ -29,8 +35,8 @@ and Estimation Methods for the Quebec Housing Market, 2021–2026* | ||
| 29 | 35 | |
| 30 | 36 | | Item | Value | |
| 31 | 37 | |---|---| |
| 32 | −| Version | 1.0 (August 2026) | | |
| 33 | −| SSRN | [7626698](https://ssrn.com/abstract=7626698) — submitted 2026-10-17 (preliminary upload) | | |
| 38 | +| Version | **1.1 (October 2026)** — revised 2026-10-17 by the editorial-board review (see `docs/`); v1.0 = August 2026 | | |
| 39 | +| SSRN | [7626698](https://ssrn.com/abstract=7626698) — v1.0 uploaded 2026-10-17; v1.1 PDF to be uploaded as a revision | | |
| 34 | 40 | | Journal | not yet submitted | |
| 35 | 41 | | Code & data | reproducible from `scripts/` (see Quick start); raw parquet snapshot not redistributed | |
| 36 | 42 | |
@@ -77,23 +83,35 @@ and accuracy by market segment. | ||
| 77 | 83 | |
| 78 | 84 | ## 🏆 Headline results |
| 79 | 85 | |
| 86 | +All MdAPE in %, median retransformation rule for every model (v1.1 scoreboard). | |
| 87 | + | |
| 80 | 88 | | Object | Random 80/20 holdout | Forward-in-time holdout | |
| 81 | 89 | |---|---|---| |
| 82 | −| Functional-form range (A1–A6), MdAPE | 16.5 % (splines) – 18.6 % (Box–Cox) | 19.1 % – 21.0 % | | |
| 83 | −| Data-driven Box–Cox exponent | λ̂ = 0.25, buys nothing out of sample | — | | |
| 84 | −| Dropping spatial FE (C1 vs C2) | 27.9 % vs 18.1 % (+10 pp) | 26.5 % vs 20.5 % | | |
| 85 | −| ~1.1 km grid FE (C4) | 19.4 % — **overfits** vs 17.5 % at ~5.5 km | 22.1 % | | |
| 86 | −| Dropping time FE (B1 vs B3) | 21.1 % vs 18.1 % | 25.4 % vs 20.5 % | | |
| 87 | −| Gradient boosting (D4) | **14.4 %** (−13 % vs best linear 16.5 %) | 21.2 % | | |
| 88 | −| Random forest (D3) | 14.6 % | 21.3 % | | |
| 89 | −| Boosting without coordinates (D5) | 23.2 % | 26.2 % | | |
| 90 | −| Semi-log + splines (A6) | 16.5 % | **19.1 %** — beats boosting, same R²_ln (0.52) | | |
| 91 | −| Implied monthly indices across forms | agree within a few index points | | | |
| 92 | −| Boosted implicit age / area profiles | track quadratic OLS closely | | | |
| 93 | − | |
| 94 | −Practical synthesis: a semi-log with splines, quarter effects and spatial FE matched to | |
| 95 | −market thickness is within two points of the frontier in deployment conditions — | |
| 96 | −transparent, auditable, fast. Validate against the future, not a shuffle of the past. | |
| 90 | +| Functional-form range (A1–A6) | 17.6 (splines) – 19.2 (quadratics) | 20.4 (linear) – 23.3 | | |
| 91 | +| Splines vs. semi-log | −1.4 pp [−1.8, −1.1] | −1.4 pp [−2.3, −0.8] | | |
| 92 | +| Data-driven Box–Cox exponent | λ̂ = 0.25 (0.35 on a fine grid), −0.5 pp vs. semi-log, worse on MAPE | — | | |
| 93 | +| Dropping spatial FE (C1 vs C2) | 28.8 vs 19.2 (+9.6 pp) | 29.0 vs 23.3 | | |
| 94 | +| ~5.5 km grid vs. municipality FE (C3 vs C2) | 18.7 vs 19.2 — **not significant** (−0.45 [−1.07, +0.37]) | 24.3 vs 23.3 | | |
| 95 | +| ~1.1 km grid alone (C4) | 21.0 — overfits (+1.8 pp [+1.2, +2.3]) | 25.3 | | |
| 96 | +| ~1.1 km grid **nested in municipalities** (C4′) | **17.3** — best linear specification | 21.6 | | |
| 97 | +| Dropping time FE (B1 vs B3) | 22.0 vs 19.2 | 29.3 vs 23.3 | | |
| 98 | +| Gradient boosting (D4) vs. best linear (A6) | **14.4** vs 17.6, −3.2 pp [−4.7, −1.9], DM t = −3.6 | 21.2 vs 21.7, −0.5 pp [−1.7, +0.6], n.s. | | |
| 99 | +| Random forest (D3) | 14.6 | 21.3 | | |
| 100 | +| Boosting without coordinates (D5) | 23.2 | 26.2 | | |
| 101 | +| Parcel- / building-grouped holdout, D4 vs A6 | 14.5 vs 17.6 / 14.6 vs 17.8 (gap unchanged) | — | | |
| 102 | +| Staleness cost (forward − same-period random) | — | D4 +7.5 pp, A6 +4.7, A1 +3.3 | | |
| 103 | +| Median log level error, forward split | — | D4 +0.18, A6 +0.16, A1 +0.10 | | |
| 104 | +| Re-levelled forward MdAPE | — | **D4 13.9 vs A6 16.8** (gap 2.9 ≈ random 3.5) | | |
| 105 | +| Boosting lead over splines by test quarter | — | 1.5 pp (2025Q1) → 0.0 (2026Q3) | | |
| 106 | +| Monthly indices, four linear forms | agree within 2.5 index points | | | |
| 107 | +| Boosted imputation index, July 2026 | 160.5 vs 168.6–171.0 for the linear forms | | | |
| 108 | +| Boosted age profile vs. quadratic OLS | same shape, 0.10–0.13 log points flatter from age 20 | | | |
| 109 | + | |
| 110 | +Practical synthesis: a semi-log with splines, quarter effects and spatial fixed effects | |
| 111 | +nested from municipality down to a fine grid is within three points of the frontier under | |
| 112 | +random validation and indistinguishable from it in deployment. Supply the price level from | |
| 113 | +an index or a frequent refit, spend the flexibility budget on the spatial surface, and | |
| 114 | +validate against the future, not a shuffle of the past. | |
| 97 | 115 | |
| 98 | 116 | ## 🗂 Repository layout |
| 99 | 117 | |
@@ -148,8 +166,9 @@ peak RAM ≈ 8 GB. | ||
| 148 | 166 | | 01 | `01_build_sample.py` | residential use codes, roll match ≤ 50 m / score ≥ 150, price ≥ $50k, floor area 20–2,000 m², known year built, 1/99 % trims within sale year; builds grid cells | `data/processed/`, `results/reproduced/sample_counts.csv`, `summary_stats.csv` | |
| 149 | 167 | | 02 | `02_horserace.py` | fits the 20 models on each split, retransforms predictions to price levels, scores MdAPE/MAPE/RMSE_ln/R²_ln; Box–Cox profile likelihood | `horserace_random.csv`, `horserace_temporal.csv`, `boxcox.csv` | |
| 150 | 168 | | 03 | `03_extensions.py` | constant-quality monthly indices by form, implicit ln-price profiles (quadratic OLS vs boosting), learning curves, accuracy by segment | `index.csv`, `profiles.csv`, `learning.csv`, `segments.csv` | |
| 151 | −| 04 | `04_make_figures.py` | the 9 figures | `figures/fig_*.png` | | |
| 152 | −| 05 | `05_make_tables.py` | the 7 LaTeX tables | `results/tables/*.tex` | | |
| 169 | +| 04 | `04_make_figures.py` | the 10 figures | `figures/fig_*.png` | | |
| 170 | +| 05 | `05_make_tables.py` | the 16 LaTeX tables | `results/tables/*.tex` | | |
| 171 | +| 06 | `06_robustness.py` | cluster-bootstrap CIs + clustered DM tests, same-period and by-quarter decomposition, level re-levelling, leakage decomposition, parcel- and building-grouped races, nested spatial FE, fine Box–Cox grid, boosting hyper-parameter sensitivity (run after 02; ≈ 20 min) | `inference_*.csv`, `pairs.csv`, `same_period.csv`, `by_quarter.csv`, `relevel.csv`, `leakage.csv`, `horserace_group_*.csv`, `nested_fe.csv`, `boxcox_fine.csv`, `hgb_sensitivity.csv` | | |
| 153 | 172 | |
| 154 | 173 | ## 🗃 Data |
| 155 | 174 | |
@@ -161,23 +180,28 @@ physical configuration, use code. Sample cascade (paper §3): residential use co | ||
| 161 | 180 | high-confidence match → price ≥ $50,000 → plausible floor area → known year built → |
| 162 | 181 | 1/99 % trims ⇒ **514,212 sales** (348,253 single-family, 75,734 condominiums, 74,909 |
| 163 | 182 | plexes, 10,349 cottages, 4,881 mobile homes) over 1,115 municipalities, 5,255 cells of |
| 164 | −~5.5 km and 30,548 cells of ~1.1 km. Mean price $462,000 (median $399,000). The raw | |
| 183 | +~5.5 km and 30,548 cells of ~1.1 km. Mean price $440,207 (median $397,375); 86 further dwellings of undetermined class. One fifth of sales are repeat sales of the same parcel and 30% share exact coordinates with another sale (92% of condominiums). The raw | |
| 165 | 184 | parquet (100 MB, transaction microdata) is **not redistributed**. |
| 166 | 185 | |
| 167 | 186 | ## 🔬 Methodology |
| 168 | 187 | |
| 169 | 188 | 1. **One attribute set, one sample** for every model (`src/wp11/sample.py`). |
| 170 | 189 | 2. **Axis A** — six functional forms on a municipality + quarter FE backbone; Box–Cox λ by |
| 171 | − profile likelihood; log models retransformed with Duan smearing, Box–Cox inverted | |
| 172 | − (`src/wp11/models.py`). | |
| 190 | + profile likelihood. Every transformed-scale prediction is inverted with the same | |
| 191 | + *median rule* (plain inversion); Duan smearing is computed for every model and | |
| 192 | + reported as a robustness scoreboard (`src/wp11/models.py`). | |
| 173 | 193 | 3. **Axis B / C** — time-FE ladder (none → month) and spatial-FE ladder (none → ~1.1 km |
| 174 | 194 | grid) on the quadratic semi-log backbone. |
| 175 | 195 | 4. **Axis D** — OLS, cross-validated ridge, random forest, gradient boosting with and |
| 176 | 196 | without coordinates, spatial k-NN comparables, all on the identical attribute set. |
| 177 | 197 | 5. **Two holdouts** — random 80/20 and forward-in-time (train < 2025, test 2025–26, time |
| 178 | − effects carried forward); metrics on price levels, design clustered by municipality. | |
| 198 | + effects carried forward), plus parcel- and building-grouped holdouts; metrics on price | |
| 199 | + levels; municipality-clustered bootstrap intervals and clustered Diebold–Mariano tests | |
| 200 | + (`src/wp11/inference.py`); level/skill decomposition of the forward error. | |
| 179 | 201 | 6. **Extensions** — implied monthly indices, implicit-price profiles, learning curves, |
| 180 | 202 | segment accuracy (`scripts/03_extensions.py`). |
| 203 | +7. **Robustness** — retransformation rule, leakage-free holdouts, nested spatial FE, fine | |
| 204 | + Box–Cox grid, boosting hyper-parameters (`scripts/06_robustness.py`). | |
| 181 | 205 | |
| 182 | 206 | ## 🖼 Figures & tables inventory |
| 183 | 207 | |
@@ -192,10 +216,13 @@ parquet (100 MB, transaction microdata) is **not redistributed**. | ||
| 192 | 216 | | `fig_profiles` | implicit ln-price profiles: quadratic OLS vs gradient boosting | |
| 193 | 217 | | `fig_learning` | learning curves: MdAPE against training-set size | |
| 194 | 218 | | `fig_segments` | MdAPE by market segment (random holdout) | |
| 219 | +| `fig_horizon` | forward-in-time MdAPE by test quarter (distance from the training window) | | |
| 195 | 220 | |
| 196 | 221 | Tables (`results/tables/*.tex`): summary statistics, scoreboard random holdout, |
| 197 | −scoreboard forward-in-time holdout, Box–Cox profile, generalization gap, learning | |
| 198 | −curves, segments. | |
| 222 | +scoreboard forward-in-time holdout, inference (bootstrap CIs + DM tests), targeted pairs, | |
| 223 | +Box–Cox profile, generalization gap, same-period / level decomposition, by-quarter | |
| 224 | +accuracy, learning curves, segments, median vs. Duan retransformation, grouped holdouts, | |
| 225 | +seen/unseen leakage decomposition, nested spatial FE, boosting hyper-parameters. | |
| 199 | 226 | |
| 200 | 227 | ## ⚠️ Limitations |
| 201 | 228 | |
@@ -206,8 +233,13 @@ curves, segments. | ||
| 206 | 233 | - Attributes are those of the assessment roll (no interior quality, renovations or |
| 207 | 234 | listing text); the ML advantage measured here is the value of flexible *spatial* |
| 208 | 235 | learning on that attribute set, not of richer data. |
| 209 | −- Tree ensembles are tuned lightly (fixed hyper-parameters); the ranking is robust to | |
| 210 | − the choices tried but not exhaustively optimised. | |
| 236 | +- Tree ensembles use fixed, conventional hyper-parameters; four materially different | |
| 237 | + configurations (including early stopping on a time-ordered validation set) leave the | |
| 238 | + ranking unchanged (paper §7.5), but no linear model with a continuous spatial surface | |
| 239 | + (kriging, bivariate splines) is estimated as a competitor. | |
| 240 | +- The forward-in-time test covers one regime (the 2025–26 recovery); the level | |
| 241 | + re-levelling uses the test-set median ratio (an oracle upper bound for what a published | |
| 242 | + index would deliver). | |
| 211 | 243 | |
| 212 | 244 | ## 📝 Citation |
| 213 | 245 | |
@@ -222,7 +254,8 @@ curves, segments. | ||
| 222 | 254 | type = {Working Paper}, |
| 223 | 255 | number = {11}, |
| 224 | 256 | year = {2026}, |
| 225 | − month = {August} | |
| 257 | + month = {October}, | |
| 258 | + note = {Version 1.1} | |
| 226 | 259 | } |
| 227 | 260 | ``` |
| 228 | 261 | |
@@ -239,3 +272,10 @@ Université du Québec en Outaouais (UQO), Gatineau, QC. | ||
| 239 | 272 | Language-Model and Vision Features* (now **WP 14**) and *Does the Sales Comparison |
| 240 | 273 | Approach Actually Work?* (now **WP 16**). |
| 241 | 274 | - Cover page, metadata and layout follow `Recherche-UQO/HARMONISATION.md` (2026-10-17). |
| 275 | +- **Revision 2026-10-17 (v1.1)**: full editorial-board review. Scientific report in | |
| 276 | + `docs/REVIEW-REPORT.md`, audit trail (every changed number, old → new) in | |
| 277 | + `docs/CHANGELOG-REVISION.md`; pre-revision PDF kept as `docs/main_pre-revision-20261017.pdf` | |
| 278 | + (git tag `pre-revision-20261017`). Main correction: v1.0 applied Duan smearing to the | |
| 279 | + linear log models but not to the tree ensembles; under a uniform rule the forward-in-time | |
| 280 | + "reversal" disappears (the gap shrinks to 0.5 pp, n.s.) and the paper now decomposes the | |
| 281 | + forward error into a common level (staleness) component and intact relative skill. | |
added
docs/CHANGELOG-REVISION.md
+165 −0
@@ -0,0 +1,165 @@ | ||
| 1 | +# Changelog — révision scientifique complète (editorial board, 2026-10-17) | |
| 2 | + | |
| 3 | +Papier : **WP 11 — Half a Million Prices, Twenty Models** (v1.0, August 2026 → **v1.1, October 2026**). | |
| 4 | +État de référence : tag git `pre-revision-20261017`, PDF `docs/main_pre-revision-20261017.pdf` (23 pages). | |
| 5 | +Rapport scientifique associé : `docs/REVIEW-REPORT.md`. | |
| 6 | + | |
| 7 | +## 1. Corrections majeures (où / avant / après / pourquoi / preuve) | |
| 8 | + | |
| 9 | +### 1.1 Règle de retransformation asymétrique → scoreboard uniforme (correction centrale) | |
| 10 | +- **Où** : `src/wp11/models.py` (`fit_predict`, `run_horserace`), §4.3 Methodology, §5, §7.1, abstract, intro, conclusion. | |
| 11 | +- **Avant** : les modèles linéaires en log (A2, A3, A5, A6, B*, C*, D1, D2) étaient multipliés par le facteur de | |
| 12 | + smearing de Duan (ŝ ≈ 1.06–1.08) ; les ensembles d'arbres (D3, D4, D5) et le k-NN (D6) ne l'étaient pas | |
| 13 | + (`np.exp(pred)` nu). Les métriques log (RMSE_ln, R²_ln) étaient calculées sur la prédiction smearée pour une | |
| 14 | + famille et non pour l'autre. | |
| 15 | +- **Après** : règle « médiane » (inversion directe de la prédiction transformée, éq. 10) appliquée **à tous** les | |
| 16 | + modèles pour le tableau principal ; règle « moyenne » (Duan, éq. 11, généralisée au Box–Cox par moyenne sur | |
| 17 | + 1 000 résidus) calculée pour tous et rapportée en robustesse (Table 12). | |
| 18 | +- **Pourquoi** : la comparaison v1.0 opposait un A6 smearé (19.1 %) à un D4 non smearé (21.2 %) dans le split | |
| 19 | + temporel — le « renversement » annoncé en titre de la v1.0 était un artefact : (i) résidus log asymétriques | |
| 20 | + à gauche (skewness −1.4 à −1.8, médiane +0.06) donc le smearing abaisse par coïncidence la MdAPE de tout modèle | |
| 21 | + log ; (ii) marché haussier en 2025-26 : tout facteur > 1 compense une partie de la staleness. Appliquée | |
| 22 | + uniformément, aucune des deux règles ne renverse le classement (médiane : A6 21.7 vs D4 21.2 ; moyenne : | |
| 23 | + 19.1 vs 18.4). | |
| 24 | +- **Preuve** : `results/reproduced/horserace_{random,temporal}.csv` (colonnes `mdape` vs `mdape_mean`, `smear`), | |
| 25 | + `results/tables/retransformation.tex`, médianes de résidus vérifiées sur `data/processed/predictions_*.parquet`. | |
| 26 | +- **Chiffres modifiés (ancien → nouveau, MdAPE %)** — random : A1 18.2→18.2, A2 18.2→19.0, A3 17.0→18.0, A4 18.6→18.6, | |
| 27 | + A5 18.1→19.2, A6 16.5→17.6, B1 21.1→22.0, B2 18.1→19.1, B4 18.3→19.3, C1 27.9→28.8, C3 17.5→18.7, C4 19.4→21.0, | |
| 28 | + D2 16.7→17.7 ; D3/D4/D5/D6 inchangés (14.6/14.4/23.2/21.2). Forward : A1 20.4→20.4, A2 20.6→23.2, A3 19.2→21.8, | |
| 29 | + A4 21.0→21.0, A5 20.5→23.3, A6 19.1→21.7, B1 25.4→29.3, B2 21.0→23.7, B4 20.3→22.9, C1 26.5→29.0, C3 21.3→24.3, | |
| 30 | + C4 22.1→25.3, D2 19.5→22.3 ; D3/D4/D5/D6 inchangés (21.3/21.2/26.2/25.6). R²_ln des modèles log : +0.01 à +0.04 | |
| 31 | + (random), −0.03 à −0.04 (forward). | |
| 32 | +- **Conséquence narrative** : « the ranking reverses » (v1.0) → « the gap shrinks from 3.2 to 0.5 points and loses | |
| 33 | + significance ; relative skill transfers intact, the level does not » (v1.1). Abstract, §1, §5.5, §8, §9 réécrits. | |
| 34 | + | |
| 35 | +### 1.2 Inférence statistique ajoutée (absente en v1.0) | |
| 36 | +- **Avant** : aucun intervalle, aucun test ; le README affirmait « design clustered by municipality » sans aucune | |
| 37 | + implémentation. | |
| 38 | +- **Après** : `src/wp11/inference.py` — bootstrap par grappes (municipalités, B = 500) pour la MdAPE de chaque | |
| 39 | + modèle et pour les différences ; test de type Diebold–Mariano / Giacomini–White à erreurs-types groupées sur les | |
| 40 | + pertes APE et log² (éq. 13). Tables 4 (tous les modèles vs A6) et 5 (13 paires ciblées). | |
| 41 | +- **Résultats clés** : D4 vs A6 random −3.2 [−4.7, −1.9] (t = −3.6) ; forward −0.5 [−1.7, +0.6] (t = −1.6, p = 0.11) ; | |
| 42 | + C3 vs C2 random −0.45 [−1.07, +0.37] (n.s.) ; C4 vs C2 +1.8 [+1.2, +2.3] ; B4 vs B3 +0.19 [+0.01, +0.37] ; | |
| 43 | + D2 vs A6 +0.06 [−0.02, +0.16] (n.s.). | |
| 44 | +- **Conséquence** : la phrase « the 5.5 km grid beats municipality effects » est ramenée à « nominally better, | |
| 45 | + within bootstrap noise » ; « month effects indistinguishable from quarter » précisé (légèrement pires, significatif). | |
| 46 | + | |
| 47 | +### 1.3 Décomposition du « generalization gap » (nouveau) | |
| 48 | +- Comparaison à période fixe (modèles random évalués sur les 31 465 ventes 2025-26 de leur test) : D4 13.7 → 21.2 | |
| 49 | + (coût de staleness 7.5), A6 17.0 → 21.7 (4.7), A1 17.1 → 20.4 (3.3). Biais de niveau médian forward : D4 +0.183, | |
| 50 | + A6 +0.161, A1 +0.102. MdAPE re-nivelée forward : D4 13.9 vs A6 16.8 (écart 2.9 ≈ écart random 3.5). | |
| 51 | + Par trimestre : avance D4 sur A6 de 1.5 pt (2025Q1) → 0 (2026Q3). | |
| 52 | +- Fichiers : `same_period.csv`, `relevel.csv`, `by_quarter.csv` ; Tables 8–9, Figure 6 (nouvelle). | |
| 53 | + | |
| 54 | +### 1.4 Fuite d'information dans le split aléatoire (nouveau) | |
| 55 | +- Faits : 20.6 % des ventes sont des reventes d'une même parcelle ; 30.3 % partagent des coordonnées exactes avec | |
| 56 | + une autre vente (91.6 % des condos). Colonnes `parcel`, `coord` ajoutées à `sample.py` (reconstruction du | |
| 57 | + parquet d'analyse, 514 212 ventes identiques). | |
| 58 | +- Splits groupés (`split("group_parcel")`, `split("group_coord")`) : course complète. Parcelle : D4 14.5 / A6 17.6 | |
| 59 | + (≈ inchangé). Bâtiment : D4 14.6 / A6 17.8 (écart 3.2 identique) ; seul D6 se dégrade (21.2 → 22.3). | |
| 60 | + Décomposition vu/non vu : D4 12.0 vs 15.3 (coord.), A6 17.8 vs 17.6 ; condos D4 8.9 vs 10.2. | |
| 61 | +- Tables 13–14 ; §4.4, §7.2. | |
| 62 | + | |
| 63 | +### 1.5 Effets spatiaux fins : « seventeen K sales » et repli arbitraire | |
| 64 | +- **Avant** (§5.3) : « its cells average seventeen K sales each » — faux : 514 212 / 30 548 = 16.8 ventes par cellule | |
| 65 | + (médiane 3). Corrigé. Cellules non vues (2.5 % des ventes test) tarifées au niveau de la cellule de référence : | |
| 66 | + désormais explicité. | |
| 67 | +- **Nouveau** : C3′ (muni + grille 5.5 km) et C4′ (muni + grille 1.1 km) — solution de norme minimale (ridge α→0) | |
| 68 | + ≈ pooling partiel vers la municipalité. Random : C4′ 17.3 % (meilleure spécification linéaire du papier), | |
| 69 | + C3′ 17.7 % ; forward : 21.6 / 21.5 vs C2 23.3. Conclusion de l'axe C reformulée : « hierarchy, not coarseness ». | |
| 70 | + Table 15 ; `nested_fe.csv`. | |
| 71 | + | |
| 72 | +### 1.6 Box–Cox : grille fine | |
| 73 | +- Grille 0.05 sur [−0.25, 0.75] : λ̂ = 0.35 (profil plat 0.25–0.55 à la tolérance du solveur itératif) ; | |
| 74 | + MdAPE random 18.4 % (vs 18.6 % à 0.25). `boxcox_fine.csv`. Texte §5.1 et §7.4. | |
| 75 | + | |
| 76 | +### 1.7 Hyper-paramètres du boosting | |
| 77 | +- Quatre configurations alternatives (shallow, deep, régularisée, early stopping sur les 10 % derniers mois | |
| 78 | + d'entraînement) sous les deux splits. `hgb_sensitivity.csv`, Table 16, §7.5. Random 14.3–14.7 % (baseline 14.4), forward 21.2–21.6 % (baseline 21.2) ; early stopping : 700 / 1 000 itérations, reproduit le baseline à 0.1 pt. | |
| 79 | + | |
| 80 | +### 1.8 Statistiques descriptives incohérentes | |
| 81 | +- **Avant** (§3.2, README) : « Prices average $462,000 (median $399,000) ». **Table 1** : 440 207 / 397 375. | |
| 82 | + **Après** : texte aligné sur la table ; ajout des 86 logements de classe indéterminée (la somme des classes v1.0 | |
| 83 | + faisait 514 126 ≠ 514 212) ; répartition par année ; nettoyage des lots > P99.5 explicité (était silencieux | |
| 84 | + dans `sample.py`) ; bornes âge/étages/logements explicitées. | |
| 85 | + | |
| 86 | +### 1.9 Indices et profils : affirmations adoucies | |
| 87 | +- **Avant** : « all five [indices] agree to within a few index points » ; « curves sit within a tenth of a log | |
| 88 | + point ». **Après** : les quatre formes linéaires s'accordent à ≤ 2.5 points ; l'indice boosting finit 9 points | |
| 89 | + plus bas (160.5 vs 168.6–171.0 ; écart max 10.9) ; profil d'âge du boosting uniformément plus plat de 0.10–0.13 | |
| 90 | + log-point à partir de 20 ans (−0.20 vs −0.31 à 40 ans), surface : ≤ 0.05. Chiffres vérifiés dans | |
| 91 | + `index.csv`, `profiles.csv`. | |
| 92 | +- Learning curves recalculées (règle médiane) : OLS 19.1 → 19.2 (v1.0 : 18.4 → 18.1) ; GB 17.6 → 14.5 ; écart | |
| 93 | + 1.6 → 4.7 pts (v1.0 : < 1 → 3.6). Segments : condo 18.2 vs 9.1 (v1.0 OLS 20.4), grandes villes 17.7 vs 11.9, | |
| 94 | + petites municipalités 24.8 vs 18.7 (v1.0 23.3), chalets 34.3 vs 32.1 (v1.0 33.9). | |
| 95 | + | |
| 96 | +### 1.10 Méthodologie formalisée | |
| 97 | +- §4 réécrit : équations (1)–(13) — fonction hédonique générale, six formes A1–A6, profil de vraisemblance Box–Cox | |
| 98 | + (avec jacobien), ridge, règle k-NN, règles médiane/Duan, métriques, test DM groupé. Documentation du traitement | |
| 99 | + des catégories non vues, du carry-forward et de son analogue pour les arbres (correction de la phrase « clamped | |
| 100 | + month counter » : rien n'est écrêté dans le code ; les arbres sont constants par morceaux). | |
| 101 | + | |
| 102 | +### 1.11 Autres corrections éditoriales | |
| 103 | +- « 13 % improvement » → « 18 % » (14.4 vs 17.6) ; « 13–21 % » → « 18–25 % » ; intro « 27.9 % versus 17.5 % » | |
| 104 | + vs README « vs 18.1 % » harmonisé (28.8 vs 19.2, référence = backbone C2). | |
| 105 | +- Hiérarchie de la discussion : liste à puces → prose (règle de style du protocole). | |
| 106 | +- Mots-clés harmonisés au vocabulaire commun (« hedonic price function », « forward-in-time holdout », | |
| 107 | + « automated valuation model »). | |
| 108 | +- `\WPversion` 1.0 → 1.1 ; `\WPdate` August 2026 → October 2026 ; page titre canonique intacte ; macro | |
| 109 | + `\companionpaper` conservée (main.tex / main_anon.tex). | |
| 110 | + | |
| 111 | +## 2. Références | |
| 112 | + | |
| 113 | +### Vérifiées (Crossref `api.crossref.org/works?query.bibliographic=…`, 2026-10-17) et corrigées | |
| 114 | +Toutes les entrées conservées de la v1.0 (31) ont été retrouvées sur Crossref et dotées de leur DOI. Corrections : | |
| 115 | +- `box1964analysis` : pages 211–252 → **211–243** (244–252 = discussion). | |
| 116 | +- `bogin2020house` : number 1 → **1–2** ; DOI 10.1007/s11146-019-09712-0. | |
| 117 | +- `silver2018house` : l'article EURONA 2018 n'est pas indexé ; remplacé par la version vérifiée **IMF Working Paper | |
| 118 | + 16/213 (2016)**, DOI 10.5089/9781475552249.001, même titre (ordre des mots corrigé). | |
| 119 | +- `ke2017lightgbm` : @article → **@inproceedings** (NIPS 2017, non indexé Crossref ; actes Curran Associates). | |
| 120 | +- `malpezzi2003hedonic` : DOI 10.1002/9780470690680.ch5 ; `anselin1988spatial` : DOI 10.1007/978-94-015-7799-1. | |
| 121 | + | |
| 122 | +### Retirées (non citées dans le texte et bibliographiquement défectueuses) | |
| 123 | +- `knight2003listing` (volume/pages vides ; en réalité chapitre Springer 2008, pp. 39–54). | |
| 124 | +- `diewert2004hedonic` (« Mimeo » en champ journal ; non indexé). | |
| 125 | + | |
| 126 | +### Ajoutées (27, toutes vérifiées sur Crossref, DOI dans le .bib) | |
| 127 | +hill2018geospatial (RIW 64(4) 737–756) · pace2020residuals (JREFE 60 170–180) · lorenz2023interpretable | |
| 128 | +(REE 51(5) 1178–1208) · diewert2016tokyo (RSUE 60 300–315) · diewert2015decomposition (Econometric Reviews 34 | |
| 129 | +106–126) · diebold1995comparing (JBES 13(3) 253–263) · giacomini2006tests (Econometrica 74(6) 1545–1578) · | |
| 130 | +bergmeir2012crossvalidation (Information Sciences 191 192–213) · roberts2017crossvalidation (Ecography 40(8) | |
| 131 | +913–929) · kuminoff2010which (JEEM 60(3) 145–160) · bishop2020best (REEP 14(2) 260–281) · bourassa2007spatial | |
| 132 | +(JREFE 35(2) 143–160) · bourassa2003submarkets (JHE 12(1) 12–28) · goodman2003segmentation (JHE 12(3) 181–201) · | |
| 133 | +zurada2011comparison (JRER 33(3) 349–388) · antipov2012mass (ESWA 39(2) 1772–1778) · perezrave2019machine | |
| 134 | +(J. Property Research 36(1) 59–96) · mccluskey2013prediction (JPR 30(4) 239–265) · schulz2014automated (JPR 31(2) | |
| 135 | +131–153) · fik2003modeling (REE 31(4) 623–646) · clapp2003semiparametric (JREFE 27(3) 303–320) · | |
| 136 | +pace1998spatiotemporal (JREFE 17(1) 15–33) · dube2013pooled (LSRS 6(1) 1–18) · hill2009boom (JHE 18(3) 193–205) · | |
| 137 | +manning2001estimating (J. Health Econ. 20(4) 461–494) · thibodeau2003marking (REE 31(1) 1–22) · | |
| 138 | +khoshnoud2023evolution (JREL 31(1) 1–47). | |
| 139 | +Total : 33 → **58** entrées (31 conservées + 27 ajoutées), toutes citées, toutes vérifiées. | |
| 140 | + | |
| 141 | +## 3. Réanalyses exécutées (laptop, Apple Silicon 18 cœurs, Python 3.14 / scikit-learn 1.6.1) | |
| 142 | + | |
| 143 | +| Script | Contenu | Durée | Sorties | | |
| 144 | +|---|---|---|---| | |
| 145 | +| `01_build_sample.py` | reconstruction de l'échantillon (+ clés `parcel`, `coord`) — 514 212 ventes identiques | 2 s | `data/processed/analysis.parquet` | | |
| 146 | +| `02_horserace.py` | 20 modèles × 2 splits, règles médiane + Duan, prédictions sauvegardées | 3 min 28 s | `horserace_*.csv`, `boxcox.csv`, `predictions_*.parquet` (non commités) | | |
| 147 | +| `03_extensions.py` | indices, profils, learning curves, segments (règle médiane) | 4 min 18 s | `index.csv`, `profiles.csv`, `learning.csv`, `segments.csv` | | |
| 148 | +| `06_robustness.py` (nouveau) | bootstrap + DM, même période, par trimestre, fuite, re-nivellement, paires, splits groupés (2 courses complètes), FE emboîtés, Box–Cox fin, sensibilité HGB | 16 min 16 s | `inference_*.csv`, `same_period.csv`, `by_quarter.csv`, `leakage.csv`, `relevel.csv`, `pairs.csv`, `horserace_group_*.csv`, `nested_fe.csv`, `boxcox_fine.csv`, `hgb_sensitivity.csv` | | |
| 149 | +| `04_make_figures.py` | 10 figures (+ `fig_horizon.png`) | < 1 min | `figures/` | | |
| 150 | +| `05_make_tables.py` | 16 tables LaTeX (9 nouvelles) | < 1 s | `results/tables/` | | |
| 151 | + | |
| 152 | +Tous les nombres du texte proviennent de ces sorties ; aucune table n'est tapée à la main. | |
| 153 | + | |
| 154 | +## 4. Éléments non modifiés / analyses recommandées non exécutées | |
| 155 | +- Modèle linéaire à surface spatiale (krigeage des résidus, splines bivariées en lat/lng, effets hiérarchiques | |
| 156 | + bayésiens) : non estimé (hors cadre « 20 modèles ») — recommandé pour fermer l'écart linéaire/boosting par l'autre | |
| 157 | + côté. | |
| 158 | +- Holdout spatialement bloqué (cellules entières en test) : non exécuté (change la question en extrapolation | |
| 159 | + spatiale ; les FE spatiaux y sont par construction inopérants). | |
| 160 | +- Re-nivellement par un indice **publié** (hors échantillon, non oracle) : non exécuté (aucun indice externe | |
| 161 | + chargé ; le re-nivellement présenté utilise le ratio médian du test, borne supérieure). | |
| 162 | +- Variante « médiane calibrée » (exp(ẑ + médiane des résidus d'entraînement)) : discutée, non tabulée. | |
| 163 | +- Fenêtres temporelles alternatives (p. ex. train < 2024, test 2024) : non exécutées — limite déclarée §8.4. | |
| 164 | +- Comparaison avec LightGBM / XGBoost natifs ou réseaux de neurones : hors périmètre. | |
| 165 | +- La règle de nettoyage des lots > P99.5 → 0 (héritée) est documentée mais conservée pour préserver l'échantillon. | |
added
docs/REVIEW-REPORT.md
+118 −0
@@ -0,0 +1,118 @@ | ||
| 1 | +# Rapport de l'editorial board — WP 11 « Half a Million Prices, Twenty Models » (2026-10-17) | |
| 2 | + | |
| 3 | +Révision v1.0 (August 2026, 23 p.) → v1.1 (October 2026). Journal d'audit détaillé : `docs/CHANGELOG-REVISION.md`. | |
| 4 | +Comité : économie immobilière, économétrie appliquée, économétrie spatiale, évaluation foncière, apprentissage | |
| 5 | +automatique, édition scientifique. Revue cible : *Journal of Housing Economics* (repli JRER / IJF). | |
| 6 | + | |
| 7 | +## 1. Diagnostic général | |
| 8 | + | |
| 9 | +Le papier pose une question nette et utile — quels choix de spécification hédonique comptent réellement pour la | |
| 10 | +précision hors échantillon — et y répond par un dispositif expérimental propre (un jeu d'attributs, quatre axes, un | |
| 11 | +seul scoreboard, deux holdouts) sur un échantillon rare par sa taille et la qualité des descripteurs (rôle | |
| 12 | +d'évaluation). La contribution est réelle et conservée. Trois faiblesses structurelles de la v1.0 ont été | |
| 13 | +identifiées et corrigées : | |
| 14 | + | |
| 15 | +1. **Le résultat phare était un artefact.** Les modèles linéaires en log étaient retransformés par smearing de Duan | |
| 16 | + et les ensembles d'arbres non. Dans le split temporel, le smearing (facteur ≈ 1.06) compense une partie de la | |
| 17 | + staleness du niveau dans un marché haussier ; c'est ce qui produisait « A6 19.1 % vs D4 21.2 % » et le | |
| 18 | + « renversement » affiché en abstract. Sous une règle uniforme, le boosting reste devant (21.2 vs 21.7, écart non | |
| 19 | + significatif). Correction intégrale (code, tables, texte) ; la v1.1 le dit explicitement. | |
| 20 | +2. **Aucune inférence.** Des différences de 0.2 à 0.6 point étaient interprétées comme des résultats. Ajout d'un | |
| 21 | + bootstrap par grappes (municipalités) et de tests Diebold–Mariano/Giacomini–White groupés sur toutes les | |
| 22 | + comparaisons. Plusieurs affirmations tombent (grille 5.5 km > municipalités ; mois ≈ trimestre) ou se précisent. | |
| 23 | +3. **Mécanisme du « generalization gap » non identifié.** La v1.0 confondait difficulté de la période test et | |
| 24 | + staleness du modèle. Décomposition ajoutée (même période, biais de niveau, re-nivellement, horizon par | |
| 25 | + trimestre) : la compétence relative des ensembles transfère intacte (écart re-nivelé 2.9 pts ≈ 3.5 en random), | |
| 26 | + c'est le niveau qui ne transfère pas, un peu plus pour les arbres (feuille terminale en t). Ce résultat est plus | |
| 27 | + faible que le « renversement » mais plus utile et défendable. | |
| 28 | + | |
| 29 | +## 2. Diagnostic par section | |
| 30 | + | |
| 31 | +| Section | Forces | Faiblesses / erreurs trouvées | Action | | |
| 32 | +|---|---|---|---| | |
| 33 | +| Abstract | clair, chiffré | chiffres issus du scoreboard asymétrique ; « reverses », « identical R² » faux ; trop long pour la page 2 (débordait sur une page blanche) | réécrit, 4 leçons reformulées, mention de la correction | | |
| 34 | +| 1 Introduction | bonne mise en situation Rosen → ML | « 13 % improvement » (vrai : 18 %) ; « 27.9 vs 17.5 » (comparait C1 à C3 au lieu du backbone) ; aucune mention de l'inférence ni des fuites | réécrit ; renvoi à la nouvelle §7 | | |
| 35 | +| 2 Literature | couvre les trois courants | mince (33 réf., 29 citées) ; manquaient Hill–Scholz, Pace–Hayunga, Lorenz et al., Diewert–Shimizu, Kuminoff et al., DM/GW, Bergmeir–Benítez, Roberts et al., Dubé–Legros ; deux entrées non citées et défectueuses | +27 réf. vérifiées, −2 retirées ; Mayer et al. 2019 identifié comme antécédent direct (updating) | | |
| 36 | +| 3 Data | cascade d'échantillon transparente | moyenne/médiane des prix fausses dans le texte (462k/399k vs 440k/397k) ; 86 ventes « other » omises ; nettoyage des lots > P99.5 non documenté ; bornes âge/étages non dites | corrigé ; répartition annuelle ; repeat sales et coordonnées partagées quantifiés | | |
| 37 | +| 4 Methodology | design clair | aucune équation ; Duan non écrit ; inversion Box–Cox sans discussion du biais ; « clamped month counter » inexact (rien n'est écrêté ; arbres constants par morceaux) ; catégories non vues → référence arbitraire non dit ; hyper-paramètres « a priori » sans analyse | 13 équations ; règles médiane/moyenne ; carry-forward ; holdouts groupés ; inférence ; décomposition niveau/skill | | |
| 38 | +| 5 Results | lecture par axe efficace | « seventeen K sales » (17) ; ordre A sous split temporel non discuté (A1 gagne par coïncidence de biais) ; différences non testées | réécrit avec IC/tests ; §5.5 refondue (décomposition) | | |
| 39 | +| 6 Extensions | objets économiques pertinents | « all five agree within a few points » (indice GB −9 pts) ; « within a tenth of a log point » (0.10–0.13 systématique, profil plus plat) ; learning/segments chiffrés sous scoreboard asymétrique | affirmations ramenées aux chiffres ; mécanismes de l'écart d'indice discutés | | |
| 40 | +| 7 Robustness | — (n'existait pas) | — | nouvelle section : retransformation, fuites, FE emboîtés, Box–Cox fin, hyper-paramètres HGB | | |
| 41 | +| 8 Discussion | hiérarchie utile | liste à puces ; « the machines lose their edge » (faux) ; « 3–7 points » sans mécanisme | prose ; hiérarchie révisée ; mécanisme niveau vs skill ; implications réécrites | | |
| 42 | +| 9 Conclusion | synthèse pratique | reprenait le renversement ; « within two points of the frontier in deployment » | réécrite | | |
| 43 | + | |
| 44 | +## 3. Méthodologie — verdict motivé (§3 du master prompt) | |
| 45 | + | |
| 46 | +- **Spécification justifiée** : oui, le design par axes est la force du papier ; la v1.1 le formalise (éq. 1–9). | |
| 47 | +- **Hypothèses d'estimation explicites** : désormais oui (OLS via ridge α = 10⁻⁶, solution de norme minimale ; | |
| 48 | + encodage one-hot avec référence ; splines : 6 nœuds uniformes, 8 fonctions de base ; RF/HGB : paramètres listés). | |
| 49 | +- **Variables définies** : oui (notation unifiée §4.1 ; bornes et nettoyages §3.2). | |
| 50 | +- **Effets fixes appropriés** : oui, avec la nuance majeure trouvée en révision : les FE fins doivent être emboîtés | |
| 51 | + (C4′ 17.3 % = meilleure spécification linéaire ; C4 seule 21.0 %). Le repli « cellule de référence » pour les | |
| 52 | + cellules non vues est désormais documenté et corrigé par l'emboîtement. | |
| 53 | +- **Dépendance spatiale/temporelle** : traitée par l'inférence groupée (municipalités) et par les holdouts | |
| 54 | + temporel, par parcelle et par bâtiment. Limite : pas de holdout bloqué spatialement (déclaré). | |
| 55 | +- **Erreurs-types** : absentes en v1.0 → bootstrap par grappes + DM groupé (éq. 13). Le DM sur la perte APE teste la | |
| 56 | + MAPE, pas la MdAPE ; le bootstrap couvre la médiane — distinction explicitée. | |
| 57 | +- **Construction de l'échantillon transparente** : oui (cascade 745 119 → 514 212, reproduite à l'identique). | |
| 58 | +- **Robustesse** : cinq analyses ajoutées (§7) ; toutes exécutées, aucune revendiquée sans sortie. | |
| 59 | +- **Interprétation** : « 18 % improvement » = (17.6−14.4)/17.6 ; « ten points » = 28.8 − 19.2 ; profils en log-points. | |
| 60 | +- **Significativité statistique vs économique** : distinguée systématiquement (ex. C3 vs C2, D2 vs A6, D4 vs A6 | |
| 61 | + forward : non significatifs ; D4 vs A6 random : −3.2 [−4.7, −1.9]). | |
| 62 | +- **Langage causal** : aucun ; le papier est prédictif/descriptif. | |
| 63 | + | |
| 64 | +## 4. Résultats — incohérences trouvées et état des réanalyses | |
| 65 | + | |
| 66 | +- Toutes les incohérences texte/table de la v1.0 sont listées au CHANGELOG §1.1, 1.5, 1.8, 1.9, 1.11. | |
| 67 | +- Nouveaux résultats (tous issus de `results/reproduced/*.csv`) : | |
| 68 | + - Scoreboard uniforme (Tables 2–3) ; IC et tests (Tables 4–5) ; décomposition (Tables 8–9, Fig. 6) ; | |
| 69 | + retransformation (Table 12) ; splits groupés (Table 13) ; vu/non vu (Table 14) ; FE emboîtés (Table 15) ; | |
| 70 | + sensibilité HGB (Table 16) ; Box–Cox fin (texte §7.4). | |
| 71 | + - Sensibilité HGB : quatre configurations alternatives (shallow, deep, régularisée, early stopping sur les 10 % derniers mois) donnent 14.3–14.7 % (random) et 21.2–21.6 % (forward) contre 14.4 / 21.2 pour le baseline ; le classement et la décomposition ne dépendent pas des hyper-paramètres fixés a priori. | |
| 72 | +- Vérifications de cohérence finales : abstract ↔ §1 ↔ §5 ↔ §8–9 ↔ README ↔ tables (chiffres relus un à un après | |
| 73 | + régénération des tables ; voir CHANGELOG §1.1 pour la liste ancien → nouveau). | |
| 74 | + | |
| 75 | +## 5. Littérature | |
| 76 | + | |
| 77 | +33 entrées en v1.0 → 58 en v1.1 ; 100 % vérifiées sur Crossref avec DOI (sauf LightGBM, actes NIPS non indexés, | |
| 78 | +référence standard). 2 entrées retirées (non citées, défectueuses), 5 corrigées, 27 ajoutées et intégrées à | |
| 79 | +l'argument (fonctionnelle : Kuminoff et al. 2010, Bishop et al. 2020, Khoshnoud et al. 2023 ; spatial : Pace et al. | |
| 80 | +1998, Clapp 2003, Fik et al. 2003, Bourassa et al. 2003/2007, Goodman–Thibodeau 2003, Pace–Hayunga 2020, | |
| 81 | +Dubé–Legros 2013 ; indices : Hill et al. 2009, Hill–Scholz 2018, Diewert et al. 2015, Diewert–Shimizu 2016 ; | |
| 82 | +ML/AVM : Zurada et al. 2011, Antipov–Pokryshevskaya 2012, McCluskey et al. 2013, Schulz et al. 2014, Pérez-Rave et al. | |
| 83 | +2019, Lorenz et al. 2023, Thibodeau 2003 ; validation : Diebold–Mariano 1995, Giacomini–White 2006, | |
| 84 | +Bergmeir–Benítez 2012, Roberts et al. 2017 ; retransformation : Manning–Mullahy 2001). | |
| 85 | + | |
| 86 | +## 6. Limites restantes | |
| 87 | + | |
| 88 | +1. Un seul régime temporel testé (reprise 2025-26, +15 % en 18 mois) ; l'ordre des coûts de staleness entre | |
| 89 | + familles pourrait différer dans un marché plat ou baissier. | |
| 90 | +2. Le re-nivellement utilise le ratio médian du test (oracle) : borne supérieure de ce qu'un indice publié | |
| 91 | + permettrait. | |
| 92 | +3. Pas de modèle linéaire à surface spatiale continue (krigeage, splines bivariées) ni d'effets hiérarchiques | |
| 93 | + proprement estimés ; l'emboîtement C4′ est un pooling partiel implicite (norme minimale), pas un modèle | |
| 94 | + hiérarchique explicite. | |
| 95 | +4. Les holdouts groupés neutralisent reventes et bâtiments partagés, pas le voisinage immédiat. | |
| 96 | +5. Attributs du rôle seulement (pas de qualité intérieure, texte d'annonce, photos) ; l'avantage ML mesuré est celui | |
| 97 | + de la flexibilité spatiale sur cet ensemble d'attributs. | |
| 98 | +6. La règle « lots > P99.5 → 0 » héritée du pipeline est documentée mais discutable. | |
| 99 | +7. Longueur : 40 pages avec 16 tables et 10 figures ; pour la soumission, les Tables 4–5, 12–16 iraient en annexe. | |
| 100 | + | |
| 101 | +## 7. Analyses recommandées non exécutées | |
| 102 | + | |
| 103 | +Voir CHANGELOG §4 : surface spatiale linéaire (krigeage / splines lat-lng / hiérarchique bayésien) ; holdout bloqué | |
| 104 | +spatialement ; re-nivellement par indice externe ; fenêtres temporelles alternatives (rolling origin) ; variante | |
| 105 | +« médiane calibrée » ; LightGBM/XGBoost natifs et réseaux de neurones ; coût de retraining mensuel (course | |
| 106 | +glissante) — cette dernière est la plus importante pour la revue cible. | |
| 107 | + | |
| 108 | +## 8. Maturité pour publication | |
| 109 | + | |
| 110 | +- **Verdict** : manuscrit désormais défendable en revue (JHE) sous réserve d'une coupe (annexes) et, idéalement, d'une | |
| 111 | + course glissante (retraining mensuel) qui transformerait la §5.5 en recommandation opérationnelle chiffrée. | |
| 112 | +- **Risques de rejet** : (i) « un seul marché, une seule période » — mitigé par l'échelle provinciale et la | |
| 113 | + décomposition ; (ii) absence d'un modèle linéaire spatialement sophistiqué comme concurrent (un rapporteur | |
| 114 | + spatial le demandera) ; (iii) la correction d'un résultat phare publié en v1.0 sur SSRN doit être assumée | |
| 115 | + explicitement (fait dans l'abstract et §7.1) — c'est un point d'intégrité, pas une faiblesse. | |
| 116 | +- **Points forts pour la revue** : taille et qualité des données, design expérimental, inférence complète, | |
| 117 | + décomposition niveau/compétence inédite dans la littérature AVM, résultat « hierarchy, not coarseness » sur les FE | |
| 118 | + spatiaux. | |
modified
figures/fig_forms.png
+0 −0
Binary file not shown.
modified
figures/fig_generalization.png
+0 −0
Binary file not shown.
added
figures/fig_horizon.png
+0 −0
Binary file not shown.
modified
figures/fig_learning.png
+0 −0
Binary file not shown.
modified
figures/fig_methods.png
+0 −0
Binary file not shown.
modified
figures/fig_segments.png
+0 −0
Binary file not shown.
modified
figures/fig_space.png
+0 −0
Binary file not shown.
modified
figures/fig_time.png
+0 −0
Binary file not shown.
modified
paper/main.pdf
+0 −0
Binary file not shown.
modified
paper/main.tex
+41 −30
@@ -48,6 +48,11 @@ | ||
| 48 | 48 | \usepackage{enumitem} |
| 49 | 49 | \setlist{nosep,leftmargin=*} |
| 50 | 50 | |
| 51 | +% Float placement: let text and floats share pages | |
| 52 | +\setcounter{topnumber}{3}\setcounter{bottomnumber}{2}\setcounter{totalnumber}{4} | |
| 53 | +\renewcommand{\topfraction}{0.9}\renewcommand{\bottomfraction}{0.6} | |
| 54 | +\renewcommand{\textfraction}{0.08}\renewcommand{\floatpagefraction}{0.5} | |
| 55 | + | |
| 51 | 56 | % ============================================================================ |
| 52 | 57 | % METADATA |
| 53 | 58 | % ============================================================================ |
@@ -55,9 +60,9 @@ | ||
| 55 | 60 | \newcommand{\WPtitle}{Half a Million Prices, Twenty Models} |
| 56 | 61 | \newcommand{\WPsubtitle}{A Systematic Assessment of Hedonic Specifications and |
| 57 | 62 | Estimation Methods for the Quebec Housing Market, 2021--2026} |
| 58 | −\newcommand{\WPdate}{August 2026} | |
| 59 | −\newcommand{\WPversion}{1.0} | |
| 60 | −\newcommand{\WPkeywords}{hedonic pricing, functional form, house price indexes, machine learning, automated valuation, out-of-sample prediction} | |
| 63 | +\newcommand{\WPdate}{October 2026} | |
| 64 | +\newcommand{\WPversion}{1.1} | |
| 65 | +\newcommand{\WPkeywords}{hedonic price function, functional form, spatial fixed effects, machine learning, automated valuation model, forward-in-time holdout, house price index} | |
| 61 | 66 | \newcommand{\WPjel}{R31, C21, C52, C53} |
| 62 | 67 | |
| 63 | 68 | \newcommand{\WPauthor}{Simon-Pierre Boucher} |
@@ -68,34 +73,39 @@ | ||
| 68 | 73 | 283, boulevard Alexandre-Tach\'e\\ Gatineau, Qu\'ebec, Canada J9A 1L8} |
| 69 | 74 | |
| 70 | 75 | \newcommand{\WPabstract}{% |
| 71 | −Fifty years after \mbox{Rosen (1974)}, applied hedonic practice still rests | |
| 72 | −on a series of specification choices --- functional form, temporal controls, | |
| 73 | −spatial controls, estimation method --- that are usually made by convention | |
| 74 | −and rarely stress-tested jointly. Using 514{,}212 Quebec residential sales | |
| 76 | +Fifty years after \mbox{Rosen (1974)}, applied hedonic practice still | |
| 77 | +rests on specification choices---functional form, temporal controls, | |
| 78 | +spatial controls, estimation method---that are made by convention and | |
| 79 | +rarely stress-tested jointly. Using 514{,}212 Quebec residential sales | |
| 75 | 80 | (2021--2026) whose structural descriptors come from the provincial |
| 76 | 81 | assessment roll, we run a controlled horse race of twenty hedonic models |
| 77 | −organised along those four axes, scoring every model on identical holdouts | |
| 78 | −and on the same price-level scoreboard (log models are Duan-retransformed, | |
| 79 | −Box--Cox inverted). Four lessons emerge. (1)~Functional form is a | |
| 80 | −second-order choice: from linear to splines, the median absolute error | |
| 81 | −spans 16.5--18.6\%, and the data-driven Box--Cox exponent | |
| 82 | −($\hat\lambda=0.25$) buys nothing out of sample. (2)~Controls are | |
| 83 | −first-order: dropping spatial fixed effects costs ten error points --- | |
| 84 | −location granularity matters far more than curvature, but only up to the | |
| 85 | −point where cells thin out (a $\sim$1~km grid \emph{overfits}). | |
| 86 | −(3)~Under random validation, estimation method matters most: gradient | |
| 87 | −boosting reaches 14.4\% --- a 13\% improvement over the best linear model | |
| 88 | −--- with random forests close behind, and coordinates alone reproduce | |
| 89 | −what thousands of dummies buy. (4)~But the ranking is an artifact of the | |
| 90 | −split: under a forward-in-time holdout (train $<$~2025, test 2025--26) | |
| 91 | −every model degrades and the machine-learning advantage \emph{reverses} | |
| 92 | −--- the spline hedonic posts a lower median error than gradient boosting | |
| 93 | −and an identical log-scale $R^2$ --- a stark warning against evaluating | |
| 94 | −valuation models with random cross-validation alone. Constant-quality | |
| 95 | −monthly indices implied by the competing forms agree to within a few | |
| 96 | −index points, and the boosted model's implicit age and floor-area | |
| 97 | −profiles track the quadratic OLS closely --- interpretation and | |
| 98 | −prediction disagree less than the random-validation gap suggests.} | |
| 82 | +organised along those four axes, scoring every model on identical | |
| 83 | +holdouts and on the same price-level scoreboard with a single | |
| 84 | +retransformation rule, with a municipality-clustered bootstrap interval | |
| 85 | +and a Diebold--Mariano-type test on every comparison. Four lessons | |
| 86 | +emerge. (1)~Functional form is second-order: from linear to splines the | |
| 87 | +median absolute error spans 17.6--19.2\%, and the data-driven Box--Cox | |
| 88 | +exponent gains half a point. (2)~Controls are first-order: dropping | |
| 89 | +spatial fixed effects costs ten error points; a $\sim$1~km grid used | |
| 90 | +alone overfits, but nested within municipalities it becomes the most | |
| 91 | +accurate linear specification---the bias--variance trade-off in | |
| 92 | +absorbing location is resolved by hierarchy, not coarseness. (3)~Under | |
| 93 | +random validation the estimation method dominates: gradient boosting | |
| 94 | +reaches 14.4\%, an 18\% improvement over the best linear model | |
| 95 | +(95\% interval 1.9--4.7 points) that survives holdouts grouped by parcel | |
| 96 | +and by building and comes almost entirely from a flexible surface over | |
| 97 | +space. (4)~Under a forward-in-time holdout (train $<$~2025, test | |
| 98 | +2025--26) every model degrades and the gap shrinks to half a point and | |
| 99 | +to insignificance. Decomposing the error shows that relative pricing | |
| 100 | +skill transfers forward intact (re-levelled, boosting leads by 2.9 | |
| 101 | +points) while every frozen model under-prices the typical future sale | |
| 102 | +by 10--20\%, the ensembles slightly more. Random cross-validation hides | |
| 103 | +this staleness cost; it does not, as a previous version of this paper | |
| 104 | +claimed on the basis of an asymmetric retransformation, reverse the | |
| 105 | +ranking. Constant-quality indices agree across functional forms to | |
| 106 | +within 2.5 points but a boosted imputation index rises nine points less, | |
| 107 | +and the boosted model's implicit age and area profiles share the shape | |
| 108 | +of the quadratic OLS gradients with a milder depreciation path.} | |
| 99 | 109 | |
| 100 | 110 | \hypersetup{pdftitle={Half a Million Prices, Twenty Models}, pdfauthor={Simon-Pierre Boucher}} |
| 101 | 111 | |
@@ -113,10 +123,11 @@ prediction disagree less than the random-validation gap suggests.} | ||
| 113 | 123 | \input{sections/methodology} |
| 114 | 124 | \input{sections/results} |
| 115 | 125 | \input{sections/extensions} |
| 126 | +\input{sections/robustness} | |
| 116 | 127 | \input{sections/discussion} |
| 117 | 128 | \input{sections/conclusion} |
| 118 | 129 | |
| 119 | −\newpage | |
| 130 | +\clearpage | |
| 120 | 131 | \bibliography{references} |
| 121 | 132 | |
| 122 | 133 | \end{document} |
modified
paper/main_anon.pdf
+0 −0
Binary file not shown.
modified
paper/main_anon.tex
+41 −30
@@ -48,6 +48,11 @@ | ||
| 48 | 48 | \usepackage{enumitem} |
| 49 | 49 | \setlist{nosep,leftmargin=*} |
| 50 | 50 | |
| 51 | +% Float placement: let text and floats share pages | |
| 52 | +\setcounter{topnumber}{3}\setcounter{bottomnumber}{2}\setcounter{totalnumber}{4} | |
| 53 | +\renewcommand{\topfraction}{0.9}\renewcommand{\bottomfraction}{0.6} | |
| 54 | +\renewcommand{\textfraction}{0.08}\renewcommand{\floatpagefraction}{0.5} | |
| 55 | + | |
| 51 | 56 | % ============================================================================ |
| 52 | 57 | % METADATA |
| 53 | 58 | % ============================================================================ |
@@ -55,9 +60,9 @@ | ||
| 55 | 60 | \newcommand{\WPtitle}{Half a Million Prices, Twenty Models} |
| 56 | 61 | \newcommand{\WPsubtitle}{A Systematic Assessment of Hedonic Specifications and |
| 57 | 62 | Estimation Methods for the Quebec Housing Market, 2021--2026} |
| 58 | −\newcommand{\WPdate}{August 2026} | |
| 59 | −\newcommand{\WPversion}{1.0} | |
| 60 | −\newcommand{\WPkeywords}{hedonic pricing, functional form, house price indexes, machine learning, automated valuation, out-of-sample prediction} | |
| 63 | +\newcommand{\WPdate}{October 2026} | |
| 64 | +\newcommand{\WPversion}{1.1} | |
| 65 | +\newcommand{\WPkeywords}{hedonic price function, functional form, spatial fixed effects, machine learning, automated valuation model, forward-in-time holdout, house price index} | |
| 61 | 66 | \newcommand{\WPjel}{R31, C21, C52, C53} |
| 62 | 67 | |
| 63 | 68 | \newcommand{\WPauthor}{Simon-Pierre Boucher} |
@@ -68,34 +73,39 @@ | ||
| 68 | 73 | 283, boulevard Alexandre-Tach\'e\\ Gatineau, Qu\'ebec, Canada J9A 1L8} |
| 69 | 74 | |
| 70 | 75 | \newcommand{\WPabstract}{% |
| 71 | −Fifty years after \mbox{Rosen (1974)}, applied hedonic practice still rests | |
| 72 | −on a series of specification choices --- functional form, temporal controls, | |
| 73 | −spatial controls, estimation method --- that are usually made by convention | |
| 74 | −and rarely stress-tested jointly. Using 514{,}212 Quebec residential sales | |
| 76 | +Fifty years after \mbox{Rosen (1974)}, applied hedonic practice still | |
| 77 | +rests on specification choices---functional form, temporal controls, | |
| 78 | +spatial controls, estimation method---that are made by convention and | |
| 79 | +rarely stress-tested jointly. Using 514{,}212 Quebec residential sales | |
| 75 | 80 | (2021--2026) whose structural descriptors come from the provincial |
| 76 | 81 | assessment roll, we run a controlled horse race of twenty hedonic models |
| 77 | −organised along those four axes, scoring every model on identical holdouts | |
| 78 | −and on the same price-level scoreboard (log models are Duan-retransformed, | |
| 79 | −Box--Cox inverted). Four lessons emerge. (1)~Functional form is a | |
| 80 | −second-order choice: from linear to splines, the median absolute error | |
| 81 | −spans 16.5--18.6\%, and the data-driven Box--Cox exponent | |
| 82 | −($\hat\lambda=0.25$) buys nothing out of sample. (2)~Controls are | |
| 83 | −first-order: dropping spatial fixed effects costs ten error points --- | |
| 84 | −location granularity matters far more than curvature, but only up to the | |
| 85 | −point where cells thin out (a $\sim$1~km grid \emph{overfits}). | |
| 86 | −(3)~Under random validation, estimation method matters most: gradient | |
| 87 | −boosting reaches 14.4\% --- a 13\% improvement over the best linear model | |
| 88 | −--- with random forests close behind, and coordinates alone reproduce | |
| 89 | −what thousands of dummies buy. (4)~But the ranking is an artifact of the | |
| 90 | −split: under a forward-in-time holdout (train $<$~2025, test 2025--26) | |
| 91 | −every model degrades and the machine-learning advantage \emph{reverses} | |
| 92 | −--- the spline hedonic posts a lower median error than gradient boosting | |
| 93 | −and an identical log-scale $R^2$ --- a stark warning against evaluating | |
| 94 | −valuation models with random cross-validation alone. Constant-quality | |
| 95 | −monthly indices implied by the competing forms agree to within a few | |
| 96 | −index points, and the boosted model's implicit age and floor-area | |
| 97 | −profiles track the quadratic OLS closely --- interpretation and | |
| 98 | −prediction disagree less than the random-validation gap suggests.} | |
| 82 | +organised along those four axes, scoring every model on identical | |
| 83 | +holdouts and on the same price-level scoreboard with a single | |
| 84 | +retransformation rule, with a municipality-clustered bootstrap interval | |
| 85 | +and a Diebold--Mariano-type test on every comparison. Four lessons | |
| 86 | +emerge. (1)~Functional form is second-order: from linear to splines the | |
| 87 | +median absolute error spans 17.6--19.2\%, and the data-driven Box--Cox | |
| 88 | +exponent gains half a point. (2)~Controls are first-order: dropping | |
| 89 | +spatial fixed effects costs ten error points; a $\sim$1~km grid used | |
| 90 | +alone overfits, but nested within municipalities it becomes the most | |
| 91 | +accurate linear specification---the bias--variance trade-off in | |
| 92 | +absorbing location is resolved by hierarchy, not coarseness. (3)~Under | |
| 93 | +random validation the estimation method dominates: gradient boosting | |
| 94 | +reaches 14.4\%, an 18\% improvement over the best linear model | |
| 95 | +(95\% interval 1.9--4.7 points) that survives holdouts grouped by parcel | |
| 96 | +and by building and comes almost entirely from a flexible surface over | |
| 97 | +space. (4)~Under a forward-in-time holdout (train $<$~2025, test | |
| 98 | +2025--26) every model degrades and the gap shrinks to half a point and | |
| 99 | +to insignificance. Decomposing the error shows that relative pricing | |
| 100 | +skill transfers forward intact (re-levelled, boosting leads by 2.9 | |
| 101 | +points) while every frozen model under-prices the typical future sale | |
| 102 | +by 10--20\%, the ensembles slightly more. Random cross-validation hides | |
| 103 | +this staleness cost; it does not, as a previous version of this paper | |
| 104 | +claimed on the basis of an asymmetric retransformation, reverse the | |
| 105 | +ranking. Constant-quality indices agree across functional forms to | |
| 106 | +within 2.5 points but a boosted imputation index rises nine points less, | |
| 107 | +and the boosted model's implicit age and area profiles share the shape | |
| 108 | +of the quadratic OLS gradients with a milder depreciation path.} | |
| 99 | 109 | |
| 100 | 110 | \hypersetup{pdftitle={Half a Million Prices, Twenty Models}, pdfauthor={}} |
| 101 | 111 | |
@@ -113,10 +123,11 @@ prediction disagree less than the random-validation gap suggests.} | ||
| 113 | 123 | \input{sections/methodology} |
| 114 | 124 | \input{sections/results} |
| 115 | 125 | \input{sections/extensions} |
| 126 | +\input{sections/robustness} | |
| 116 | 127 | \input{sections/discussion} |
| 117 | 128 | \input{sections/conclusion} |
| 118 | 129 | |
| 119 | −\newpage | |
| 130 | +\clearpage | |
| 120 | 131 | \bibliography{references} |
| 121 | 132 | |
| 122 | 133 | \end{document} |
modified
paper/references.bib
+371 −60
@@ -7,7 +7,8 @@ | ||
| 7 | 7 | year = {1974}, |
| 8 | 8 | volume = {82}, |
| 9 | 9 | number = {1}, |
| 10 | − pages = {34--55} | |
| 10 | + pages = {34--55}, | |
| 11 | + doi = {10.1086/260169} | |
| 11 | 12 | } |
| 12 | 13 | |
| 13 | 14 | @article{halvorsen1981choice, |
@@ -17,7 +18,8 @@ | ||
| 17 | 18 | year = {1981}, |
| 18 | 19 | volume = {10}, |
| 19 | 20 | number = {1}, |
| 20 | − pages = {37--49} | |
| 21 | + pages = {37--49}, | |
| 22 | + doi = {10.1016/0094-1190(81)90021-8} | |
| 21 | 23 | } |
| 22 | 24 | |
| 23 | 25 | @article{cassel1985cost, |
@@ -27,7 +29,8 @@ | ||
| 27 | 29 | year = {1985}, |
| 28 | 30 | volume = {18}, |
| 29 | 31 | number = {2}, |
| 30 | − pages = {135--142} | |
| 32 | + pages = {135--142}, | |
| 33 | + doi = {10.1016/0094-1190(85)90012-9} | |
| 31 | 34 | } |
| 32 | 35 | |
| 33 | 36 | @article{cropper1988choice, |
@@ -37,7 +40,8 @@ | ||
| 37 | 40 | year = {1988}, |
| 38 | 41 | volume = {70}, |
| 39 | 42 | number = {4}, |
| 40 | − pages = {668--675} | |
| 43 | + pages = {668--675}, | |
| 44 | + doi = {10.2307/1935831} | |
| 41 | 45 | } |
| 42 | 46 | |
| 43 | 47 | @article{box1964analysis, |
@@ -47,7 +51,8 @@ | ||
| 47 | 51 | year = {1964}, |
| 48 | 52 | volume = {26}, |
| 49 | 53 | number = {2}, |
| 50 | − pages = {211--252} | |
| 54 | + pages = {211--243}, | |
| 55 | + doi = {10.1111/j.2517-6161.1964.tb00553.x} | |
| 51 | 56 | } |
| 52 | 57 | |
| 53 | 58 | @incollection{malpezzi2003hedonic, |
@@ -58,7 +63,8 @@ | ||
| 58 | 63 | publisher = {Blackwell}, |
| 59 | 64 | address = {Oxford}, |
| 60 | 65 | year = {2003}, |
| 61 | − pages = {67--89} | |
| 66 | + pages = {67--89}, | |
| 67 | + doi = {10.1002/9780470690680.ch5} | |
| 62 | 68 | } |
| 63 | 69 | |
| 64 | 70 | @article{sirmans2005composition, |
@@ -68,7 +74,8 @@ | ||
| 68 | 74 | year = {2005}, |
| 69 | 75 | volume = {13}, |
| 70 | 76 | number = {1}, |
| 71 | − pages = {1--44} | |
| 77 | + pages = {1--44}, | |
| 78 | + doi = {10.1080/10835547.2005.12090154} | |
| 72 | 79 | } |
| 73 | 80 | |
| 74 | 81 | @article{duan1983smearing, |
@@ -78,7 +85,8 @@ | ||
| 78 | 85 | year = {1983}, |
| 79 | 86 | volume = {78}, |
| 80 | 87 | number = {383}, |
| 81 | − pages = {605--610} | |
| 88 | + pages = {605--610}, | |
| 89 | + doi = {10.1080/01621459.1983.10478017} | |
| 82 | 90 | } |
| 83 | 91 | |
| 84 | 92 | @article{goodman1998housing, |
@@ -88,7 +96,8 @@ | ||
| 88 | 96 | year = {1998}, |
| 89 | 97 | volume = {7}, |
| 90 | 98 | number = {2}, |
| 91 | − pages = {121--143} | |
| 99 | + pages = {121--143}, | |
| 100 | + doi = {10.1006/jhec.1998.0229} | |
| 92 | 101 | } |
| 93 | 102 | |
| 94 | 103 | @article{dubin1998spatial, |
@@ -98,7 +107,8 @@ | ||
| 98 | 107 | year = {1998}, |
| 99 | 108 | volume = {7}, |
| 100 | 109 | number = {4}, |
| 101 | − pages = {304--327} | |
| 110 | + pages = {304--327}, | |
| 111 | + doi = {10.1006/jhec.1998.0236} | |
| 102 | 112 | } |
| 103 | 113 | |
| 104 | 114 | @book{anselin1988spatial, |
@@ -106,7 +116,8 @@ | ||
| 106 | 116 | title = {Spatial Econometrics: Methods and Models}, |
| 107 | 117 | publisher = {Kluwer Academic}, |
| 108 | 118 | address = {Dordrecht}, |
| 109 | − year = {1988} | |
| 119 | + year = {1988}, | |
| 120 | + doi = {10.1007/978-94-015-7799-1} | |
| 110 | 121 | } |
| 111 | 122 | |
| 112 | 123 | @article{hill2013hedonic, |
@@ -116,25 +127,19 @@ | ||
| 116 | 127 | year = {2013}, |
| 117 | 128 | volume = {27}, |
| 118 | 129 | number = {5}, |
| 119 | − pages = {879--914} | |
| 130 | + pages = {879--914}, | |
| 131 | + doi = {10.1111/j.1467-6419.2012.00731.x} | |
| 120 | 132 | } |
| 121 | 133 | |
| 122 | −@article{silver2018house, | |
| 123 | − author = {Silver, Mick}, | |
| 124 | − title = {How to Measure Hedonic Property Price Indexes Better}, | |
| 125 | − journal = {EURONA — Eurostat Review on National Accounts and Macroeconomic Indicators}, | |
| 126 | − year = {2018}, | |
| 127 | − volume = {1}, | |
| 128 | − pages = {35--66} | |
| 129 | −} | |
| 130 | − | |
| 131 | −@article{diewert2004hedonic, | |
| 132 | − author = {Diewert, W. Erwin}, | |
| 133 | − title = {Hedonic Regressions: A Review of Some Unresolved Issues}, | |
| 134 | − journal = {Mimeo, University of British Columbia}, | |
| 135 | − year = {2004}, | |
| 136 | − volume = {}, | |
| 137 | − pages = {} | |
| 134 | +@techreport{silver2018house, | |
| 135 | + author = {Silver, Mick}, | |
| 136 | + title = {How to Better Measure Hedonic Residential Property Price Indexes}, | |
| 137 | + institution = {International Monetary Fund}, | |
| 138 | + type = {IMF Working Paper}, | |
| 139 | + number = {16/213}, | |
| 140 | + address = {Washington, DC}, | |
| 141 | + year = {2016}, | |
| 142 | + doi = {10.5089/9781475552249.001} | |
| 138 | 143 | } |
| 139 | 144 | |
| 140 | 145 | @article{mullainathan2017machine, |
@@ -144,7 +149,8 @@ | ||
| 144 | 149 | year = {2017}, |
| 145 | 150 | volume = {31}, |
| 146 | 151 | number = {2}, |
| 147 | − pages = {87--106} | |
| 152 | + pages = {87--106}, | |
| 153 | + doi = {10.1257/jep.31.2.87} | |
| 148 | 154 | } |
| 149 | 155 | |
| 150 | 156 | @article{athey2019machine, |
@@ -153,7 +159,8 @@ | ||
| 153 | 159 | journal = {Annual Review of Economics}, |
| 154 | 160 | year = {2019}, |
| 155 | 161 | volume = {11}, |
| 156 | − pages = {685--725} | |
| 162 | + pages = {685--725}, | |
| 163 | + doi = {10.1146/annurev-economics-080217-053433} | |
| 157 | 164 | } |
| 158 | 165 | |
| 159 | 166 | @article{breiman2001random, |
@@ -163,7 +170,8 @@ | ||
| 163 | 170 | year = {2001}, |
| 164 | 171 | volume = {45}, |
| 165 | 172 | number = {1}, |
| 166 | − pages = {5--32} | |
| 173 | + pages = {5--32}, | |
| 174 | + doi = {10.1023/A:1010933404324} | |
| 167 | 175 | } |
| 168 | 176 | |
| 169 | 177 | @article{friedman2001greedy, |
@@ -173,16 +181,18 @@ | ||
| 173 | 181 | year = {2001}, |
| 174 | 182 | volume = {29}, |
| 175 | 183 | number = {5}, |
| 176 | − pages = {1189--1232} | |
| 184 | + pages = {1189--1232}, | |
| 185 | + doi = {10.1214/aos/1013203451} | |
| 177 | 186 | } |
| 178 | 187 | |
| 179 | −@article{ke2017lightgbm, | |
| 180 | − author = {Ke, Guolin and Meng, Qi and Finley, Thomas and Wang, Taifeng and Chen, Wei and Ma, Weidong and Ye, Qiwei and Liu, Tie-Yan}, | |
| 181 | − title = {{LightGBM}: A Highly Efficient Gradient Boosting Decision Tree}, | |
| 182 | − journal = {Advances in Neural Information Processing Systems}, | |
| 183 | − year = {2017}, | |
| 184 | − volume = {30}, | |
| 185 | − pages = {3146--3154} | |
| 188 | +@inproceedings{ke2017lightgbm, | |
| 189 | + author = {Ke, Guolin and Meng, Qi and Finley, Thomas and Wang, Taifeng and Chen, Wei and Ma, Weidong and Ye, Qiwei and Liu, Tie-Yan}, | |
| 190 | + title = {{LightGBM}: A Highly Efficient Gradient Boosting Decision Tree}, | |
| 191 | + booktitle = {Advances in Neural Information Processing Systems 30 (NIPS 2017)}, | |
| 192 | + editor = {Guyon, I. and Von Luxburg, U. and Bengio, S. and Wallach, H. and Fergus, R. and Vishwanathan, S. and Garnett, R.}, | |
| 193 | + publisher = {Curran Associates}, | |
| 194 | + year = {2017}, | |
| 195 | + pages = {3146--3154} | |
| 186 | 196 | } |
| 187 | 197 | |
| 188 | 198 | @article{mayer2019estimation, |
@@ -192,7 +202,8 @@ | ||
| 192 | 202 | year = {2019}, |
| 193 | 203 | volume = {12}, |
| 194 | 204 | number = {1}, |
| 195 | − pages = {134--150} | |
| 205 | + pages = {134--150}, | |
| 206 | + doi = {10.1108/JERER-08-2018-0035} | |
| 196 | 207 | } |
| 197 | 208 | |
| 198 | 209 | @article{bogin2020house, |
@@ -201,8 +212,9 @@ | ||
| 201 | 212 | journal = {Journal of Real Estate Finance and Economics}, |
| 202 | 213 | year = {2020}, |
| 203 | 214 | volume = {60}, |
| 204 | − number = {1}, | |
| 205 | − pages = {40--52} | |
| 215 | + number = {1--2}, | |
| 216 | + pages = {40--52}, | |
| 217 | + doi = {10.1007/s11146-019-09712-0} | |
| 206 | 218 | } |
| 207 | 219 | |
| 208 | 220 | @article{steurer2021metrics, |
@@ -212,7 +224,8 @@ | ||
| 212 | 224 | year = {2021}, |
| 213 | 225 | volume = {38}, |
| 214 | 226 | number = {2}, |
| 215 | − pages = {99--129} | |
| 227 | + pages = {99--129}, | |
| 228 | + doi = {10.1080/09599916.2020.1858937} | |
| 216 | 229 | } |
| 217 | 230 | |
| 218 | 231 | @article{pace1997spatial, |
@@ -222,7 +235,8 @@ | ||
| 222 | 235 | year = {1997}, |
| 223 | 236 | volume = {14}, |
| 224 | 237 | number = {3}, |
| 225 | − pages = {333--340} | |
| 238 | + pages = {333--340}, | |
| 239 | + doi = {10.1023/A:1007762613901} | |
| 226 | 240 | } |
| 227 | 241 | |
| 228 | 242 | @article{case2004modeling, |
@@ -232,7 +246,8 @@ | ||
| 232 | 246 | year = {2004}, |
| 233 | 247 | volume = {29}, |
| 234 | 248 | number = {2}, |
| 235 | − pages = {167--191} | |
| 249 | + pages = {167--191}, | |
| 250 | + doi = {10.1023/B:REAL.0000035309.60607.53} | |
| 236 | 251 | } |
| 237 | 252 | |
| 238 | 253 | @article{bourassa2010predicting, |
@@ -242,7 +257,8 @@ | ||
| 242 | 257 | year = {2010}, |
| 243 | 258 | volume = {32}, |
| 244 | 259 | number = {2}, |
| 245 | − pages = {139--159} | |
| 260 | + pages = {139--159}, | |
| 261 | + doi = {10.1080/10835547.2010.12091276} | |
| 246 | 262 | } |
| 247 | 263 | |
| 248 | 264 | @article{desrosiers2000hedonic, |
@@ -252,7 +268,8 @@ | ||
| 252 | 268 | year = {2000}, |
| 253 | 269 | volume = {18}, |
| 254 | 270 | number = {3}, |
| 255 | − pages = {291--315} | |
| 271 | + pages = {291--315}, | |
| 272 | + doi = {10.1108/14635780010338245} | |
| 256 | 273 | } |
| 257 | 274 | |
| 258 | 275 | @article{gencay1996nonlinear, |
@@ -262,7 +279,8 @@ | ||
| 262 | 279 | year = {1996}, |
| 263 | 280 | volume = {52}, |
| 264 | 281 | number = {2}, |
| 265 | − pages = {129--135} | |
| 282 | + pages = {129--135}, | |
| 283 | + doi = {10.1016/S0165-1765(96)00851-8} | |
| 266 | 284 | } |
| 267 | 285 | |
| 268 | 286 | @article{kok2017big, |
@@ -272,7 +290,8 @@ | ||
| 272 | 290 | year = {2017}, |
| 273 | 291 | volume = {43}, |
| 274 | 292 | number = {6}, |
| 275 | − pages = {202--211} | |
| 293 | + pages = {202--211}, | |
| 294 | + doi = {10.3905/jpm.2017.43.6.202} | |
| 276 | 295 | } |
| 277 | 296 | |
| 278 | 297 | @article{hong2020machine, |
@@ -282,16 +301,8 @@ | ||
| 282 | 301 | year = {2020}, |
| 283 | 302 | volume = {24}, |
| 284 | 303 | number = {3}, |
| 285 | − pages = {140--152} | |
| 286 | −} | |
| 287 | − | |
| 288 | −@article{knight2003listing, | |
| 289 | − author = {Knight, John R.}, | |
| 290 | − title = {Hedonic Modeling of the Home Selling Process}, | |
| 291 | − journal = {Journal of Real Estate Finance and Economics}, | |
| 292 | − year = {2003}, | |
| 293 | − volume = {}, | |
| 294 | − pages = {} | |
| 304 | + pages = {140--152}, | |
| 305 | + doi = {10.3846/ijspm.2020.11544} | |
| 295 | 306 | } |
| 296 | 307 | |
| 297 | 308 | @book{iaao2013standard, |
@@ -309,7 +320,8 @@ | ||
| 309 | 320 | year = {2002}, |
| 310 | 321 | volume = {24}, |
| 311 | 322 | number = {1}, |
| 312 | − pages = {1--26} | |
| 323 | + pages = {1--26}, | |
| 324 | + doi = {10.1080/10835547.2002.12091087} | |
| 313 | 325 | } |
| 314 | 326 | |
| 315 | 327 | @techreport{oecd2013handbook, |
@@ -319,3 +331,302 @@ | ||
| 319 | 331 | address = {Luxembourg}, |
| 320 | 332 | year = {2013} |
| 321 | 333 | } |
| 334 | + | |
| 335 | +% --------------------------------------------------------------------------- | |
| 336 | +% References added in the 2026-10-17 revision (all verified on Crossref) | |
| 337 | +% --------------------------------------------------------------------------- | |
| 338 | + | |
| 339 | +@article{hill2018geospatial, | |
| 340 | + author = {Hill, Robert J. and Scholz, Michael}, | |
| 341 | + title = {Can Geospatial Data Improve House Price Indexes? {A} Hedonic Imputation Approach with Splines}, | |
| 342 | + journal = {Review of Income and Wealth}, | |
| 343 | + year = {2018}, | |
| 344 | + volume = {64}, | |
| 345 | + number = {4}, | |
| 346 | + pages = {737--756}, | |
| 347 | + doi = {10.1111/roiw.12303} | |
| 348 | +} | |
| 349 | + | |
| 350 | +@article{pace2020residuals, | |
| 351 | + author = {Pace, R. Kelley and Hayunga, Darren}, | |
| 352 | + title = {Examining the Information Content of Residuals from Hedonic and Spatial Models Using Trees and Forests}, | |
| 353 | + journal = {Journal of Real Estate Finance and Economics}, | |
| 354 | + year = {2020}, | |
| 355 | + volume = {60}, | |
| 356 | + number = {1--2}, | |
| 357 | + pages = {170--180}, | |
| 358 | + doi = {10.1007/s11146-019-09724-w} | |
| 359 | +} | |
| 360 | + | |
| 361 | +@article{lorenz2023interpretable, | |
| 362 | + author = {Lorenz, Felix and Willwersch, Jonas and Cajias, Marcelo and Fuerst, Franz}, | |
| 363 | + title = {Interpretable Machine Learning for Real Estate Market Analysis}, | |
| 364 | + journal = {Real Estate Economics}, | |
| 365 | + year = {2023}, | |
| 366 | + volume = {51}, | |
| 367 | + number = {5}, | |
| 368 | + pages = {1178--1208}, | |
| 369 | + doi = {10.1111/1540-6229.12397} | |
| 370 | +} | |
| 371 | + | |
| 372 | +@article{diewert2016tokyo, | |
| 373 | + author = {Diewert, W. Erwin and Shimizu, Chihiro}, | |
| 374 | + title = {Hedonic Regression Models for {Tokyo} Condominium Sales}, | |
| 375 | + journal = {Regional Science and Urban Economics}, | |
| 376 | + year = {2016}, | |
| 377 | + volume = {60}, | |
| 378 | + pages = {300--315}, | |
| 379 | + doi = {10.1016/j.regsciurbeco.2016.08.002} | |
| 380 | +} | |
| 381 | + | |
| 382 | +@article{diewert2015decomposition, | |
| 383 | + author = {Diewert, W. Erwin and de Haan, Jan and Hendriks, Rens}, | |
| 384 | + title = {Hedonic Regressions and the Decomposition of a House Price Index into Land and Structure Components}, | |
| 385 | + journal = {Econometric Reviews}, | |
| 386 | + year = {2015}, | |
| 387 | + volume = {34}, | |
| 388 | + number = {1--2}, | |
| 389 | + pages = {106--126}, | |
| 390 | + doi = {10.1080/07474938.2014.944791} | |
| 391 | +} | |
| 392 | + | |
| 393 | +@article{diebold1995comparing, | |
| 394 | + author = {Diebold, Francis X. and Mariano, Roberto S.}, | |
| 395 | + title = {Comparing Predictive Accuracy}, | |
| 396 | + journal = {Journal of Business \& Economic Statistics}, | |
| 397 | + year = {1995}, | |
| 398 | + volume = {13}, | |
| 399 | + number = {3}, | |
| 400 | + pages = {253--263}, | |
| 401 | + doi = {10.1080/07350015.1995.10524599} | |
| 402 | +} | |
| 403 | + | |
| 404 | +@article{giacomini2006tests, | |
| 405 | + author = {Giacomini, Raffaella and White, Halbert}, | |
| 406 | + title = {Tests of Conditional Predictive Ability}, | |
| 407 | + journal = {Econometrica}, | |
| 408 | + year = {2006}, | |
| 409 | + volume = {74}, | |
| 410 | + number = {6}, | |
| 411 | + pages = {1545--1578}, | |
| 412 | + doi = {10.1111/j.1468-0262.2006.00718.x} | |
| 413 | +} | |
| 414 | + | |
| 415 | +@article{bergmeir2012crossvalidation, | |
| 416 | + author = {Bergmeir, Christoph and Ben{\'i}tez, Jos{\'e} M.}, | |
| 417 | + title = {On the Use of Cross-Validation for Time Series Predictor Evaluation}, | |
| 418 | + journal = {Information Sciences}, | |
| 419 | + year = {2012}, | |
| 420 | + volume = {191}, | |
| 421 | + pages = {192--213}, | |
| 422 | + doi = {10.1016/j.ins.2011.12.028} | |
| 423 | +} | |
| 424 | + | |
| 425 | +@article{roberts2017crossvalidation, | |
| 426 | + author = {Roberts, David R. and Bahn, Volker and Ciuti, Simone and Boyce, Mark S. and Elith, Jane and Guillera-Arroita, Gurutzeta and Hauenstein, Severin and Lahoz-Monfort, Jos{\'e} J. and Schr{\"o}der, Boris and Thuiller, Wilfried and Warton, David I. and Wintle, Brendan A. and Hartig, Florian and Dormann, Carsten F.}, | |
| 427 | + title = {Cross-Validation Strategies for Data with Temporal, Spatial, Hierarchical, or Phylogenetic Structure}, | |
| 428 | + journal = {Ecography}, | |
| 429 | + year = {2017}, | |
| 430 | + volume = {40}, | |
| 431 | + number = {8}, | |
| 432 | + pages = {913--929}, | |
| 433 | + doi = {10.1111/ecog.02881} | |
| 434 | +} | |
| 435 | + | |
| 436 | +@article{kuminoff2010which, | |
| 437 | + author = {Kuminoff, Nicolai V. and Parmeter, Christopher F. and Pope, Jaren C.}, | |
| 438 | + title = {Which Hedonic Models Can We Trust to Recover the Marginal Willingness to Pay for Environmental Amenities?}, | |
| 439 | + journal = {Journal of Environmental Economics and Management}, | |
| 440 | + year = {2010}, | |
| 441 | + volume = {60}, | |
| 442 | + number = {3}, | |
| 443 | + pages = {145--160}, | |
| 444 | + doi = {10.1016/j.jeem.2010.06.001} | |
| 445 | +} | |
| 446 | + | |
| 447 | +@article{bishop2020best, | |
| 448 | + author = {Bishop, Kelly C. and Kuminoff, Nicolai V. and Banzhaf, H. Spencer and Boyle, Kevin J. and von Gravenitz, Kathrine and Pope, Jaren C. and Smith, V. Kerry and Timmins, Christopher D.}, | |
| 449 | + title = {Best Practices for Using Hedonic Property Value Models to Measure Willingness to Pay for Environmental Quality}, | |
| 450 | + journal = {Review of Environmental Economics and Policy}, | |
| 451 | + year = {2020}, | |
| 452 | + volume = {14}, | |
| 453 | + number = {2}, | |
| 454 | + pages = {260--281}, | |
| 455 | + doi = {10.1093/reep/reaa001} | |
| 456 | +} | |
| 457 | + | |
| 458 | +@article{bourassa2007spatial, | |
| 459 | + author = {Bourassa, Steven C. and Cantoni, Eva and Hoesli, Martin}, | |
| 460 | + title = {Spatial Dependence, Housing Submarkets, and House Price Prediction}, | |
| 461 | + journal = {Journal of Real Estate Finance and Economics}, | |
| 462 | + year = {2007}, | |
| 463 | + volume = {35}, | |
| 464 | + number = {2}, | |
| 465 | + pages = {143--160}, | |
| 466 | + doi = {10.1007/s11146-007-9036-8} | |
| 467 | +} | |
| 468 | + | |
| 469 | +@article{bourassa2003submarkets, | |
| 470 | + author = {Bourassa, Steven C. and Hoesli, Martin and Peng, Vincent S.}, | |
| 471 | + title = {Do Housing Submarkets Really Matter?}, | |
| 472 | + journal = {Journal of Housing Economics}, | |
| 473 | + year = {2003}, | |
| 474 | + volume = {12}, | |
| 475 | + number = {1}, | |
| 476 | + pages = {12--28}, | |
| 477 | + doi = {10.1016/S1051-1377(03)00003-2} | |
| 478 | +} | |
| 479 | + | |
| 480 | +@article{goodman2003segmentation, | |
| 481 | + author = {Goodman, Allen C. and Thibodeau, Thomas G.}, | |
| 482 | + title = {Housing Market Segmentation and Hedonic Prediction Accuracy}, | |
| 483 | + journal = {Journal of Housing Economics}, | |
| 484 | + year = {2003}, | |
| 485 | + volume = {12}, | |
| 486 | + number = {3}, | |
| 487 | + pages = {181--201}, | |
| 488 | + doi = {10.1016/S1051-1377(03)00031-7} | |
| 489 | +} | |
| 490 | + | |
| 491 | +@article{zurada2011comparison, | |
| 492 | + author = {Zurada, Jozef and Levitan, Alan S. and Guan, Jian}, | |
| 493 | + title = {A Comparison of Regression and Artificial Intelligence Methods in a Mass Appraisal Context}, | |
| 494 | + journal = {Journal of Real Estate Research}, | |
| 495 | + year = {2011}, | |
| 496 | + volume = {33}, | |
| 497 | + number = {3}, | |
| 498 | + pages = {349--388}, | |
| 499 | + doi = {10.1080/10835547.2011.12091311} | |
| 500 | +} | |
| 501 | + | |
| 502 | +@article{antipov2012mass, | |
| 503 | + author = {Antipov, Evgeny A. and Pokryshevskaya, Elena B.}, | |
| 504 | + title = {Mass Appraisal of Residential Apartments: An Application of Random Forest for Valuation and a {CART}-Based Approach for Model Diagnostics}, | |
| 505 | + journal = {Expert Systems with Applications}, | |
| 506 | + year = {2012}, | |
| 507 | + volume = {39}, | |
| 508 | + number = {2}, | |
| 509 | + pages = {1772--1778}, | |
| 510 | + doi = {10.1016/j.eswa.2011.08.077} | |
| 511 | +} | |
| 512 | + | |
| 513 | +@article{perezrave2019machine, | |
| 514 | + author = {P{\'e}rez-Rave, Jorge Iv{\'a}n and Correa-Morales, Juan Carlos and Gonz{\'a}lez-Echavarr{\'i}a, Favi{\'a}n}, | |
| 515 | + title = {A Machine Learning Approach to Big Data Regression Analysis of Real Estate Prices for Inferential and Predictive Purposes}, | |
| 516 | + journal = {Journal of Property Research}, | |
| 517 | + year = {2019}, | |
| 518 | + volume = {36}, | |
| 519 | + number = {1}, | |
| 520 | + pages = {59--96}, | |
| 521 | + doi = {10.1080/09599916.2019.1587489} | |
| 522 | +} | |
| 523 | + | |
| 524 | +@article{mccluskey2013prediction, | |
| 525 | + author = {McCluskey, William J. and McCord, Michael and Davis, Peadar T. and Haran, Martin and McIlhatton, David}, | |
| 526 | + title = {Prediction Accuracy in Mass Appraisal: A Comparison of Modern Approaches}, | |
| 527 | + journal = {Journal of Property Research}, | |
| 528 | + year = {2013}, | |
| 529 | + volume = {30}, | |
| 530 | + number = {4}, | |
| 531 | + pages = {239--265}, | |
| 532 | + doi = {10.1080/09599916.2013.781204} | |
| 533 | +} | |
| 534 | + | |
| 535 | +@article{schulz2014automated, | |
| 536 | + author = {Schulz, Rainer and Wersing, Martin and Werwatz, Axel}, | |
| 537 | + title = {Automated Valuation Modelling: A Specification Exercise}, | |
| 538 | + journal = {Journal of Property Research}, | |
| 539 | + year = {2014}, | |
| 540 | + volume = {31}, | |
| 541 | + number = {2}, | |
| 542 | + pages = {131--153}, | |
| 543 | + doi = {10.1080/09599916.2013.846930} | |
| 544 | +} | |
| 545 | + | |
| 546 | +@article{fik2003modeling, | |
| 547 | + author = {Fik, Timothy J. and Ling, David C. and Mulligan, Gordon F.}, | |
| 548 | + title = {Modeling Spatial Variation in Housing Prices: A Variable Interaction Approach}, | |
| 549 | + journal = {Real Estate Economics}, | |
| 550 | + year = {2003}, | |
| 551 | + volume = {31}, | |
| 552 | + number = {4}, | |
| 553 | + pages = {623--646}, | |
| 554 | + doi = {10.1046/j.1080-8620.2003.00079.x} | |
| 555 | +} | |
| 556 | + | |
| 557 | +@article{clapp2003semiparametric, | |
| 558 | + author = {Clapp, John M.}, | |
| 559 | + title = {A Semiparametric Method for Valuing Residential Locations: Application to Automated Valuation}, | |
| 560 | + journal = {Journal of Real Estate Finance and Economics}, | |
| 561 | + year = {2003}, | |
| 562 | + volume = {27}, | |
| 563 | + number = {3}, | |
| 564 | + pages = {303--320}, | |
| 565 | + doi = {10.1023/A:1025838007297} | |
| 566 | +} | |
| 567 | + | |
| 568 | +@article{pace1998spatiotemporal, | |
| 569 | + author = {Pace, R. Kelley and Barry, Ronald and Clapp, John M. and Rodriquez, Mauricio}, | |
| 570 | + title = {Spatiotemporal Autoregressive Models of Neighborhood Effects}, | |
| 571 | + journal = {Journal of Real Estate Finance and Economics}, | |
| 572 | + year = {1998}, | |
| 573 | + volume = {17}, | |
| 574 | + number = {1}, | |
| 575 | + pages = {15--33}, | |
| 576 | + doi = {10.1023/A:1007799028599} | |
| 577 | +} | |
| 578 | + | |
| 579 | +@article{dube2013pooled, | |
| 580 | + author = {Dub{\'e}, Jean and Legros, Di{\`e}go}, | |
| 581 | + title = {Dealing with Spatial Data Pooled over Time in Statistical Models}, | |
| 582 | + journal = {Letters in Spatial and Resource Sciences}, | |
| 583 | + year = {2013}, | |
| 584 | + volume = {6}, | |
| 585 | + number = {1}, | |
| 586 | + pages = {1--18}, | |
| 587 | + doi = {10.1007/s12076-012-0082-3} | |
| 588 | +} | |
| 589 | + | |
| 590 | +@article{hill2009boom, | |
| 591 | + author = {Hill, Robert J. and Melser, Daniel and Syed, Iqbal}, | |
| 592 | + title = {Measuring a Boom and Bust: The {Sydney} Housing Market 2001--2006}, | |
| 593 | + journal = {Journal of Housing Economics}, | |
| 594 | + year = {2009}, | |
| 595 | + volume = {18}, | |
| 596 | + number = {3}, | |
| 597 | + pages = {193--205}, | |
| 598 | + doi = {10.1016/j.jhe.2009.07.010} | |
| 599 | +} | |
| 600 | + | |
| 601 | +@article{manning2001estimating, | |
| 602 | + author = {Manning, Willard G. and Mullahy, John}, | |
| 603 | + title = {Estimating Log Models: To Transform or Not to Transform?}, | |
| 604 | + journal = {Journal of Health Economics}, | |
| 605 | + year = {2001}, | |
| 606 | + volume = {20}, | |
| 607 | + number = {4}, | |
| 608 | + pages = {461--494}, | |
| 609 | + doi = {10.1016/S0167-6296(01)00086-8} | |
| 610 | +} | |
| 611 | + | |
| 612 | +@article{thibodeau2003marking, | |
| 613 | + author = {Thibodeau, Thomas G.}, | |
| 614 | + title = {Marking Single-Family Property Values to Market}, | |
| 615 | + journal = {Real Estate Economics}, | |
| 616 | + year = {2003}, | |
| 617 | + volume = {31}, | |
| 618 | + number = {1}, | |
| 619 | + pages = {1--22}, | |
| 620 | + doi = {10.1111/j.1080-8620.2003.00055.x} | |
| 621 | +} | |
| 622 | + | |
| 623 | +@article{khoshnoud2023evolution, | |
| 624 | + author = {Khoshnoud, Mahsa and Sirmans, G. Stacy and Zietz, Emily N.}, | |
| 625 | + title = {The Evolution of Hedonic Pricing Models}, | |
| 626 | + journal = {Journal of Real Estate Literature}, | |
| 627 | + year = {2023}, | |
| 628 | + volume = {31}, | |
| 629 | + number = {1}, | |
| 630 | + pages = {1--47}, | |
| 631 | + doi = {10.1080/09277544.2023.2201020} | |
| 632 | +} | |
modified
paper/sections/conclusion.tex
+34 −24
@@ -5,28 +5,38 @@ | ||
| 5 | 5 | |
| 6 | 6 | We ran the hedonic specification debate as a controlled experiment: |
| 7 | 7 | twenty models, four design axes, one attribute set, one scoreboard, two |
| 8 | −holdouts, half a million sales. The verdict inverts the profession's | |
| 9 | −implicit priorities. The choices that consume the most methodological | |
| 10 | −attention --- functional form, transformation parameters --- move | |
| 11 | −out-of-sample accuracy by at most two points of median error, while the | |
| 12 | −choices often made by default --- whether and how finely to absorb space | |
| 13 | −and time --- move it by three to ten. Machine-learning estimators | |
| 14 | −dominate the standard scoreboard, but the standard scoreboard asks the | |
| 15 | −wrong question: when the test set lies in the future, as it always does | |
| 16 | −in deployment, the boosted ensemble's advantage reverses against a | |
| 17 | −spline hedonic with good controls, because most of what it learned was a | |
| 18 | −spatially fine price configuration that does not transfer across the | |
| 19 | −market cycle. | |
| 8 | +holdouts, half a million sales, and a bootstrap interval on every | |
| 9 | +comparison. The verdict inverts the profession's implicit priorities. | |
| 10 | +The choices that consume the most methodological attention---functional | |
| 11 | +form, transformation parameters---move out-of-sample accuracy by at most | |
| 12 | +two points of median error, while the choices often made by | |
| 13 | +default---whether and how to absorb space and time---move it by three to | |
| 14 | +ten, and the way fine spatial effects are implemented matters more than | |
| 15 | +their resolution. Machine-learning estimators dominate the standard | |
| 16 | +scoreboard by three points, a gain that is real, grows with the sample | |
| 17 | +and comes almost entirely from a flexible surface over space. When the | |
| 18 | +test set lies in the future, as it always does in deployment, that gain | |
| 19 | +shrinks to half a point and loses significance, not because the learned | |
| 20 | +surface fails to transfer---re-levelled, it prices future sales as well | |
| 21 | +as it prices contemporaneous ones---but because every frozen model | |
| 22 | +carries a stale price level, and a boosted model carries a slightly | |
| 23 | +staler one than a linear model with carry-forward time effects. | |
| 20 | 24 | |
| 21 | −Meanwhile the objects economists actually harvest from hedonic models | |
| 22 | −prove reassuringly stable: constant-quality indices agree across forms | |
| 23 | −to within a few points over a full boom--bust--recovery cycle, and the | |
| 24 | −machine's implicit age and area gradients replicate the quadratic OLS. | |
| 25 | −The practical synthesis is almost embarrassingly simple: a semi-log with | |
| 26 | −splines, quarter effects, and spatial fixed effects at a granularity | |
| 27 | −matched to market thickness is within two points of the frontier in | |
| 28 | −deployment conditions --- transparent, auditable, and fast. Where the | |
| 29 | −extra accuracy of learning methods is worth its retraining cadence --- | |
| 30 | −high-frequency AVMs, collateral monitoring --- our decomposition says to | |
| 31 | −spend the flexibility budget on the spatial surface, and to validate, | |
| 32 | −always, against the future rather than against a shuffle of the past. | |
| 25 | +The objects economists harvest from hedonic models prove stable along | |
| 26 | +the axis that generates the most debate and less so along the axis that | |
| 27 | +generates the least: constant-quality indices agree across functional | |
| 28 | +forms to within 2.5 points over a full boom--bust--recovery cycle but | |
| 29 | +differ by nine points between a time-dummy index and a boosted | |
| 30 | +imputation index, and the machine's implicit age and area gradients | |
| 31 | +share the shape of the quadratic OLS with a milder depreciation path. | |
| 32 | +The practical synthesis is simple. A semi-log with splines, quarter | |
| 33 | +effects and spatial fixed effects nested from municipality down to a | |
| 34 | +fine grid is within three points of the frontier under random | |
| 35 | +validation and indistinguishable from it in deployment---transparent, | |
| 36 | +auditable and fast. Where the extra within-period accuracy of learning | |
| 37 | +methods is worth a retraining cadence---high-frequency automated | |
| 38 | +valuation, collateral monitoring---our decomposition says to spend the | |
| 39 | +flexibility budget on the spatial surface, to supply the price level | |
| 40 | +from an index or a frequent refit rather than from the model, and to | |
| 41 | +validate, always, against the future rather than against a shuffle of | |
| 42 | +the past. | |
modified
paper/sections/data.tex
+43 −26
@@ -6,37 +6,53 @@ | ||
| 6 | 6 | \subsection{Sources} |
| 7 | 7 | |
| 8 | 8 | We use a registry of 745{,}119 Quebec residential-market transactions |
| 9 | −recorded between January 2021 and July 2026 --- sale price, date, address | |
| 10 | −and coordinates --- each matched at the parcel level to the municipal | |
| 9 | +recorded between January 2021 and July 2026---sale price, date, address | |
| 10 | +and coordinates---each matched at the parcel level to the municipal | |
| 11 | 11 | assessment roll in force at the sale date (median match distance |
| 12 | −0.6~metres, validated against the roll's recorded value). The roll | |
| 13 | −contributes the structural descriptors that are notoriously missing from | |
| 14 | −transaction registries: total floor area, lot area, year of construction, | |
| 15 | −number of dwelling units, number of storeys, physical configuration | |
| 16 | −(detached, semi-detached, row, apartment-linked) and the standardized use | |
| 17 | −code. This combination --- market prices with assessor-grade structure | |
| 18 | −for half a million sales across an entire province --- is what makes a | |
| 19 | −controlled specification race feasible: every model sees exactly the same | |
| 20 | −attributes. | |
| 12 | +0.6~metres, validated against the roll's recorded value). The same | |
| 13 | +snapshot underlies \companionpaper{}. The roll contributes the | |
| 14 | +structural descriptors that are typically missing from transaction | |
| 15 | +registries: total floor area, lot area, year of construction, number of | |
| 16 | +dwelling units, number of storeys, physical configuration (detached, | |
| 17 | +semi-detached, row, apartment-linked) and the standardised use code. | |
| 18 | +This combination---market prices with assessor-grade structure for half a | |
| 19 | +million sales across an entire province---is what makes a controlled | |
| 20 | +specification race feasible: every model sees exactly the same | |
| 21 | +attributes, and the attribute set is the one a mass-appraisal office | |
| 22 | +actually holds. | |
| 21 | 23 | |
| 22 | 24 | \subsection{Sample} |
| 23 | 25 | |
| 24 | 26 | We keep residential use codes (dwellings, cottages, mobile homes), require |
| 25 | −a high-confidence roll match (distance $\le 50$~m, score $\ge 150$), a | |
| 26 | −price of at least \$50{,}000, a plausible floor area (20--2{,}000~m$^2$) | |
| 27 | −and a known year of construction, and trim prices and floor areas at the | |
| 28 | −1st and 99th percentiles within each sale year. The estimation sample | |
| 29 | −contains \textbf{514{,}212 sales}: 348{,}253 single-family homes, 75{,}734 | |
| 30 | −condominiums, 74{,}909 plexes (2--5 units), 10{,}349 cottages and 4{,}881 | |
| 31 | −mobile homes, spread over 1{,}115 municipalities, 5{,}255 grid cells of | |
| 32 | −$\sim$5.5~km and 30{,}548 cells of $\sim$1.1~km. | |
| 33 | −Table~\ref{tab:sumstats} reports the descriptives. Prices average | |
| 34 | −\$462{,}000 (median \$399{,}000); the window covers the tail of the | |
| 35 | −post-pandemic boom, the 2022--2023 rate correction and the subsequent | |
| 36 | −recovery --- a demanding environment for any static price model, which we | |
| 37 | −exploit in the forward-in-time evaluation. | |
| 27 | +a high-confidence roll match (distance $\le 50$~m, match score | |
| 28 | +$\ge 150$), a price of at least \$50{,}000, a plausible floor area | |
| 29 | +(20--2{,}000~m$^2$) and a known year of construction, and trim prices and | |
| 30 | +floor areas at the 1st and 99th percentiles within each sale year. | |
| 31 | +Building age is the sale year minus the year of construction, bounded | |
| 32 | +between 0 and 150; storeys are bounded between 1 and 6 and dwelling units | |
| 33 | +between 1 and 12; lot areas above the 99.5th percentile, which are | |
| 34 | +implausible for residential parcels, are set to zero and treated as | |
| 35 | +units without an exclusive lot, together with condominiums. The | |
| 36 | +estimation sample contains \textbf{514{,}212 sales}: 348{,}253 | |
| 37 | +single-family homes, 75{,}734 condominiums, 74{,}909 plexes (two to five | |
| 38 | +units), 10{,}349 cottages, 4{,}881 mobile homes and 86 dwellings of | |
| 39 | +undetermined class, spread over 1{,}115 municipalities, 5{,}255 grid | |
| 40 | +cells of $\sim$5.5~km and 30{,}548 cells of $\sim$1.1~km. Sales are | |
| 41 | +spread across the window (97{,}868 in 2021, 90{,}733 in 2022, 76{,}411 in | |
| 42 | +2023, 90{,}812 in 2024, 103{,}830 in 2025 and 54{,}558 in January--July | |
| 43 | +2026). Table~\ref{tab:sumstats} reports the descriptive statistics. | |
| 44 | +Prices average \$440{,}207 (median \$397{,}375), floor areas 132~m$^2$ | |
| 45 | +and building ages 44 years; the window covers the tail of the | |
| 46 | +post-pandemic boom, the 2022--23 rate correction and the 2024--26 | |
| 47 | +recovery, during which the constant-quality price level rose by roughly | |
| 48 | +70\% (Section~\ref{sec:ext}). This is a demanding environment for any | |
| 49 | +static price model, which the forward-in-time evaluation exploits. | |
| 50 | +One fifth of the sales (105{,}814) concern a parcel that sells more than | |
| 51 | +once in the window and 30\% share their exact coordinates with another | |
| 52 | +sale; Section~\ref{sec:holdouts} explains why these repeat and | |
| 53 | +co-located sales matter for validation. | |
| 38 | 54 | |
| 39 | −\begin{table}[t] | |
| 55 | +\begin{table}[tbp] | |
| 40 | 56 | \centering |
| 41 | 57 | \begin{threeparttable} |
| 42 | 58 | \caption{Summary statistics, estimation sample} |
@@ -47,7 +63,8 @@ exploit in the forward-in-time evaluation. | ||
| 47 | 63 | \item \textit{Notes:} 514{,}212 residential sales, January 2021 -- July |
| 48 | 64 | 2026. Structural descriptors from the assessment roll in force at the |
| 49 | 65 | sale date. Lot area is zero for condominiums and other units without an |
| 50 | −exclusive lot. | |
| 66 | +exclusive lot (and for the 0.5\% of lots above the 99.5th percentile, | |
| 67 | +see text). | |
| 51 | 68 | \end{tablenotes} |
| 52 | 69 | \end{threeparttable} |
| 53 | 70 | \end{table} |
modified
paper/sections/discussion.tex
+94 −61
@@ -5,77 +5,110 @@ | ||
| 5 | 5 | |
| 6 | 6 | \subsection{A hierarchy of specification choices} |
| 7 | 7 | |
| 8 | −Read jointly, the four axes imply a clear hierarchy of returns to | |
| 9 | −specification effort, useful to anyone building a hedonic model: | |
| 8 | +Read jointly, the four axes imply a hierarchy of returns to | |
| 9 | +specification effort. The first and largest return is to location: | |
| 10 | +any spatial absorption beats none by about ten points of median error, a | |
| 11 | +margin that dwarfs every other choice, and the granularity question is | |
| 12 | +one of implementation rather than of resolution. A fine grid used alone | |
| 13 | +overfits because thin cells are estimated from a handful of sales and | |
| 14 | +unseen cells are priced arbitrarily; the same grid nested within | |
| 15 | +municipalities, which pools thin cells toward their municipality, is the | |
| 16 | +most accurate linear specification we estimate. The second return is to | |
| 17 | +time controls: in a moving market a model without time effects mistakes | |
| 18 | +appreciation for attributes, at a cost of three points under random | |
| 19 | +validation and six when the level must be carried forward, while | |
| 20 | +granularity beyond quarters is cosmetic. The third return is to the | |
| 21 | +estimator, and its size depends on the question asked. Under random | |
| 22 | +validation gradient boosting buys three points over the best linear | |
| 23 | +model, a gain that is statistically unambiguous and that grows with the | |
| 24 | +training sample; in deployment the gain on the median error shrinks to | |
| 25 | +half a point and loses significance, because the ensembles carry a | |
| 26 | +slightly staler price level, while their relative pricing skill is | |
| 27 | +intact. The fourth and smallest return is to functional form: splines | |
| 28 | +are a cheap and reliable upgrade over the semi-log, and the Box--Cox | |
| 29 | +machinery is not worth its complexity, exactly as | |
| 30 | +\citet{cropper1988choice} concluded from simulations four decades ago. | |
| 10 | 31 | |
| 11 | −\begin{enumerate} | |
| 12 | −\item \textbf{Get location right} ($\sim$10 points of median error): | |
| 13 | −any spatial absorption beats none by a margin that dwarfs every other | |
| 14 | −choice; the optimal granularity is interior --- around 5~km here --- | |
| 15 | −because finer cells trade bias for variance. | |
| 16 | −\item \textbf{Include some time control} ($\sim$3 points): in a moving | |
| 17 | −market, a model without time effects mistakes appreciation for | |
| 18 | −attributes; granularity beyond quarters is cosmetic. | |
| 19 | −\item \textbf{Choose the estimator for the job} ($\sim$2 points | |
| 20 | −deployed, $\sim$4 under random validation): boosting buys real accuracy | |
| 21 | −in interpolation-heavy uses (filling gaps within a period, mass | |
| 22 | −appraisal with contemporaneous comparables) and much less when the | |
| 23 | −target is the future. | |
| 24 | −\item \textbf{Stop worrying about functional form} ($\lesssim$2 | |
| 25 | −points): splines are a cheap upgrade; the Box--Cox machinery is not | |
| 26 | −worth its complexity, exactly as \citet{cropper1988choice} concluded | |
| 27 | −from simulations four decades ago. | |
| 28 | −\end{enumerate} | |
| 32 | +\subsection{Why the forward-in-time split compresses the ranking} | |
| 29 | 33 | |
| 30 | −\subsection{Why the machines lose their edge out of time} | |
| 31 | − | |
| 32 | −The decomposition rows explain the generalization gap. The boosting | |
| 33 | −model's random-split advantage comes almost entirely from a flexible | |
| 34 | −spatial surface (removing coordinates costs it 8.8 points). That surface | |
| 35 | −is estimated \emph{jointly} with the time path, and trees clamp: beyond | |
| 36 | −the last training month the model prices 2025--26 sales at a frozen | |
| 37 | −level, exactly like the carry-forward linear models, while its | |
| 38 | −fine-grained spatial fit --- calibrated on the 2021--24 price | |
| 39 | −configuration --- partially decays as relative prices shift. The linear | |
| 40 | −models, coarser but more rigid, carry a structure that transfers better. | |
| 41 | −This is not an indictment of machine learning --- retrained monthly, the | |
| 42 | −boosting model would presumably keep its interpolation advantage --- but | |
| 43 | −it prices the \emph{retraining requirement} that random cross-validation | |
| 44 | −hides, and it matches the practitioner evidence that AVM accuracy decays | |
| 45 | −quickly out of sample period \citep{bogin2020house, kok2017big}. | |
| 34 | +The decomposition of Section~\ref{sec:gap} clarifies what the | |
| 35 | +forward-in-time holdout measures. The boosting model's random-split | |
| 36 | +advantage comes almost entirely from a flexible spatial surface | |
| 37 | +(removing the coordinates costs it 8.8 points), and that surface | |
| 38 | +transfers to 2025--26 sales: re-levelled, the model prices them with a | |
| 39 | +13.9\% median error, against 16.8\% for the spline hedonic. What does | |
| 40 | +not transfer is the aggregate level. Trees are piecewise constant in the | |
| 41 | +month counter and the terminal leaf in time averages the last training | |
| 42 | +months rather than the last one, so a frozen boosted model enters the | |
| 43 | +test period with a slightly staler level than a linear model whose last | |
| 44 | +month effect is carried forward; by mid-2026 both are about 25\% below | |
| 45 | +the market and indistinguishable. The lesson is not that machine | |
| 46 | +learning fails out of sample. It is that the forward-in-time holdout | |
| 47 | +conflates two things---the common level error that any static model | |
| 48 | +incurs, and the relative accuracy the estimator contributes---and that | |
| 49 | +the first dominates the second within a few quarters. Retrained monthly, | |
| 50 | +or re-levelled with a published index as practitioners do | |
| 51 | +\citep{thibodeau2003marking, mayer2019estimation}, the boosted model | |
| 52 | +would presumably keep its interpolation advantage; the forward split | |
| 53 | +prices the \emph{retraining or re-levelling requirement} that random | |
| 54 | +cross-validation hides, and it matches the practitioner evidence that | |
| 55 | +automated-valuation accuracy decays quickly outside the sample period | |
| 56 | +\citep{bogin2020house, kok2017big}. It also explains why our first | |
| 57 | +version, which smeared the linear models but not the ensembles, found a | |
| 58 | +reversal: in a rising market an upward retransformation factor applied | |
| 59 | +to one family only offsets part of that family's staleness. | |
| 46 | 60 | |
| 47 | 61 | \subsection{Implications} |
| 48 | 62 | |
| 49 | −\paragraph{For research.} Hedonic coefficients and indices are robust | |
| 50 | −objects: form and even estimator perturb them little | |
| 51 | −(Section~\ref{sec:ext}). Researchers using hedonics to \emph{measure} | |
| 52 | −--- indices, implicit prices, capitalization effects --- can keep simple | |
| 53 | −forms with good controls and report validation under a temporal split | |
| 54 | −when prediction claims are made. | |
| 63 | +\paragraph{For research.} Hedonic indices are robust to functional form | |
| 64 | +and implicit-price gradients are robust to the estimator in shape, if | |
| 65 | +not in slope (Section~\ref{sec:ext}). Researchers using hedonic models to | |
| 66 | +\emph{measure}---indices, implicit prices, capitalization effects---can | |
| 67 | +keep simple forms with good, preferably hierarchical, spatial controls. | |
| 68 | +When prediction claims are made, they should report a forward-in-time | |
| 69 | +split alongside random cross-validation, and they should report | |
| 70 | +intervals: several of the differences that organise the applied | |
| 71 | +debate---a 5.5~km grid against municipality effects, month against | |
| 72 | +quarter effects, boosting against splines in deployment---are not | |
| 73 | +distinguishable from zero on half a million sales. | |
| 55 | 74 | |
| 56 | 75 | \paragraph{For mass appraisal.} Quebec's assessors face exactly this |
| 57 | −design problem every three years. Our results suggest the largest | |
| 58 | −accuracy gains lie not in exotic estimators but in spatial resolution | |
| 59 | −chosen by market thickness --- and that any model, linear or boosted, | |
| 60 | −frozen at a reference date degrades by 3--7 points of median error | |
| 61 | −within two years. This quantifies the staleness mechanism behind the | |
| 62 | −assessment inequities documented in \companionpaper{}: the | |
| 63 | −valuation technology's out-of-time decay is of the same magnitude as the | |
| 64 | −inequities measured there. | |
| 76 | +design problem every three years. Our results suggest that the largest | |
| 77 | +accuracy gains lie in spatial resolution implemented hierarchically, that | |
| 78 | +flexible learners add a further three points within the period they are | |
| 79 | +estimated on, and that any model, linear or boosted, frozen at a | |
| 80 | +reference date under-prices the typical sale by 10--20\% within eighteen | |
| 81 | +months in a market like 2025--26. This quantifies the staleness | |
| 82 | +mechanism behind the assessment inequities documented in | |
| 83 | +\companionpaper{}: the valuation technology's out-of-time decay is of the | |
| 84 | +same order as the inequities measured there, and it is a level problem | |
| 85 | +that an index adjustment addresses before any change of estimator. | |
| 65 | 86 | |
| 66 | −\paragraph{For the AVM literature.} Every comparison should report a | |
| 67 | −forward-in-time split alongside random cross-validation | |
| 68 | −\citep{steurer2021metrics}. On our data, the choice of split changes not | |
| 69 | −just magnitudes but the \emph{winner}. | |
| 87 | +\paragraph{For the automated-valuation literature.} Every comparison | |
| 88 | +should report a forward-in-time split, a leakage-free grouped split when | |
| 89 | +properties sell repeatedly or share coordinates, and a single | |
| 90 | +retransformation rule applied to all models | |
| 91 | +\citep{steurer2021metrics}. On our data the first changes the size and | |
| 92 | +significance of the headline gap, the second changes nothing, and the | |
| 93 | +third, applied asymmetrically, is enough to manufacture a reversal. | |
| 70 | 94 | |
| 71 | 95 | \subsection{Limitations} |
| 72 | 96 | |
| 73 | 97 | Our attribute set, though assessor-grade, omits listing-level quality |
| 74 | 98 | (renovations, finishes, views); richer features would likely raise the |
| 75 | −machines' interpolation advantage. Hyper-parameters were deliberately | |
| 76 | −conventional --- a tuned boosted model would gain somewhat, as would a | |
| 77 | −spatially smarter linear model (e.g.\ kriging residuals, | |
| 78 | −\citealp{case2004modeling}). The forward split covers one specific | |
| 79 | −regime change (the 2025--26 recovery); other windows would shift | |
| 80 | −magnitudes. And Quebec's institutional homogeneity aids transferability | |
| 81 | −of results across municipalities but may limit it across countries. | |
| 99 | +learners' within-period advantage. Hyper-parameters were deliberately | |
| 100 | +conventional, and Section~\ref{sec:robust} shows that materially | |
| 101 | +different boosting configurations, including one tuned on a time-ordered | |
| 102 | +validation set, leave the ranking unchanged; a spatially smarter linear | |
| 103 | +model (kriged residuals, \citealp{case2004modeling}; semiparametric | |
| 104 | +location surfaces, \citealp{clapp2003semiparametric}) would narrow the | |
| 105 | +gap from the other side and is not estimated here. The forward split | |
| 106 | +covers one specific regime (the 2025--26 recovery), in which prices rose | |
| 107 | +by about 15\% in eighteen months; a flat or falling period would produce | |
| 108 | +a smaller level error and possibly a different ordering of staleness | |
| 109 | +across model families. The grouped holdouts remove leakage through | |
| 110 | +repeat sales and shared coordinates but not through neighbouring parcels | |
| 111 | +in the same street, which a spatially blocked holdout would address at | |
| 112 | +the cost of changing the question to spatial extrapolation. Finally, | |
| 113 | +Quebec's institutional homogeneity aids transferability of results | |
| 114 | +across municipalities but may limit it across countries. | |
modified
paper/sections/extensions.tex
+90 −61
Large diff (199 lines) is not loaded by default to keep the page fast.Load diff
modified
paper/sections/introduction.tex
+96 −68
Large diff (183 lines) is not loaded by default to keep the page fast.Load diff
modified
paper/sections/literature.tex
+92 −50
Large diff (154 lines) is not loaded by default to keep the page fast.Load diff
modified
paper/sections/methodology.tex
+264 −70
Large diff (344 lines) is not loaded by default to keep the page fast.Load diff
modified
paper/sections/results.tex
+282 −86
Large diff (441 lines) is not loaded by default to keep the page fast.Load diff
added
paper/sections/robustness.tex
+216 −0
Large diff (216 lines) is not loaded by default to keep the page fast.Load diff
added
results/reproduced/boxcox_fine.csv
+22 −0
Large diff (22 lines) is not loaded by default to keep the page fast.Load diff
added
results/reproduced/by_quarter.csv
+36 −0
Large diff (36 lines) is not loaded by default to keep the page fast.Load diff
added
results/reproduced/hgb_sensitivity.csv
+11 −0
Large diff (11 lines) is not loaded by default to keep the page fast.Load diff
added
results/reproduced/horserace_group_coord.csv
+21 −0
Large diff (21 lines) is not loaded by default to keep the page fast.Load diff
added
results/reproduced/horserace_group_parcel.csv
+21 −0
Large diff (21 lines) is not loaded by default to keep the page fast.Load diff
modified
results/reproduced/horserace_random.csv
+21 −21
Large diff (42 lines) is not loaded by default to keep the page fast.Load diff
modified
results/reproduced/horserace_temporal.csv
+21 −21
Large diff (42 lines) is not loaded by default to keep the page fast.Load diff
added
results/reproduced/inference_random.csv
+21 −0
Large diff (21 lines) is not loaded by default to keep the page fast.Load diff
added
results/reproduced/inference_temporal.csv
+21 −0
Large diff (21 lines) is not loaded by default to keep the page fast.Load diff
added
results/reproduced/leakage.csv
+37 −0
Large diff (37 lines) is not loaded by default to keep the page fast.Load diff
modified
results/reproduced/learning.csv
+6 −6
Large diff (19 lines) is not loaded by default to keep the page fast.Load diff
added
results/reproduced/nested_fe.csv
+5 −0
Large diff (5 lines) is not loaded by default to keep the page fast.Load diff
added
results/reproduced/pairs.csv
+27 −0
Large diff (27 lines) is not loaded by default to keep the page fast.Load diff
added
results/reproduced/relevel.csv
+41 −0
Large diff (41 lines) is not loaded by default to keep the page fast.Load diff
added
results/reproduced/same_period.csv
+21 −0
Large diff (21 lines) is not loaded by default to keep the page fast.Load diff
modified
results/reproduced/segments.csv
+7 −7
Large diff (22 lines) is not loaded by default to keep the page fast.Load diff
added
results/tables/by_quarter.tex
+13 −0
Large diff (14 lines) is not loaded by default to keep the page fast.Load diff
modified
results/tables/generalization.tex
+5 −5
Large diff (16 lines) is not loaded by default to keep the page fast.Load diff
added
results/tables/group_splits.tex
+34 −0
Large diff (35 lines) is not loaded by default to keep the page fast.Load diff
added
results/tables/hgb_sensitivity.tex
+13 −0
Large diff (14 lines) is not loaded by default to keep the page fast.Load diff
modified
results/tables/horserace_random.tex
+18 −18
Large diff (49 lines) is not loaded by default to keep the page fast.Load diff
modified
results/tables/horserace_temporal.tex
+18 −18
Large diff (50 lines) is not loaded by default to keep the page fast.Load diff
added
results/tables/inference.tex
+32 −0
Large diff (33 lines) is not loaded by default to keep the page fast.Load diff
added
results/tables/leakage.tex
+21 −0
Large diff (22 lines) is not loaded by default to keep the page fast.Load diff
modified
results/tables/learning.tex
+6 −6
Large diff (18 lines) is not loaded by default to keep the page fast.Load diff
added
results/tables/nested_fe.tex
+13 −0
Large diff (14 lines) is not loaded by default to keep the page fast.Load diff
added
results/tables/pairs.tex
+21 −0
Large diff (22 lines) is not loaded by default to keep the page fast.Load diff
added
results/tables/retransformation.tex
+18 −0
Large diff (19 lines) is not loaded by default to keep the page fast.Load diff
added
results/tables/same_period.tex
+21 −0
Large diff (22 lines) is not loaded by default to keep the page fast.Load diff
modified
results/tables/segments.tex
+7 −7
Large diff (20 lines) is not loaded by default to keep the page fast.Load diff
modified
scripts/02_horserace.py
+7 −2
Large diff (22 lines) is not loaded by default to keep the page fast.Load diff
modified
scripts/04_make_figures.py
+33 −0
Large diff (45 lines) is not loaded by default to keep the page fast.Load diff
modified
scripts/05_make_tables.py
+306 −0
Large diff (318 lines) is not loaded by default to keep the page fast.Load diff
added
scripts/06_robustness.py
+274 −0
Large diff (274 lines) is not loaded by default to keep the page fast.Load diff
added
src/wp11/inference.py
+95 −0
Large diff (95 lines) is not loaded by default to keep the page fast.Load diff
modified
src/wp11/models.py
+220 −43
Large diff (348 lines) is not loaded by default to keep the page fast.Load diff
modified
src/wp11/sample.py
+8 −2
Large diff (23 lines) is not loaded by default to keep the page fast.Load diff