Skip to content

Test more seasonal periods in the candidate population (168, 52, 5, detector-gated) #112

Description

@microprediction

The default population carries seasonal candidates (seasonal_difference, seasonal_anchor) at periods {7, 12, 24} only. Evidence from the CSP bout (benchmarks/comparisons/laplace-vs-csp/) that more periods are worth testing:

  • 168 (hour-of-week on hourly data): composing an hour-of-week phase-EMA layer over the m=24 anchor improved CRPS a further ~3% on the M4-Hourly probe, at some LL cost from thin phases (~5 visits per phase in a 750-step window). Needs the visit-count shrinkage to carry more weight, or longer windows.
  • 52 (weekly data's annual cycle) and 5 (business-day week): absent from the fixed list entirely. Cost of extra candidates measured near zero (paired run: median +0.0000% CRPS), so the main question is population bloat vs the periodicity detector (skaters/periodicity.py, DEFAULT_LAGS already scans 5/52/168) gating which periods join per series — the dantzig injection idea applied to laplace's fixed population, possibly with seasonality-strength prior weights (NNS-style).

Any change must rerun the four corpus arms with daily FRED as the do-not-regress guard, and mirror in the JS/Rust ports (parity vectors).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions