R/sts.R
sts_dynamic_linear_regression_state_space_model.Rd
A state space model (SSM) posits a set of latent (unobserved) variables that
evolve over time with dynamics specified by a probabilistic transition model
p(z[t+1] | z[t])
. At each timestep, we observe a value sampled from an
observation model conditioned on the current state, p(x[t] | z[t])
. The
special case where both the transition and observation models are Gaussians
with mean specified as a linear function of the inputs, is known as a linear
Gaussian state space model and supports tractable exact probabilistic
calculations; see tfd_linear_gaussian_state_space_model
for details.
sts_dynamic_linear_regression_state_space_model( num_timesteps, design_matrix, drift_scale, initial_state_prior, observation_noise_scale = 0, initial_step = 0, validate_args = FALSE, allow_nan_stats = TRUE, name = NULL )
num_timesteps | Scalar |
---|---|
design_matrix | float |
drift_scale | Scalar (any additional dimensions are treated as batch
dimensions) |
initial_state_prior | instance of |
observation_noise_scale | Scalar (any additional dimensions are
treated as batch dimensions) |
initial_step | scalar |
validate_args |
|
allow_nan_stats |
|
name | name prefixed to ops created by this class. Default value: 'DynamicLinearRegressionStateSpaceModel'. |
an instance of LinearGaussianStateSpaceModel
.
The dynamic linear regression model is a special case of a linear Gaussian SSM
and a generalization of typical (static) linear regression. The model
represents regression weights
with a latent state which evolves via a
Gaussian random walk:
weights[t] ~ Normal(weights[t-1], drift_scale)
The latent state (the weights) has dimension num_features
, while the
parameters drift_scale
and observation_noise_scale
are each (a batch of)
scalars. The batch shape of this Distribution
is the broadcast batch shape
of these parameters, the initial_state_prior
, and the
design_matrix
. num_features
is determined from the last dimension of
design_matrix
(equivalent to the number of columns in the design matrix in
linear regression).
Mathematical Details
The dynamic linear regression model implements a
tfd_linear_gaussian_state_space_model
with latent_size = num_features
and
observation_size = 1
following the transition model:
transition_matrix = eye(num_features) transition_noise ~ Normal(0, diag([drift_scale]))
which implements the evolution of weights
described above. The observation
model is:
observation_matrix[t] = design_matrix[t] observation_noise ~ Normal(0, observation_noise_scale)
Other sts:
sts_additive_state_space_model()
,
sts_autoregressive_state_space_model()
,
sts_autoregressive()
,
sts_constrained_seasonal_state_space_model()
,
sts_dynamic_linear_regression()
,
sts_linear_regression()
,
sts_local_level_state_space_model()
,
sts_local_level()
,
sts_local_linear_trend_state_space_model()
,
sts_local_linear_trend()
,
sts_seasonal_state_space_model()
,
sts_seasonal()
,
sts_semi_local_linear_trend_state_space_model()
,
sts_semi_local_linear_trend()
,
sts_smooth_seasonal_state_space_model()
,
sts_smooth_seasonal()
,
sts_sparse_linear_regression()
,
sts_sum()