SPB Git

spb/wp29_uqo

Public

# Contract — F3-conf-03

Question. Does a fixed-penalty (λ=50) ridge regression on 8 standardised predictors forecast next-month US IP growth (100·Δln INDPRO) better than (a) naive last value and (b) expanding historical mean, over 60 origins t=2021-09..2026-08, h=1?

Estimands. Out-of-sample RMSE and MAE (percent/month) of naive, mean, ridge over the 60 targets 2021-10..2026-09; relative improvements 1−RMSE_ridge/RMSE_baseline. Meaningful under: current-vintage data, publication lags ignored (stylised timing), 60 squared/absolute errors as sample of loss; not a real-time evaluation.

Specification. Training rows at origin t: s in [1992-03, t−1], target y_{s+1}, features (ip_s, ip_{s−1}, ip_{s−2}, oil_s, ff_s, permit_s, neworder_s, tcu_s). Standardise with training mean and sample SD (ddof=1), centre y with training mean; b=(Z'Z+50I)^{-1}Z'(y−ȳ); forecast ȳ+z̃_t·b. Mean baseline: mean ip_growth over 1992-04..t. Naive: ip_growth_t.

Information rules. Only values dated ≤ t at origin t; all scaling stats recomputed per origin from training window → normalisation_window="expanding". Target of last training row is ip_{t}, which is ≤ t (allowed).

Outputs. out/forecasts.csv (180 rows: origin_date,target_date,horizon,forecast,actual,model); out/results.json (task_id, n_origins, first_origin, last_origin, lambda, normalisation_window, n_features, rmse_/mae_ naive/mean/ridge, rel_improvement_vs_naive/mean, feasibility, feasibility_reason, data_issues, n_input_rows, n_analysed, random_seed); out/report.md; out/analysis.py; out/claims.json; plus protocol files.

Invalidity. Missing months/target values in the evaluation window, any use of data dated > t, full-sample scaling, missing feature values inside training rows.

Files · 46a1f53512bec3cd5d9c16e8fc9d9da4129c09cc
Menu

Theme