Contract — F3-conf-03
Question. Over 60 monthly forecast origins (2021-09-01 … 2026-08-01), does a ridge regression with a fixed penalty (λ=50) on 8 standardised predictors forecast next-month US IP growth (100·Δln INDPRO) better than (a) the naive last value and (b) the expanding mean of ip_growth since 1992-04? Estimands. Out-of-sample RMSE and MAE at h=1 for naive, mean, ridge; relative RMSE improvements 1−RMSE_ridge/RMSE_baseline. Meaningful as pseudo-out-of-sample accuracy on current-vintage (revised) data with publication lags ignored; not real-time accuracy. 60 errors per model → sizeable sampling uncertainty. Ridge spec. Training rows s ∈ [1992-03, t−1], target ip_growth_{s+1}; features (ip_t, ip_{t−1}, ip_{t−2}, oil_chg, fedfunds, permit_chg, neworder_chg, tcu); standardise with training mean and ddof=1 sd; centre y with training mean; b=(Z'Z+50I)^{-1}Z'(y−ȳ); forecast ȳ+z̃_t·b. 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_ for naive/mean/ridge, rel_improvement_vs_naive/mean, feasibility, feasibility_reason, data_issues, n_input_rows, n_analysed, random_seed); out/report.md (6 sections); out/analysis.py; out/claims.json; plus exclusions.csv and state files. Information rules. At origin t only values dated ≤ t are used; all scaling statistics recomputed on each origin's training window; training targets must be dated ≤ t. Invalidity. Any use of data dated > t (e.g. full-sample standardisation, training row whose target is t+1), missing months, wrong origin set.