Models and Features#
An Arm is built from two kinds of block, a set of feature steps and a single
model. This page lists both. It starts with the feature engineering steps that
turn a cleaned panel into model inputs, then helps you choose a model. Each model
family links to a detail page generated from the registry, so the lists always
match the installed version.
Feature engineering#
Features are organized into five families that recur across the macro forecasting literature. F is principal-component or sparse factors, X is raw lagged series, MARX is the moving-average lag cross that is the standard macro design, MAF is maximum-autocorrelation factors, and Level passes untransformed level columns through unchanged. The Features page covers them in full, and the Feature Engineering reference lists every step parameter.
You compose these families from the step builders below. Each returns a step you
place in the feature_steps list of feature_spec, and stateful steps such as
PCA are refit inside every training window.
Step builder |
Description |
|---|---|
|
Fourier seasonal-term step. |
|
Grouped-PCA step. |
|
Hamilton-filter step. |
|
Pure-interaction step. |
|
Lag step. |
|
MAF step. |
|
MARX step. |
|
Fit linear MIDAS using equal step-function lag buckets. |
|
Moving-average-ladder step. |
|
Nystroem kernel-approximation step. |
|
PLS step. |
|
PCA step. |
|
Polynomial-expansion step. |
|
Gaussian random-projection step. |
|
Rolling-mean step. |
|
Scaling step. |
|
Date-index seasonal-dummy step. |
|
Seasonal-lag step. |
|
SIR step. |
|
Chen-Rohe sparse component step. |
|
Deterministic trend/month/quarter/year step. |
|
Deterministic column transform step. |
|
Orthogonal varimax-rotation step. |
Choosing a model#
Few predictors and a mostly linear signal. Start from the benchmarks ar,
ols, and arima. They anchor any comparison and are cheap to refit at every
origin.
Many predictors. Regularize. ridge shrinks all coefficients, lasso and
elastic_net also select variables, and adaptive_lasso and group_lasso add
structured selection across feature blocks.
Latent factor structure. When series move together, extract common factors
with far and favar, or use a dynamic factor model from the mixed-frequency
family.
Nonlinearity and interactions. The macro forecasting literature finds this is
where the largest gains appear. The workhorses are random_forest, xgboost,
lightgbm, and the macro-adapted macro_random_forest.
Sequence structure. The neural family includes lstm and gru for recurrent
dynamics in longer panels.
Conditional volatility. For variance forecasting use garch11, egarch,
gjr_garch, and realized_garch.
Model families#
Each family has a detail page with a per-model table of inputs, optional dependencies, scaling, recommended preprocessing, and tunable counts.
Linear and regularized — 16 models
Factor models — 2 models
Classical time series — 14 models
Tree ensembles — 11 models
Support vector — 3 models
Nonparametric — 2 models
Neural networks — 6 models
Volatility and GARCH — 5 models
Mixed frequency — 7 models
Assemblage — 6 models
Composite — 4 models
Spline — 1 models
Notes#
Feature steps are passed in the feature_steps list of
mf.feature_engineering.feature_spec(...). Model strings are passed as the
model argument to Arm(model=...) or to mf.forecasting.run(data, model=...).
Full feature-step parameters are on the
Feature Engineering reference page, and
model search spaces and presets are on the
Models reference page and, for fit-time ensembles, the
Model Ensemble reference page. The generated
Model x Forecast Policy Matrix states which forecast
policies are supported for each registered model.