outlier_policy
Back to L2 | Browse all axes | Browse all options
Axis
outlier_policyon sub-layerl2_c(layerl2).
Sub-layer
l2_c
Axis metadata
Default:
'mccracken_ng_iqr'Sweepable: True
Status: operational
Operational status summary
Operational: 4 option(s)
Future: 0 option(s)
Options
mccracken_ng_iqr – operational
McCracken-Ng’s published IQR-multiple outlier rule.
Flags any observation more than leaf_config.outlier_iqr_threshold (default 10) IQRs from the per-series median. The 10×IQR threshold is the published McCracken-Ng default and matches their replication scripts.
Pairs with an L2.C outlier_action to specify what happens to flagged observations (replace with NaN by default, then L2.D imputation fills them).
When to use
Default for FRED-based studies. Canonical replication path.
References
macroforecast design Part 2, L2: ‘preprocessing is the only layer with a strict A→B→C→D→E execution order; every cell follows the same pipeline.’
McCracken & Ng (2016) ‘FRED-MD: A Monthly Database for Macroeconomic Research’, JBES 34(4). (doi:10.1080/07350015.2015.1086655)
Related options: winsorize, zscore_threshold, none, outlier_action
Last reviewed 2026-05-04 by macroforecast author.
winsorize – operational
Cap observations at user-supplied quantile thresholds.
Truncates each series at leaf_config.winsorize_lower_quantile (default 0.01) and leaf_config.winsorize_upper_quantile (default 0.99). Less aggressive than the McCracken-Ng IQR rule and preserves more of the tail.
When to use
Studies that want a bounded but non-NaN outlier handler; alternative-rule comparisons.
References
macroforecast design Part 2, L2: ‘preprocessing is the only layer with a strict A→B→C→D→E execution order; every cell follows the same pipeline.’
Tukey (1977) ‘Exploratory Data Analysis’, Addison-Wesley.
Related options: mccracken_ng_iqr, zscore_threshold
Last reviewed 2026-05-04 by macroforecast author.
zscore_threshold – operational
Flag observations beyond a z-score threshold.
Computes the rolling z-score per series and flags |z| > leaf_config.zscore_threshold_value (default 3.0). Simpler than IQR but assumes approximately Gaussian residuals.
When to use
Approximately-Gaussian series; quick sanity-check sweeps.
References
macroforecast design Part 2, L2: ‘preprocessing is the only layer with a strict A→B→C→D→E execution order; every cell follows the same pipeline.’
Related options: mccracken_ng_iqr, winsorize
Last reviewed 2026-05-04 by macroforecast author.
none – operational
Skip outlier handling.
Pass series through unchanged. Useful when L1 already cleaned outliers (raw_outlier_policy) or when the study wants to compare against a no-cleaning baseline.
When to use
Custom panels already cleaned upstream; no-cleaning ablations.
References
macroforecast design Part 2, L2: ‘preprocessing is the only layer with a strict A→B→C→D→E execution order; every cell follows the same pipeline.’
Related options: mccracken_ng_iqr, winsorize, zscore_threshold
Last reviewed 2026-05-04 by macroforecast author.