models.Horizon

The train/forecast split for a single model call.

Usage

Source

models.Horizon(
    data,
    t_obs,
    future,
    duration,
)

An immutable value derived once per model call from the covariate and data shapes by from_data(); every building block (innovations(), markov_series(), ssoe(), predict()) takes it as its first argument.

Attributes

data: Array | None

Observed in-sample data with time at axis -2 (None during pure prior sampling).

t_obs: int

Number of observed (in-sample) time steps t.

future: int

Number of forecast time steps f (0 while training).

duration: int
Total horizon length t + future (in time steps).

Attributes

Name Description
zero_data Zeros shaped like data extended to the full horizon.

zero_data

Zeros shaped like data extended to the full horizon.

zero_data: Array | None

Mirrors Pyro’s zero_data (and numpyro_forecast.arrays.zero_data_like()): it exposes the shape/dtype of the data over the forecast horizon without leaking observed values. None when there is no data.

Methods

Name Description
__post_init__() Validate that the horizon fields are internally consistent.
from_data() Derive the horizon from the covariate and data shapes.

__post_init__()

Validate that the horizon fields are internally consistent.

Usage

Source

__post_init__()

from_data()

Derive the horizon from the covariate and data shapes.

Usage

Source

from_data(covariates, data)

The first line of every model: h = Horizon.from_data(covariates, data).

Parameters
covariates: Array

Covariates with time at axis -2 spanning the full horizon.

data: Array | None
Observed data with time at axis -2 (None for prior sampling).
Returns
Horizon
The horizon with duration = covariates.shape[-2], t_obs = data.shape[-2] (or duration when data is None), and future = duration - t_obs.
Raises
ValueError
If data is longer than covariates along the time axis.