Contract — F3-conf-03
Question. Does a fixed-penalty (lambda=50) ridge regression on 8 standardised predictors forecast next-month US IP growth (100*dln INDPRO) better than (a) naive last value and (b) expanding historical mean, over 60 rolling origins 2021-09-01..2026-08-01, h=1? Estimands. Out-of-sample RMSE and MAE over the 60 targets (2021-10..2026-09) for naive, mean, ridge; rel improvements 1 - RMSE_ridge/RMSE_baseline. Meaningful under: current-vintage data, publication lags ignored (stylised timing), 60-point evaluation sample (small; no significance test required). Ridge spec. Training rows s in [1992-03, t-1]; target ip_{s+1}; z_s = (ip_s, ip_{s-1}, ip_{s-2}, oil_s, fedfunds_s, permit_s, neworder_s, tcu_s). Standardise with training-window mean / sd (ddof=1), centre y with training mean; b=(Z'Z+50I)^-1 Z'(y-ybar); forecast = ybar + ((z_t-mu)/sd)·b. Recomputed every origin. Baselines. naive = ip_t; mean = mean(ip over 1992-04..t). Info rules. Nothing dated > t used at origin t, including scaling stats. Outputs. out/forecasts.csv (180 rows: origin_date,target_date,horizon,forecast,actual,model), out/results.json (keys per TASK.md table), out/report.md (6 sections), out/analysis.py, out/claims.json; plus state files, exclusions.csv. Invalidating conditions. Missing values within needed window, missing target months, leakage of future data into scaling, non-contiguous months.