An autoregressive (AR) model posits a latent level
whose value at each step
is a noisy linear combination of previous steps:
level[t+1] = (sum(coefficients * levels[t:t-order:-1]) + Normal(0., level_scale))
sts_autoregressive(
observed_time_series = NULL,
order,
coefficients_prior = NULL,
level_scale_prior = NULL,
initial_state_prior = NULL,
coefficient_constraining_bijector = NULL,
name = NULL
)
an instance of StructuralTimeSeries
.
optional float
tensor
of shape
batch_shape + [T, 1]
(omitting the trailing unit dimension is also
supported when T > 1
), specifying an observed time series.
Any priors not explicitly set will be given default values according to
the scale of the observed time series (or batch of time series). May
optionally be an instance of sts_masked_time_series
, which includes
a mask tensor
to specify timesteps with missing observations.
Default value: NULL
.
scalar positive integer
specifying the number of past
timesteps to regress on.
optional Distribution
instance specifying a
prior on the coefficients
parameter. If NULL
, a default standard
normal (tfd_multivariate_normal_diag(scale_diag = tf$ones(list(order)))
) prior
is used. Default value: NULL
.
optional Distribution
instance specifying a prior
on the level_scale
parameter. If NULL
, a heuristic default prior is
constructed based on the provided observed_time_series
. Default value: NULL
.
optional Distribution
instance specifying a
prior on the initial state, corresponding to the values of the process
at a set of size order
of imagined timesteps before the initial step.
If NULL
, a heuristic default prior is constructed based on the
provided observed_time_series
. Default value: NULL
.
optional Bijector
instance
representing a constraining mapping for the autoregressive coefficients.
For example, tfb_tanh()
constrains the coefficients to lie in
(-1, 1)
, while tfb_softplus()
constrains them to be positive, and
tfb_identity()
implies no constraint. If NULL
, the default behavior
constrains the coefficients to lie in (-1, 1)
using a tanh
bijector.
Default value: NULL
.
the name of this model component. Default value: 'Autoregressive'.
The latent state is levels[t:t-order:-1]
. We observe a noisy realization of
the current level: f[t] = level[t] + Normal(0., observation_noise_scale)
at
each timestep.
If coefficients=[1.]
, the AR process is a simple random walk, equivalent to
a LocalLevel
model. However, a random walk's variance increases with time,
while many AR processes (in particular, any first-order process with
abs(coefficient) < 1
) are stationary, i.e., they maintain a constant
variance over time. This makes AR processes useful models of uncertainty.
For usage examples see sts_fit_with_hmc()
, sts_forecast()
, sts_decompose_by_component()
.
Other sts:
sts_additive_state_space_model()
,
sts_autoregressive_state_space_model()
,
sts_constrained_seasonal_state_space_model()
,
sts_dynamic_linear_regression_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()