SPB Git forge

spb/wp1_uqo

Public
3commits 1branches 1releases
2.6 MBsize
maindefault branch
26 min agolast push
TeX 52% Python 47.9%
8.5 KB · 161 lines markdown
Rendered Raw Blame History
1<!-- Author: Simon-Pierre Boucher — simon-pierre.boucher@uqo.ca -->2# 🏡 Heterogeneous Amenity Capitalization in the Quebec Residential Market34**UQO Working Paper No. 1** — *A Spatial Quantile Regression Approach*56[![Paper](https://img.shields.io/badge/paper-PDF%20(49%20p.)-b31b1b?logo=latex&logoColor=white)](paper/main.pdf)7[![Python](https://img.shields.io/badge/python-3.11%2B-3776AB?logo=python&logoColor=white)](requirements.txt)8[![Data](https://img.shields.io/badge/data-42%2C481%20Centris%20listings%20·%20JSON-4051b5)](data/raw/README.md)9[![Reproducible](https://img.shields.io/badge/reproducible-end--to--end%20pipeline-2e7d32)](scripts/)10[![Institution](https://img.shields.io/badge/UQO-D%C3%A9pt.%20des%20sciences%20administratives-16365c)](https://uqo.ca)11[![Author](https://img.shields.io/badge/author-Simon--Pierre%20Boucher-16365c)](mailto:simon-pierre.boucher@uqo.ca)1213> **TL;DR** — Do neighbourhood amenities capitalize into house prices the same way at the bottom and at the top of the14> price distribution? Using 42,481 Centris listings in four segments (houses, condos, plexes, land), we estimate quantile15> regressions at τ ∈ {.10, .25, .50, .75, .90} augmented with an instrumented spatial lag (two-stage spatial quantile16> regression, 2SQR). Coefficient homogeneity across quantiles is rejected (omnibus χ²(7) = 35.7, p < 0.001 for houses):17> park proximity is worth +8.7% at the 10th percentile and nothing at the 90th; hospital proximity is a −8.2% discount at18> the bottom and vanishes at the top. The spatial lag ρ is positive and significant in every segment (Moran's I on OLS19> residuals 0.44–0.55). First multi-segment spatial quantile analysis of amenity capitalization for Quebec.2021---2223## 📌 Status2425| Item | Value |26|---|---|27| Version | 1.0 (May 2026) |28| SSRN | not yet submitted |29| Journal | — |30| Code & data | reproducible from `scripts/`; the Centris snapshot is not redistributed (see `data/raw/README.md`) |3132## 🎯 What this paper does3334Standard hedonic models estimated by OLS impose a single implicit price for every attribute, whatever the price segment.35This paper asks whether the capitalization of neighbourhood amenities (hospitals, parks, transit, schools, shopping) varies36along the conditional price distribution of Quebec residential listings, and whether that heterogeneity survives once37spatial dependence is taken into account.3839```40Q_τ(ln P_i | X_i, W ln P) = α(τ) + ρ(τ) · [W ln P]_i + X_i'β(τ)       τ ∈ {.10, .25, .50, .75, .90}41```4243The spatial lag `W ln P` is instrumented by spatially lagged covariates (Kim & Muller, 2004), standard errors are44bootstrapped (200 replications), inter-quantile Wald tests probe β(τ_low) = β(τ_high), and Moran's I on residuals45diagnoses remaining spatial autocorrelation. The analysis is run separately for single-family houses, condominiums,46multiplexes and vacant land.4748## 🏆 Headline results4950| Object | Estimate |51|---|---|52| Omnibus Wald test of coefficient homogeneity (houses) | χ²(7) = 35.74, p < 0.001 |53| Hospital proximity, τ = .10 → .90 | −0.082 (sig.) → positive, insignificant |54| Park proximity, τ = .10 → .90 | +0.087 (p < 0.001) → −0.044 (n.s.) |55| Transit proximity, τ = .10 → .90 | +0.074 → −0.008 |56| Spatial lag ρ (τ = .50) | 0.29 (houses), 0.20 (condos); positive and significant in all segments |57| Moran's I on OLS residuals | 0.44 – 0.55 across segments |58| First-stage F-statistics | > 100 in every segment |5960Interpretation: listing prices and cross-sectional variation only, so coefficients are quantile-specific capitalization61gradients, not causal effects.6263## 🗂 Repository layout6465```66amenity-capitalization-spatial-quantile/67├── data/68│   ├── raw/                  # Centris JSON snapshot (see data/raw/README.md) — not committed69│   └── processed/70├── scripts/                  # the pipeline, in order71│   ├── 01_hedonic_ols_v1.py          # baseline log-linear OLS, single-family subset72│   ├── 02_hedonic_ols_v2.py          # quadratic terms, surface selection correction, spatial interactions73│   ├── 03_hedonic_ols_final.py       # final OLS specification (centred variables, HC3)74│   ├── 04_quantile_spatial_hedonic.py # QR + instrumented spatial lag, Moran, Wald (houses)75│   └── 05_sqr_multi_segment.py       # full multi-segment 2SQR with bootstrap, figures, tables (the paper)76├── results/77│   └── sqr_multi_segment_output.txt  # complete console output of step 0578├── figures/                  # fig2_wtp_by_quantile.png (others regenerated by step 05)79└── paper/                    # main.tex + sections/ + tables/ → main.pdf80```8182## 🚀 Quick start8384```bash85python3 -m pip install -r requirements.txt86# put the Centris JSON snapshot in data/raw/, then:87python3 scripts/03_hedonic_ols_final.py                       # OLS benchmark88python3 scripts/05_sqr_multi_segment.py data/raw/house_listings_1767845793472.json   # 2SQR, 4 segments, figures fig1–fig7, LaTeX tables89cd paper && make                                              # latexmk → main.pdf90```9192Runtime ≈ 15 minutes on an Apple-silicon laptop (bootstrap 200 × 5 quantiles × 4 segments).9394## 🗃 Data959642,481 Centris listings (Quebec, May 2026) with asking price, structural characteristics, coordinates and distances to97amenities; four segments. Listings with missing price, area or coordinates are dropped; prices are winsorized at 1/99%.98Details and access conditions in `data/raw/README.md`.99100## 🔬 Methodology1011021. **OLS hedonic benchmark** (log-linear, HC3) — `scripts/03_hedonic_ols_final.py`.1032. **Quantile regression** (Koenker & Bassett, 1978) at five quantiles — `scripts/04_…`, `scripts/05_…`.1043. **Two-stage spatial quantile regression**: spatial lag of log price built from a k-nearest-neighbour weight matrix,105   instrumented by lagged covariates (Kim & Muller, 2004) — `scripts/05_sqr_multi_segment.py`.1064. **Inference**: 200-replication bootstrap standard errors; inter-quantile Wald tests; Moran's I on residuals;107   sensitivity to k (number of neighbours).1085. **Willingness-to-pay** by quantile, direct/indirect effects at τ = .50.109110## 🖼 Figures & tables inventory111112| Figure | Content |113|---|---|114| `fig1_coef_plots_amenities` | amenity coefficients across quantiles, by segment |115| `fig2_wtp_by_quantile` | willingness to pay by quantile |116| `fig3_ols_vs_qr_vs_sqr` | OLS vs QR vs 2SQR coefficients |117| `fig4_pseudo_r2` | pseudo-R² by quantile |118| `fig5_spatial_lag_rho` | spatial lag ρ(τ) |119| `fig6_price_distributions` | price distributions by segment |120| `fig7_wald_heatmap` | inter-quantile Wald tests |121122Tables (`paper/tables/*.tex`): sample, variables, descriptives (houses / other segments), specification, QR houses,123SQR ρ, first stage, Moran (OLS / SQR), Wald, WTP, effects, amenity correlations, sensitivity to k.124125## ⚠️ Limitations126127- Listing (asking) prices, not transaction prices; cross-section only.128- Amenity distances are straight-line; no quality adjustment of amenities.129- Spatial weights based on k nearest neighbours; results are checked for k but not for alternative kernels.130- Quantile-specific coefficients are capitalization gradients, not causal effects.131132## 📝 Citation133134```bibtex135@techreport{boucher2026amenity,136  author      = {Boucher, Simon-Pierre},137  title       = {Heterogeneous Amenity Capitalization in the Quebec Residential Market: A Spatial Quantile Regression Approach},138  institution = {Universit\'e du Qu\'ebec en Outaouais, D\'epartement des sciences administratives},139  type        = {Working Paper},140  number      = {1},141  year        = {2026},142  month       = {May}143}144```145146## 👤 Author & contact147148**Simon-Pierre Boucher** — Département des sciences administratives,149Université du Québec en Outaouais (UQO), Gatineau, QC.150📧 [simon-pierre.boucher@uqo.ca](mailto:simon-pierre.boucher@uqo.ca)151152## 🗒 Notes153154- Bibliography is an inline `thebibliography` (`paper/sections/references.tex`, 103 entries), not a `.bib` file —155  kept as is (deviation from `Recherche-UQO/HARMONISATION.md` §3).156- Figures 1 and 3–7 are not stored in the repository; `paper/main.tex` prints a placeholder box for a missing figure.157  Run `scripts/05_sqr_multi_segment.py` with the data snapshot and copy the PNGs to `paper/figures/` to restore them.158- The original flat LaTeX draft (`paper_sqr_hedonic.tex`, May 2026) is archived in159  `Recherche-UQO/_archives/versions-mai-2026/amenity-capitalization--flat-tex-20260519/`.160- Cover date corrected from "May 2025" (typo) to May 2026 during the 2026-10-17 harmonisation.161