Supported latent trend models in mvgam
Details
mvgam
currently supports the following dynamic trend models:
None
(no latent trend component; i.e. the GAM component is all that contributes to the linear predictor, and the observation process is the only source of error; similar to what is estimated bygam
)ZMVN()
(zero-mean correlated errors, useful for modelling time series where no autoregressive terms are needed or for modelling data that are not sampled as time series)AR(p = 1, 2, or 3)
CAR(p = 1)
(continuous time autoregressive trends; only available inStan
)VAR()
(only available inStan
)PW()
(piecewise linear or logistic trends; only available inStan
)GP()
(Gaussian Process with squared exponential kernel; only available inStan
)
For most dynamic trend types available in mvgam
(see argument
trend_model
), time should be measured in discrete, regularly spaced
intervals (i.e. c(1, 2, 3, ...)
). However, you can use irregularly spaced
intervals if using trend_model = CAR(1)
, though note that any temporal
intervals that are exactly 0
will be adjusted to a very small number
(1e-12
) to prevent sampling errors.
For all autoregressive trend types apart from CAR()
, moving average and/or
correlated process error terms can also be estimated (for example,
RW(cor = TRUE)
will set up a multivariate Random Walk if data
contains
>1
series). Hierarchical process error correlations can also be handled if
the data contain relevant observation units that are nested into relevant
grouping and subgrouping levels (i.e. using
AR(gr = region, subgr = species)
).
Note that only RW
, AR1
, AR2
and AR3
are available if using JAGS
.
All trend models are supported if using Stan
.
Dynamic factor models can be used in which the latent factors evolve as
either RW
, AR1-3
, VAR
or GP
. For VAR
models (i.e. VAR
and
VARcor
models), users can either fix the trend error covariances to be 0
(using VAR
) or estimate them and potentially allow for contemporaneously
correlated errors using VARcor
.
For all VAR
models, stationarity of the latent process is enforced through
the prior using the parameterisation given by Heaps (2022). Stationarity is
not enforced when using AR1
, AR2
or AR3
models, though this can be
changed by the user by specifying lower and upper bounds on autoregressive
parameters using functionality in get_mvgam_priors and the priors
argument in mvgam.
Piecewise trends follow the formulation in the popular prophet
package
produced by Facebook
, where users can allow for changepoints to control
the potential flexibility of the trend. See Taylor and Letham (2018) for
details.