UQO Working Papers · WP03 · v1.2
Hedonic Housing Price Models for the United States: A Multi-Method Comparison of Parametric, Quantile, and Machine Learning Approaches
- Year
- 2026
- First release
- October 2026
- Latest revision
- October 2026
- Publication status
- Working paper
The machine-learning advantage does not survive unseen housing markets
On 788,842 U.S. listings XGBoost scores R² = 0.833 under a random split but 0.425 under a ten-state holdout; cluster-robust standard errors are 8–12 times the HC3 errors and leave only 33 of 63 OLS coefficients significant.
Abstract
This paper compares econometric and machine-learning approaches to hedonic housing valuation on 788,842 active Zillow listings covering all 50 U.S. states and the District of Columbia, and asks how much of the machine-learning advantage survives when models must price homes in markets they have not seen. A semi-log OLS model with 62 regressors (R² = 0.634) yields listing-price gradients consistent with the hedonic literature; ZIP3 fixed effects raise out-of-sample R² to 0.725 and residual Moran's I = 0.27 shows strong spatial dependence. Allowing for that dependence matters: cluster-robust standard errors are, on median, 8 (ZIP3) to 12 (state) times the HC3 errors, and only 33 of 63 coefficients remain significant under state clustering.
State-by-state estimation shows that the pooled coefficients average markedly different local price functions (living-area elasticities from 0.06 to 1.15) and that a fully interacted model gains 6.1 points of out-of-sample R² over state fixed effects. Quantile regression reveals distributional heterogeneity, with paired cluster-bootstrap Wald tests rejecting equality of the 10th- and 90th-percentile coefficients for 10 of 13 key attributes. XGBoost reaches R² = 0.833 under random validation but 0.425 under a ten-state holdout and a median of 0.653 across 51 leave-one-state-out models; once 0.6% of corrupt records are removed, OLS is as accurate out of state (0.539) as the best tree ensemble.
The gap is traced to the prediction of market price levels rather than within-market structure (within-state R² = 0.62), to region dummies and to neighbourhood variables that are state-median imputations for 93% of listings, and to boosting capacity: held-out-state accuracy peaks after 75 rounds and declines thereafter while within-training accuracy keeps rising. SHAP rankings are stable across ensembles (ρ > 0.89), and the third-ranked feature is a state identifier. A coding error that set ln(lot) to zero for 16.5% of listings is corrected (lot elasticity 0.095, not 0.018). Estimates are interpreted throughout as conditional associations in asking prices, not willingness-to-pay parameters.
Key findings
788,842
active Zillow listings, 50 states and DC
0.833 vs 0.425
XGBoost R², random split versus ten-state holdout
0.539
OLS R² out of state after removing corrupt records
33 of 63
OLS coefficients significant under state clustering
0.06–1.15
living-area elasticity across state-by-state regressions
93%
listings whose school variables are state-median imputations
Scientific contributions
- Spatial leakage quantified on national data
- A 10-state holdout, grouped 5-fold cross-validation by state (pooled R² 0.620), leave-one-state-out (median 0.653) and a size-matched random split (0.829) separate the effect of unseen markets from sample size.
- The collapse is a level error, not a structure error
- Within-state R² is a stable 0.62 across specifications; the out-of-market loss comes from memorised state price levels through region dummies, tax rates and imputed neighbourhood variables.
- Boosting capacity overfits geography
- Held-out-state R² peaks at 0.550 after 75 rounds and falls to 0.425 at 1,000 while within-training accuracy keeps rising, so standard early stopping on a random subset selects an over-fitted model.
- Cluster-robust inference changes the gradients' precision
- ZIP3- and state-clustered standard errors are 7.6 and 11.6 times the HC3 errors on median; significant coefficients fall from 57 to 35 and 33 of 63.
- One national function hides 51 local ones
- State-by-state OLS gives living-area elasticities of 0.06–1.15 and sign reversals for bedrooms, pools, luxury and HOA in 19–23 states; the fully interacted model gains 6.1 points of out-of-sample R².
- Distributional heterogeneity confirmed under clustering
- The garage gradient is ten times larger at the 10th than at the 90th percentile and the pool premium emerges only above the median; 10 of 13 inter-quantile differences survive a paired ZIP3-cluster bootstrap.
Methodology
Methodology (4)
Semi-log OLS with a spatial fixed-effects ladder
62 regressors with region dummies, then state and 885 ZIP3 fixed effects; HC3, ZIP3-clustered and state-clustered standard errors; Halvorsen–Palmquist and Kennedy corrections for dummies; 51 state-by-state regressions and a fully interacted model.
Quantile regression with paired cluster bootstrap
Conditional quantiles at τ = 0.10 to 0.90 on a 150,000-listing subsample; inter-quantile Wald tests with 200 paired observation and ZIP3-cluster bootstrap draws.
Gradient boosting under two validation designs
XGBoost, LightGBM and random forest evaluated under a random 80/20 split, a ten-state holdout, grouped 5-fold cross-validation by state and leave-one-state-out; R² decomposed into level and within-state components; boosting-round curves.
Spatial diagnostics and feature audit
Moran's I on OLS and tree-ensemble residuals (0.263 versus 0.079 for XGBoost), feature-block ablation, SHAP rankings across ensembles, and an audit of missingness and implausible values (ln lot = 0 for 130,271 listings).
Research data
- Zillow active listings
- 788,842 listings covering all 50 states and DC, drawn from a 839,313-row DuckDB extract with 116 fields; 62 regressors spanning structure, lot, amenities, neighbourhood and market blocks; 885 ZIP3 areas; list-to-Zestimate ratio median 1.020 for the 55% of listings with a Zestimate.
Reproducibility
- Eight numbered Python scripts from stored artifacts: spatial robustness, quantile regression and imputation, figures, tables, and four revision scripts (geo validation, inference, QR bootstrap, tables and figures)
- Published R² values 0.4250 (ten-state holdout) and 0.8327 (random) reproduced exactly from src/wp3/models.py
- 14 figures and 19 generated LaTeX table fragments; 18 revision CSVs in results/revision/
- Full LaTeX source of the 82-page paper; pre-revision PDF, review report and changelog archived in docs/
Research artifacts
Version history
| Version | Date | Description | File |
|---|---|---|---|
| v1.2current | October 2026 | Current manuscript as published on www.spboucher.ai (revised edition after the 2026-10-17 scientific review for papers 1–17). | PDF · 82 p. |