SPB Git

spb/wp11_uqo Public

UQO Working Paper No. 11 — Half a million prices, twenty models: a systematic assessment of hedonic specifications.

TeX 54.7% Python 45.2%
4.3 KB · 83 lines latex
Raw Blame History
1% Author: Simon-Pierre Boucher — contact@spboucher.ai2% ============================================================================3\section{Methodology: the design of the horse race}4\label{sec:method}56The comparison is organised so that each design choice varies while7everything else is held fixed. All models price the same sales from the8same attribute set; only the functional mapping changes.910\subsection{The four axes}1112\paragraph{A. Functional form.} With municipality and quarter fixed13effects and the base attributes (floor area, lot area, building age,14storeys, units, property class, physical configuration), we estimate:15(A1) fully linear in levels; (A2) semi-log, $\ln P$ on levels16\citep{malpezzi2003hedonic}; (A3) log-log, $\ln P$ on logged areas;17(A4) Box--Cox on the price, with $\lambda$ chosen by profile likelihood18on the training set over a grid \citep{box1964analysis,19halvorsen1981choice}; (A5) semi-log with quadratics in area and age; and20(A6) semi-log with cubic $B$-splines (six knots) in area, age and lot.2122\paragraph{B. Time effects.} On the A5 backbone: no time controls,23year fixed effects, quarter fixed effects, month fixed effects ---24the granularity ladder of the time-dummy index literature25\citep{hill2013hedonic}.2627\paragraph{C. Spatial controls.} On the A5 backbone with quarter FE:28no spatial controls, municipality FE (1{,}115), a $\sim$5.5~km grid29(5{,}255 cells), and a $\sim$1.1~km grid (30{,}548 cells) --- a30granularity ladder that brackets the bias--variance trade-off in31absorbing location \citep{case2004modeling, bourassa2010predicting}.3233\paragraph{D. Estimation method.} Holding the attribute set fixed:34(D1) OLS with municipality and month FE; (D2) cross-validated ridge on35the same standardized design; (D3) a random forest36\citep{breiman2001random} and (D4) gradient boosting37\citep{friedman2001greedy} on the attributes plus raw coordinates and a38continuous month counter; (D5) gradient boosting \emph{without}39coordinates, to price what spatial flexibility is worth to the machine;40and (D6) a spatial $k$-nearest-neighbour comparables rule --- the41distance-weighted price per square metre of the ten nearest training42sales --- as the na\"ive appraiser benchmark.4344\subsection{One scoreboard: price levels}4546Comparing forms whose dependent variables differ requires care. Every47model is scored on \emph{predicted price levels}: log models are48retransformed with Duan's smearing factor estimated on training49residuals \citep{duan1983smearing}; Box--Cox predictions are analytically50inverted; level predictions are floored at \$20{,}000. We report the51median and mean absolute percentage errors (MdAPE, MAPE) --- the52automated-valuation industry's standards \citep{steurer2021metrics,53iaao2013standard} --- together with the RMSE and $R^2$ of log predicted54versus log actual prices, which are well-defined for every model.5556\subsection{Two holdouts}5758Each model is evaluated under two splits. The \emph{random} split holds59out 20\% of sales (seeded). The \emph{forward-in-time} split trains on60sales before January 2025 (355{,}824) and tests on 2025--202661(158{,}388) --- the deployment situation of any valuation model. Static62models carry no forecast of the price level, so we apply the standard63carry-forward rule: unseen time categories in the test period are priced64at the last level observed in training; the machine-learning models65receive the same information through the clamped month counter. Random66cross-validation lets every model interpolate the price level of its own67test period --- the forward split reveals how much of measured accuracy68is such leakage \citep{mullainathan2017machine, clapp2002predicting}.6970\subsection{Estimation details}7172All linear models are estimated as sparse ridge regressions with a73vanishing penalty ($\alpha = 10^{-6}$) --- numerically OLS, but robust to74collinear dummies, and unseen categories at prediction time are priced at75the reference level. Dummies are one-hot with a dropped reference; the76ridge (D2) standardizes columns and cross-validates77$\alpha \in [10^{-6}, 10^{2}]$. The forest uses 120 trees78(minimum leaf 5, half the features per split); the boosting machine uses79600 trees of at most 63 leaves (learning rate 0.08, minimum leaf 20).80Hyper-parameters were fixed a priori at library-conventional values ---81the exercise compares model \emph{classes} as used in practice, not tuned82frontier performance.83