TVARResult.forecast#

TVARResult.forecast(steps=1, *, transition_future=None)[source]#

Iterate the fitted skeleton forward, blending regimes as it goes.

At each step the transition weight is evaluated on the path itself – the forecast re-enters the transition variable when the model is self-exciting – and the two regimes’ one-step maps are blended by that weight. This is the skeleton forecast: exact at one step, and an approximation beyond, because for a nonlinear model the multi-step conditional mean averages the transition over future shocks rather than evaluating it at the mean path. The gap is small when the path stays clear of the threshold and largest on top of it; a simulation- based conditional mean belongs to a later inference layer.

Parameters:
  • steps (int) – Forecast horizon, at least one.

  • transition_future (ArrayLike | None) – Future values of an external transition variable, at least steps - delay + 1 of them when steps > delay. Ignored for a self-exciting model, which generates its own transition path; required for an external one that must see past its observed history, refused rather than extrapolated otherwise.

Return type:

NDArray[double]

Returns:

An array of shape (steps, k).

Raises:

SpecificationError – If steps is less than one, or an external transition path is needed and not supplied.