Skip to content

Utilities

Utility classes and functions for continuous-discrete linear Gaussian SSMs.

cdlgssm_utils

GSSMForecast

Bases: NamedTuple

Object definition used when forecasting.

Parameters:

Name Type Description Default
forecasted_state_means

Array of forecasted state means \(\mathbb{E}[z_{t+1:t+t_f} \mid y_{1:t}, u_{1:t}, u_{t+1:t+f}]\).

required
filtered_covariances

Array of forecasted state covariances \(\mathrm{Cov}[z_{t+1:t+t_f} \mid y_{1:t}, u_{1:t}, u_{t+1:t+f}]\).

required
forecasted_emission_means

Array of forecasted emission means \(\mathbb{E}[y_{t+1:t+t_f} \mid y_{1:t}, u_{1:t}, u_{t+1:t+f}]\).

required
forecasted_emission_covariances

Array of forecasted emission covariances \(\mathrm{Cov}[y_{t+1:t+t_f} \mid y_{1:t}, u_{1:t}, u_{t+1:t+f}]\).

required
forecasted_state_path

Array of forecasted state path \(z_{t+1:t+t_f}\).

required
forecasted_emission_path

Array of forecasted emission path \(y_{t+1:t+t_f}\).

required

ParamsCDLGSSM

Bases: NamedTuple

Parameters of a linear Gaussian CD-LGSSM.

Parameters:

Name Type Description Default
initial

Initial distribution parameters, same as in LGSSM.

required
dynamics

Dynamics distribution parameters.

required
emissions

Emission distribution parameters.

required

ParamsCDLGSSMDynamics

Bases: NamedTuple

Parameters of the CD-LGSSM state dynamics The tuple doubles as a container for the ParameterProperties.

We assume a model of the form \(dz_t = F_t z_t dt + L_t dB_t\)

The resulting transition distribution is \(p(z_{t1}} | z_{t0}, u_t1) = N(z_{t1} | A z_{t0} + B u_{t1} + b, P)\) where A, B, b, P are computed based on the SDE defined by F_t, L_t and Q.

Parameters:

Name Type Description Default
weights

Dynamics weights \(F_t\).

required
bias

Dynamics bias \(b\).

required
input_weights

Dynamics input weights \(B\).

required
diffusion_coefficient

Dynamics diffusion coefficient \(L_t\).

required
diffusion_cov

Dynamics covariance \(Q\).

required

create_cdlgssm_params_and_props(params: dict) -> Tuple[ParamsCDLGSSM, ParameterProperties]

Create CD-LGSSM parameters and properties, based on provided dictionaries.

Parameters:

Name Type Description Default
params dict

Dictionary of parameters.

required

Returns:

Type Description
Tuple[ParamsCDLGSSM, ParameterProperties]

Tuple of parameters and properties objects.

init_cdlgssm_params(default_params, init_params=None, init_prior=None, key=jr.PRNGKey(0)) -> Tuple[ParamsCDLGSSM, ParamsCDLGSSM]

Initialize CD-LGSSM parameters and properties from prior, init_values, or defaults.

Parameters:

Name Type Description Default
default_params

Dictionary of default parameters; at least some default values are required.

required
init_params

Dictionary of all parameters.

None
init_prior

Prior distribution for the initialization. Defaults to None.

None
key

Random key for sampling from the prior. Defaults to jr.PRNGKey(0).

PRNGKey(0)

Returns:

Type Description
Tuple[ParamsCDLGSSM, ParamsCDLGSSM]

Tuple of CD-LGSSM parameters and properties objects.

sample_cdlgssm_params(prior, M, init_params, key=jr.PRNGKey(0)) -> Tuple[ParamsCDLGSSM, ParamsCDLGSSM]

Sample CD-LGSSM parameters from the provided prior; init_params used for non-sampled parameters.

Parameters:

Name Type Description Default
prior

Prior distribution for the initialization.

required
M

Number of samples to draw.

required
init_params

Dictionary of all parameters.

required
key

Random key for sampling from the prior. Defaults to jr.PRNGKey(0).

PRNGKey(0)

Returns:

Type Description
Tuple[ParamsCDLGSSM, ParamsCDLGSSM]

Tuple of CD-LGSSM parameters and properties objects.