regime_definition

Back to L1 | Browse all axes | Browse all options

Axis regime_definition on sub-layer l1_g (layer l1).

Sub-layer

l1_g

Axis metadata

  • Default: 'none'

  • Sweepable: False

  • Status: operational

Operational status summary

  • Operational: 6 option(s)

  • Future: 0 option(s)

Options

none – operational

No regime structure – the cell-loop sees a single time-invariant world.

Default. The L1 regime metadata sink is empty; downstream layers that conditionally reference regime info (L4 regime_wrapper, L5 by_regime decomposition, L6.C cpa conditioning) are inactive.

When to use

Default for any study without an explicit regime structure.

References

  • macroforecast design Part 1, L1: ‘data definition is the recipe layer that pins source, target, geography, and horizon – everything downstream branches off these choices.’

Related options: external_nber, external_user_provided, estimated_markov_switching

Last reviewed 2026-05-04 by macroforecast author.

external_nber – operational

NBER recession dates loaded from the bundled USREC series.

Loads the NBER official recession indicator (USREC) and emits a two-state regime label (‘expansion’ / ‘recession’) per observation. No estimation – the labels come directly from NBER’s published business-cycle dates.

Pairs with L4 regime_wrapper = separate_fit for regime-conditional forecasting and with L5 by_regime decomposition for state-dependent metrics.

When to use

Standard recession-conditioning studies; comparing models’ performance during recessions vs expansions.

References

  • macroforecast design Part 1, L1: ‘data definition is the recipe layer that pins source, target, geography, and horizon – everything downstream branches off these choices.’

  • National Bureau of Economic Research, ‘US Business Cycle Expansions and Contractions’. https://www.nber.org/research/business-cycle-dating

Related options: none, external_user_provided

Examples

NBER-conditioned ridge

1_data:
  fixed_axes:
    regime_definition: external_nber

Last reviewed 2026-05-04 by macroforecast author.

external_user_provided – operational

User-supplied regime label series.

Requires leaf_config.regime_indicator_path (CSV / Parquet with date + label columns) or leaf_config.regime_dates_list (inline date ranges per label). The L1 runtime aligns the labels to the panel index without estimation.

Useful for custom regime definitions: monetary-policy-stance labels, fiscal-stance labels, geographic-dummy regimes, etc.

When to use

Custom regime studies (monetary stance, fiscal stance, alternative recession-dating chronologies).

References

  • macroforecast design Part 1, L1: ‘data definition is the recipe layer that pins source, target, geography, and horizon – everything downstream branches off these choices.’

Related options: none, external_nber

Last reviewed 2026-05-04 by macroforecast author.

estimated_markov_switching – operational

Hamilton (1989) Markov-switching regime estimated from the target.

Fits statsmodels.tsa.regime_switching.MarkovRegression with leaf_config.n_regimes (default 2) regimes and switching variance. Returns smoothed posterior probabilities, the argmax label per observation, and the estimated transition matrix.

The estimation is per-origin (no leakage) via regime_estimation_temporal_rule: expanding_window_per_origin (default) or rolling_window_per_origin / block_recompute.

When to use

Inflation-regime studies; recession-prediction; any study that wants endogenous regime estimation.

References

  • macroforecast design Part 1, L1: ‘data definition is the recipe layer that pins source, target, geography, and horizon – everything downstream branches off these choices.’

  • Hamilton (1989) ‘A new approach to the economic analysis of nonstationary time series and the business cycle’, Econometrica 57(2). (doi:10.2307/1912559)

Related options: estimated_threshold, estimated_structural_break, regime_estimation_temporal_rule, n_regimes

Last reviewed 2026-05-04 by macroforecast author.

estimated_threshold – operational

Tong (1990) SETAR threshold model – regime by threshold variable.

Estimates n_regimes regimes by grid-searching the threshold on a chosen threshold_variable (defaults to lagged target). The regime per observation is determined by which side of the threshold the variable falls on.

Tong’s original SETAR uses AR(p) per regime; macroforecast’s runtime fits AR(threshold_ar_p) per partition and selects the threshold minimising joint SSR.

When to use

Self-exciting threshold dynamics (e.g., interest-rate stance regimes); non-linear AR studies.

References

  • macroforecast design Part 1, L1: ‘data definition is the recipe layer that pins source, target, geography, and horizon – everything downstream branches off these choices.’

  • Tong (1990) ‘Non-linear Time Series: A Dynamical System Approach’, Oxford University Press.

Related options: estimated_markov_switching, estimated_structural_break

Last reviewed 2026-05-04 by macroforecast author.

estimated_structural_break – operational

Bai-Perron (1998) global LSE break detection.

Detects up to leaf_config.max_breaks structural breaks via the Bai (1997) dynamic-programming exact recursion + BIC selection. Each segment between breaks becomes a regime.

When to use

Studies hypothesising structural change (e.g., pre/post Volcker, pre/post Great Moderation).

References

  • macroforecast design Part 1, L1: ‘data definition is the recipe layer that pins source, target, geography, and horizon – everything downstream branches off these choices.’

  • Bai & Perron (1998) ‘Estimating and testing linear models with multiple structural changes’, Econometrica 66(1). (doi:10.2307/2998540)

Related options: estimated_markov_switching, estimated_threshold, max_breaks

Last reviewed 2026-05-04 by macroforecast author.