# 🏑 Heterogeneous Amenity Capitalization in the Quebec Residential Market **UQO Working Paper No. 1** β€” *A Spatial Quantile Regression Approach* [![Paper](https://img.shields.io/badge/paper-PDF%20(49%20p.)-b31b1b?logo=latex&logoColor=white)](paper/main.pdf) [![Python](https://img.shields.io/badge/python-3.11%2B-3776AB?logo=python&logoColor=white)](requirements.txt) [![Data](https://img.shields.io/badge/data-42%2C481%20Centris%20listings%20Β·%20JSON-4051b5)](data/raw/README.md) [![Reproducible](https://img.shields.io/badge/reproducible-end--to--end%20pipeline-2e7d32)](scripts/) [![Institution](https://img.shields.io/badge/UQO-D%C3%A9pt.%20des%20sciences%20administratives-16365c)](https://uqo.ca) [![Author](https://img.shields.io/badge/author-Simon--Pierre%20Boucher-16365c)](mailto:simon-pierre.boucher@uqo.ca) > **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 ```bash 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.pdf ``` Runtime β‰ˆ 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 1. **OLS hedonic benchmark** (log-linear, HC3) β€” `scripts/03_hedonic_ols_final.py`. 2. **Quantile regression** (Koenker & Bassett, 1978) at five quantiles β€” `scripts/04_…`, `scripts/05_…`. 3. **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`. 4. **Inference**: 200-replication bootstrap standard errors; inter-quantile Wald tests; Moran's I on residuals; sensitivity to k (number of neighbours). 5. **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 ```bibtex @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](mailto:simon-pierre.boucher@uqo.ca) ## πŸ—’ Notes - Bibliography is an inline `thebibliography` (`paper/sections/references.tex`, 103 entries), not a `.bib` file β€” kept as is (deviation from `Recherche-UQO/HARMONISATION.md` Β§3). - Figures 1 and 3–7 are not stored in the repository; `paper/main.tex` prints a placeholder box for a missing figure. Run `scripts/05_sqr_multi_segment.py` with the data snapshot and copy the PNGs to `paper/figures/` to restore them. - The original flat LaTeX draft (`paper_sqr_hedonic.tex`, May 2026) is archived in `Recherche-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.