Back to Claude Scientific Skills

Time Series Forecasting

skills/aeon/references/forecasting.md

2.44.03.9 KB
Original Source

Time Series Forecasting

The aeon.forecasting module provides forecasters for univariate and multivariate series. In aeon 1.x, forecasting was rebuilt on array-native BaseForecaster estimators (replacing the old sktime-style fh API). The module is marked experimental — expect API evolution between releases.

Import paths (aeon 1.4+):

  • from aeon.forecasting import NaiveForecaster, RegressionForecaster
  • from aeon.forecasting.stats import ARIMA, AutoARIMA, ETS, AutoETS, Theta, TAR, AutoTAR, TVP
  • from aeon.forecasting.deep_learning import TCNForecaster, DeepARForecaster

List all forecasters: aeon.utils.discovery.all_estimators(type_filter="forecaster").

Naive and Baseline Methods

  • NaiveForecasterstrategy in "last", "mean", "seasonal_last"; set horizon and seasonal_period in the constructor
    • Use when: Establishing baselines or simple patterns

Statistical Models

  • ARIMA / AutoARIMAp, d, q orders (not order=(p,d,q)); supports exogenous variables via exog
  • ETS / AutoETS — exponential smoothing (native implementations in aeon 1.4+)
  • Theta — classical Theta method
  • TAR / AutoTAR — threshold autoregressive models for regime switching
  • TVP — time-varying parameter (Kalman-style) models

Deep Learning Forecasters

Requires aeon[all_extras] (PyTorch stack):

  • TCNForecaster — temporal convolutional network
  • DeepARForecaster — probabilistic RNN forecaster (replaces legacy DeepARNetwork naming)

Regression-Based Forecasting

  • RegressionForecaster — sliding window over history, horizon steps ahead, any sklearn/aeon regressor

Quick Start

python
import numpy as np
from aeon.forecasting import NaiveForecaster
from aeon.forecasting.stats import ARIMA, AutoETS

y = np.array([1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0])

# Naive — horizon is a constructor argument; predict(y) forecasts from series y
naive = NaiveForecaster(strategy="last", horizon=3)
naive.fit(y)
pred_naive = naive.predict(y)

# ARIMA — one-step by default; multi-step via iterative_forecast
arima = ARIMA(p=1, d=1, q=1)
arima.fit(y)
pred_arima = arima.iterative_forecast(y, prediction_horizon=3)

# Auto model selection
auto_ets = AutoETS(horizon=3)
auto_ets.fit(y)
pred_ets = auto_ets.predict(y)

Forecasting Horizon

In aeon 1.x, set horizon on the estimator (number of steps ahead). predict(y) returns the forecast horizon steps beyond the end of y.

Multi-step strategies:

  • iterative_forecast(y, prediction_horizon) — reuse one fitted model, feed predictions back (ARIMA, many stats models)
  • direct_forecast(y, prediction_horizon) — refit per horizon (requires capability:horizon tag; e.g. RegressionForecaster)
  • NaiveForecaster — set horizon>1 directly when strategy supports it

There is no ForecastingHorizon / fh=[1,2,3] API in aeon 1.x.

Model Selection

  • Baseline: NaiveForecaster(strategy="seasonal_last", seasonal_period=12, horizon=h)
  • Linear / stationary: ARIMA, AutoARIMA
  • Trend + seasonality: ETS, AutoETS
  • Regime changes: TAR, AutoTAR
  • Complex patterns: TCNForecaster, RegressionForecaster with aeon regressors
  • Probabilistic: DeepARForecaster

Evaluation Metrics

Use scikit-learn or standard numpy metrics on hold-out forecasts:

python
from sklearn.metrics import mean_absolute_error, mean_squared_error

mae = mean_absolute_error(y_true, y_pred)
mse = mean_squared_error(y_true, y_pred)

Exogenous Variables

Pass aligned exogenous arrays as exog (not X):

python
forecaster.fit(y_train, exog=exog_train)
y_pred = forecaster.predict(y_test, exog=exog_test)

Base Classes

  • BaseForecasterhorizon, axis, fit, predict, forecast
  • DirectForecastingMixin / IterativeForecastingMixin — multi-step helpers
  • BaseDeepForecaster — deep learning forecasters

Extend BaseForecaster for custom forecasters.