SPB Git

spb/wp29_uqo

Public

# Verification checks (P4)

# check outcome
1 Delete outputs, re-run analysis.py; byte-compare results.json and forecasts.csv with previous run PASS (identical)
2 forecasts.csv has 240 rows, 40 per (model, horizon) PASS
3 target_date = origin_date + h quarters for every row PASS
4 snaive forecast equals infl_annualised of quarter t+h−4, and that quarter ≤ origin PASS
5 actual equals infl_annualised of target quarter PASS
6 Look-ahead test: model forecasts recomputed with the series physically truncated at the origin (9 origins × 3 horizons) equal the full-data-run forecasts PASS (0 mismatches)
7 RMSE/MAE recomputed from forecasts.csv match results.json PASS (max diff 6e-8, due to 6-dp CSV rounding)
8 rel_improvement = 1 − rmse_model/rmse_snaive; dm_stat = mean/se PASS
9 HAC SE cross-checked against statsmodels OLS-on-constant HAC (Bartlett, maxlags=4, no small-sample correction) PASS (1.920034 vs 1.920034)
10 SEs and RMSEs positive; first_origin < last_origin; hac_lags_h4=4 ≥ 3 PASS
11 n_analysed = 118 = pairs s∈[1996Q1, 2025Q2] for h=1 at last origin (first ybar4 available 1996Q1) PASS
12 Magnitudes vs baseline: model RMSEs (2.30–2.44) below snaive (2.85–2.88), same order of magnitude; sd of target 2.39 PASS (plausible)
13 Exclusion ledger: 127 − 1 = 126 usable quarters PASS

Note: sample autocorrelation of d_t at h=4: lag1 0.22, lag3 −0.28, lag4 −0.41. Because of negative higher-order autocorrelation the HAC SE is sensitive to the lag choice (Bartlett lag 3: 2.16, lag 4: 1.92, lag 6: 1.43); reported in sensitivity_dm_h4. None of these variants gives p < 0.05.

Files · main
Menu

Theme