Models and Features#

Back to documentation home

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_step

Fourier seasonal-term step.

group_pca_step

Grouped-PCA step.

hamilton_step

Hamilton-filter step.

interaction_step

Pure-interaction step.

lag_step

Lag step.

maf_step

MAF step.

marx_step

MARX step.

midas_step

Fit linear MIDAS using equal step-function lag buckets.

moving_average_step

Moving-average-ladder step.

nystroem_step

Nystroem kernel-approximation step.

partial_least_squares_step

PLS step.

pca_step

PCA step.

polynomial_step

Polynomial-expansion step.

random_projection_step

Gaussian random-projection step.

rolling_step

Rolling-mean step.

scale_step

Scaling step.

season_dummy_step

Date-index seasonal-dummy step.

seasonal_lag_step

Seasonal-lag step.

sliced_inverse_regression_step

SIR step.

sparse_pca_chen_rohe_step

Chen-Rohe sparse component step.

time_step

Deterministic trend/month/quarter/year step.

transform_step

Deterministic column transform step.

varimax_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.

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.