SPB Git forge

spb/wp23_uqo

Public
6commits 1branches 0releases
32.7 MBsize
maindefault branch
yesterdaylast push
TeX 62.3% Python 37.6%
6.0 KB · 19 lines latex
Raw Blame History
1\section{Simulation design and results}\label{sec:sim}23\subsection{Design}45The simulation reuses the WP22 synthetic markets (60 municipalities nested in 12 MRCs and 4 regions, log-normal municipality sizes with a median of 3.3 sales a month, a nonlinear hedonic surface, spatially correlated cell quality, Student-$t$ noise, seasonal volumes, resales and missing characteristics) and replaces the latent price paths by five data-generating processes that differ in forecastability. In \emph{rw} the provincial path is a random walk with a constant drift of 0.3\% a month and the regional and municipal deviations are pure random walks: the drift is learnable, nothing else is. In \emph{momentum} the drifts at every level follow AR(1) processes (persistence 0.85 at the province, 0.8 for regions, 0.7 for municipalities) with small innovations. In \emph{regimes} the provincial drift switches between $+1.2\%$ and $-0.6\%$ a month by a Markov chain with persistence 0.93 and 0.90. In \emph{spillover} each municipality's drift loads with weight 0.6 on its region's lagged drift, so that regional information predicts municipal changes. \emph{Sparse} is \emph{momentum} with 35\% of the sales. For every market, the real-time index at each origin is the WP22 SHARP-HPI filtered on the synthetic sales dated up to the origin (so that estimation noise and pooling are those of the real pipeline), the Task~B features are built from it exactly as on the real data, and the target is the true latent change. Ten replications of 72 months are run for the classic and tree models and six for the neural models; forecasts are issued at horizons 1, 3 and 6 from origins 24 to 71 with re-estimation every six origins. Tables~\ref{tab:sim_municipality} to~\ref{tab:sim_province} report the three-month MAE relative to the no-change forecast with Monte Carlo standard errors, and Figure~\ref{fig:sim} the municipal results.67\subsection{Results}89The simulation explains the empirical ranking by separating two effects: the forecastability of the latent dynamics and the noise of the real-time index. When the predictable component is a constant drift (\emph{rw}) or a large persistent switching drift (\emph{regimes}), the simple rules recover it: the AR(2) and mean-growth forecasts reach \SimRelmunicipalityarTwocellrw{} and \SimRelmunicipalitymeangrowthrw{} of the no-change MAE at the municipal level in \emph{rw}, \SimRelmunicipalityarTwocellregimes{} and \SimRelmunicipalitymeangrowthregimes{} in \emph{regimes}, and the pooled LightGBM \SimRelmunicipalitylightgbmpanelrw{} and \SimRelmunicipalitylightgbmpanelregimes. When the predictable component is a small persistent drift (\emph{momentum}, \emph{sparse}), it is buried in the estimation noise of the municipal real-time index and no model beats the no-change forecast; the feature-rich pooled models are markedly \emph{worse} than it (ridge \SimRelmunicipalityridgepanelmomentum, BHPF \SimRelmunicipalitybhpfmomentum, LightGBM \SimRelmunicipalitylightgbmpanelmomentum), because they fit the noise of nineteen noisy predictors on a few hundred training rows, and the same holds at the regional and provincial levels. Regional spillovers of the size simulated (\emph{spillover}) are only weakly learnable: the AR(2) on the cell's own history already captures most of the lagged regional signal (\SimRelmunicipalityarTwocellspillover), and the pooled models with explicit parent features do not improve on it. The neural models (Table~\ref{tab:sim_municipality}, six replications) do no better than the pooled models and the two proposed architectures do worse: DSGFN reaches \SimRelmunicipalitydsgfnmomentum{} in \emph{momentum} and \SimRelmunicipalitydsgfnregimes{} in \emph{regimes}, and does not exploit the spillover structure it was designed for (\SimRelmunicipalitydsgfnspillover{} against \SimRelmunicipalityarTwocellspillover{} for the AR(2)), because with 60 nodes and 48 origins the attention cannot separate the regional signal from the noise; QANSS, whose learned drift transition reads the noisy recent changes of the real-time index, is the worst model in every scenario (\SimRelmunicipalityqanssrw{} in \emph{rw}, \SimRelmunicipalityqanssmomentum{} in \emph{momentum}), although its intervals remain the best calibrated of the neural models (\SimCovmunicipalityqanssmomentum\% against \SimCovmunicipalitydsgfnmomentum\% for DSGFN). The TFT-lite, which is the weakest neural model on the real data, is the best of them in the simulation; the ranking of the neural models is not stable across data-generating processes, which is the simulation counterpart of the seed variability of Section~\ref{sec:ablation}.1011Two lessons carry over to the real data. First, the gains of the pooled tree model on the Quebec panel (MASE 0.75 at three months) are larger than anything the simulation produces from latent momentum alone; the simulated latent paths have no seasonal component, whereas the Quebec index has a pronounced seasonal cycle (Figure~\ref{fig:traj}) that the calendar-month feature and the cell's own history capture. The real-data forecastability is therefore mostly seasonal composition in the quality-adjusted index, not momentum in latent prices, which is why the seasonal naive is the best provincial forecast and why the twelve-month horizon, where the seasonal cycle cancels, is unforecastable. Second, feature-rich models on noisy real-time indices can be worse than no change; the interval coverage of the pooled models in the simulation (\SimCovmunicipalityridgepanelmomentum\% for the ridge, \SimCovmunicipalitylightgbmpanelmomentum\% for LightGBM, for a nominal 90\%) shows the same under-coverage as on the real data, while the no-change residual quantiles (\SimCovmunicipalitynochangemomentum\%) are close to nominal.1213\input{tables/tab_sim_municipality}1415\begin{figure}[htbp]\centering16\includegraphics[width=\textwidth]{figures/fig_simulation.pdf}17\caption{Simulation: three-month MAE relative to the no-change forecast at the municipality level, by scenario and model (whiskers: Monte Carlo standard errors).}\label{fig:sim}18\end{figure}19