Supported mvgam trend models
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; similarly to what is estimated bygam
)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 trend types
apart from GP()
, PW()
, and 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). Character strings can also be supplied
instead of the various trend functions. The full list of possible models that are
currently supported is:
'RW'
'RWMA'
'RWcor'
'RWMAcor'
'AR1'
'AR1MA'
'AR1cor'
'AR1MAcor'
'AR2'
'AR2MA'
'AR2cor'
'AR2MAcor'
'AR3'
'AR3MA'
'AR3cor'
'AR3MAcor'
'CAR1'
'VAR'
'VARcor'
'VAR1' (same as 'VAR')
'VAR1cor' (same as 'VARcor')
'VARMA'
'VARMAcor'
'VARMA1,1cor'
'PWlinear'
'PWlogistic'
'GP'
'None'
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