| |
1 | +% Author: Simon-Pierre Boucher — contact@spboucher.ai |
| |
2 | +% ============================================================================ |
| |
3 | +% UQO Working Paper No. 11 |
| |
4 | +% Half a Million Prices, Twenty Models |
| |
5 | +% |
| |
6 | +% Build: latexmk -pdf main.tex (or `make` in this directory) |
| |
7 | +% Figures are read from ../figures/, tables from ../results/tables/. |
| |
8 | +% ============================================================================ |
| |
9 | +\documentclass[12pt,letterpaper]{article} |
| |
10 | + |
| |
11 | +\usepackage[utf8]{inputenc} |
| |
12 | +\usepackage[T1]{fontenc} |
| |
13 | +\usepackage[english]{babel} |
| |
14 | + |
| |
15 | +\usepackage[letterpaper,margin=1in]{geometry} |
| |
16 | +\usepackage{setspace} |
| |
17 | +\onehalfspacing |
| |
18 | + |
| |
19 | +\usepackage{mathptmx} |
| |
20 | +\usepackage{microtype} |
| |
21 | + |
| |
22 | +\usepackage{amsmath,amssymb,amsthm} |
| |
23 | + |
| |
24 | +\usepackage{booktabs} |
| |
25 | +\usepackage{threeparttable} |
| |
26 | +\usepackage{makecell} |
| |
27 | + |
| |
28 | +\usepackage{graphicx} |
| |
29 | +\usepackage{subcaption} |
| |
30 | +\graphicspath{{../figures/}{./}} |
| |
31 | + |
| |
32 | +\usepackage[font=small,labelfont=bf,labelsep=period,justification=justified,singlelinecheck=false]{caption} |
| |
33 | + |
| |
34 | +\usepackage[dvipsnames]{xcolor} |
| |
35 | +\usepackage[colorlinks=true,linkcolor=NavyBlue,citecolor=NavyBlue,urlcolor=NavyBlue,breaklinks=true]{hyperref} |
| |
36 | + |
| |
37 | +\usepackage[authoryear,round,semicolon]{natbib} |
| |
38 | +\bibliographystyle{aer} |
| |
39 | + |
| |
40 | +\usepackage{titlesec} |
| |
41 | +\titleformat{\section}{\large\bfseries}{\thesection.}{0.5em}{} |
| |
42 | +\titleformat{\subsection}{\normalsize\bfseries}{\thesubsection.}{0.5em}{} |
| |
43 | +\titleformat{\subsubsection}{\normalsize\itshape}{\thesubsubsection.}{0.5em}{} |
| |
44 | +\usepackage{fancyhdr} |
| |
45 | +\pagestyle{fancy}\fancyhf{} |
| |
46 | +\renewcommand{\headrulewidth}{0pt} |
| |
47 | +\fancyfoot[C]{\thepage} |
| |
48 | +\usepackage{enumitem} |
| |
49 | +\setlist{nosep,leftmargin=*} |
| |
50 | + |
| |
51 | +% ============================================================================ |
| |
52 | +% METADATA |
| |
53 | +% ============================================================================ |
| |
54 | +\newcommand{\WPnumber}{11} |
| |
55 | +\newcommand{\WPtitle}{Half a Million Prices, Twenty Models} |
| |
56 | +\newcommand{\WPsubtitle}{A Systematic Assessment of Hedonic Specifications and |
| |
57 | + 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} |
| |
61 | +\newcommand{\WPjel}{R31, C21, C52, C53} |
| |
62 | + |
| |
63 | +\newcommand{\WPauthor}{Simon-Pierre Boucher} |
| |
64 | +\newcommand{\WPaffiliation}{D\'epartement des sciences administratives\\ |
| |
65 | + Universit\'e du Qu\'ebec en Outaouais} |
| |
66 | +\newcommand{\WPemail}{simon-pierre.boucher@uqo.ca} |
| |
67 | +\newcommand{\WPaddress}{Gatineau -- Pavillon Alexandre-Tach\'e\\ |
| |
68 | + 283, boulevard Alexandre-Tach\'e\\ Gatineau, Qu\'ebec, Canada J9A 1L8} |
| |
69 | + |
| |
70 | +\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 |
| |
75 | +(2021--2026) whose structural descriptors come from the provincial |
| |
76 | +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.} |
| |
99 | + |
| |
100 | +\hypersetup{pdftitle={Half a Million Prices, Twenty Models}, pdfauthor={}} |
| |
101 | + |
| |
102 | +% Self-reference neutralised in the anonymous version (main_anon.tex) |
| |
103 | +\newcommand{\companionpaper}{a companion paper by the same authors (reference withheld for review)} |
| |
104 | + |
| |
105 | +\begin{document} |
| |
106 | + |
| |
107 | +\input{sections/titlepage_anon} |
| |
108 | + |
| |
109 | +\setcounter{page}{1} |
| |
110 | +\input{sections/introduction} |
| |
111 | +\input{sections/literature} |
| |
112 | +\input{sections/data} |
| |
113 | +\input{sections/methodology} |
| |
114 | +\input{sections/results} |
| |
115 | +\input{sections/extensions} |
| |
116 | +\input{sections/discussion} |
| |
117 | +\input{sections/conclusion} |
| |
118 | + |
| |
119 | +\newpage |
| |
120 | +\bibliography{references} |
| |
121 | + |
| |
122 | +\end{document} |