🏡 Heterogeneous Amenity Capitalization in the Quebec Residential Market
UQO Working Paper No. 1 — A Spatial Quantile Regression Approach
TL;DR — Do neighbourhood amenities capitalize into house prices the same way at the bottom and at the top of the price distribution? Using 42,481 Centris listings in four segments (houses, condos, plexes, land), we estimate quantile regressions at τ ∈ {.10, .25, .50, .75, .90} augmented with an instrumented spatial lag (two-stage spatial quantile regression, 2SQR). Coefficient homogeneity across quantiles is rejected (omnibus χ²(7) = 35.7, p < 0.001 for houses): park proximity is worth +8.7% at the 10th percentile and nothing at the 90th; hospital proximity is a −8.2% discount at the bottom and vanishes at the top. The spatial lag ρ is positive and significant in every segment (Moran's I on OLS residuals 0.44–0.55). First multi-segment spatial quantile analysis of amenity capitalization for Quebec.
📌 Status
| Item | Value |
|---|---|
| Version | 1.0 (May 2026) |
| SSRN | not yet submitted |
| Journal | — |
| Code & data | reproducible from scripts/; the Centris snapshot is not redistributed (see data/raw/README.md) |
🎯 What this paper does
Standard hedonic models estimated by OLS impose a single implicit price for every attribute, whatever the price segment. This paper asks whether the capitalization of neighbourhood amenities (hospitals, parks, transit, schools, shopping) varies along the conditional price distribution of Quebec residential listings, and whether that heterogeneity survives once spatial dependence is taken into account.
Q_τ(ln P_i | X_i, W ln P) = α(τ) + ρ(τ) · [W ln P]_i + X_i'β(τ) τ ∈ {.10, .25, .50, .75, .90}The spatial lag W ln P is instrumented by spatially lagged covariates (Kim & Muller, 2004), standard errors are
bootstrapped (200 replications), inter-quantile Wald tests probe β(τ_low) = β(τ_high), and Moran's I on residuals
diagnoses remaining spatial autocorrelation. The analysis is run separately for single-family houses, condominiums,
multiplexes and vacant land.
🏆 Headline results
| Object | Estimate |
|---|---|
| Omnibus Wald test of coefficient homogeneity (houses) | χ²(7) = 35.74, p < 0.001 |
| Hospital proximity, τ = .10 → .90 | −0.082 (sig.) → positive, insignificant |
| Park proximity, τ = .10 → .90 | +0.087 (p < 0.001) → −0.044 (n.s.) |
| Transit proximity, τ = .10 → .90 | +0.074 → −0.008 |
| Spatial lag ρ (τ = .50) | 0.29 (houses), 0.20 (condos); positive and significant in all segments |
| Moran's I on OLS residuals | 0.44 – 0.55 across segments |
| First-stage F-statistics | > 100 in every segment |
Interpretation: listing prices and cross-sectional variation only, so coefficients are quantile-specific capitalization gradients, not causal effects.
🗂 Repository layout
amenity-capitalization-spatial-quantile/
├── data/
│ ├── raw/ # Centris JSON snapshot (see data/raw/README.md) — not committed
│ └── processed/
├── scripts/ # the pipeline, in order
│ ├── 01_hedonic_ols_v1.py # baseline log-linear OLS, single-family subset
│ ├── 02_hedonic_ols_v2.py # quadratic terms, surface selection correction, spatial interactions
│ ├── 03_hedonic_ols_final.py # final OLS specification (centred variables, HC3)
│ ├── 04_quantile_spatial_hedonic.py # QR + instrumented spatial lag, Moran, Wald (houses)
│ └── 05_sqr_multi_segment.py # full multi-segment 2SQR with bootstrap, figures, tables (the paper)
├── results/
│ └── sqr_multi_segment_output.txt # complete console output of step 05
├── figures/ # fig2_wtp_by_quantile.png (others regenerated by step 05)
└── paper/ # main.tex + sections/ + tables/ → main.pdf🚀 Quick start
python3 -m pip install -r requirements.txt
# put the Centris JSON snapshot in data/raw/, then:
python3 scripts/03_hedonic_ols_final.py # OLS benchmark
python3 scripts/05_sqr_multi_segment.py data/raw/house_listings_1767845793472.json # 2SQR, 4 segments, figures fig1–fig7, LaTeX tables
cd paper && make # latexmk → main.pdfRuntime ≈ 15 minutes on an Apple-silicon laptop (bootstrap 200 × 5 quantiles × 4 segments).
🗃 Data
42,481 Centris listings (Quebec, May 2026) with asking price, structural characteristics, coordinates and distances to
amenities; four segments. Listings with missing price, area or coordinates are dropped; prices are winsorized at 1/99%.
Details and access conditions in data/raw/README.md.
🔬 Methodology
- OLS hedonic benchmark (log-linear, HC3) —
scripts/03_hedonic_ols_final.py. - Quantile regression (Koenker & Bassett, 1978) at five quantiles —
scripts/04_…,scripts/05_…. - Two-stage spatial quantile regression: spatial lag of log price built from a k-nearest-neighbour weight matrix,
instrumented by lagged covariates (Kim & Muller, 2004) —
scripts/05_sqr_multi_segment.py. - Inference: 200-replication bootstrap standard errors; inter-quantile Wald tests; Moran's I on residuals; sensitivity to k (number of neighbours).
- Willingness-to-pay by quantile, direct/indirect effects at τ = .50.
🖼 Figures & tables inventory
| Figure | Content |
|---|---|
fig1_coef_plots_amenities |
amenity coefficients across quantiles, by segment |
fig2_wtp_by_quantile |
willingness to pay by quantile |
fig3_ols_vs_qr_vs_sqr |
OLS vs QR vs 2SQR coefficients |
fig4_pseudo_r2 |
pseudo-R² by quantile |
fig5_spatial_lag_rho |
spatial lag ρ(τ) |
fig6_price_distributions |
price distributions by segment |
fig7_wald_heatmap |
inter-quantile Wald tests |
Tables (paper/tables/*.tex): sample, variables, descriptives (houses / other segments), specification, QR houses,
SQR ρ, first stage, Moran (OLS / SQR), Wald, WTP, effects, amenity correlations, sensitivity to k.
⚠️ Limitations
- Listing (asking) prices, not transaction prices; cross-section only.
- Amenity distances are straight-line; no quality adjustment of amenities.
- Spatial weights based on k nearest neighbours; results are checked for k but not for alternative kernels.
- Quantile-specific coefficients are capitalization gradients, not causal effects.
📝 Citation
@techreport{boucher2026amenity,
author = {Boucher, Simon-Pierre},
title = {Heterogeneous Amenity Capitalization in the Quebec Residential Market: A Spatial Quantile Regression Approach},
institution = {Universit\'e du Qu\'ebec en Outaouais, D\'epartement des sciences administratives},
type = {Working Paper},
number = {1},
year = {2026},
month = {May}
}👤 Author & contact
Simon-Pierre Boucher — Département des sciences administratives, Université du Québec en Outaouais (UQO), Gatineau, QC. 📧 simon-pierre.boucher@uqo.ca
🗒 Notes
- Bibliography is an inline
thebibliography(paper/sections/references.tex, 103 entries), not a.bibfile — kept as is (deviation fromRecherche-UQO/HARMONISATION.md§3). - Figures 1 and 3–7 are not stored in the repository;
paper/main.texprints a placeholder box for a missing figure. Runscripts/05_sqr_multi_segment.pywith the data snapshot and copy the PNGs topaper/figures/to restore them. - The original flat LaTeX draft (
paper_sqr_hedonic.tex, May 2026) is archived inRecherche-UQO/_archives/versions-mai-2026/amenity-capitalization--flat-tex-20260519/. - Cover date corrected from "May 2025" (typo) to May 2026 during the 2026-10-17 harmonisation.