You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
brms supports autoregressive correlation structure on response variables via the cor argument to its fit function and the cor_arma object. It would be nice to support at least a subset of this functionality, say only AR(1) terms with grouping.
In conjunction with support for multiple response variables #42 and unobserved response variables #43#44 and a syntax extension prev for indicating AR(1) autocorrelation, this would allow brms to provide general and highly scalable support for most multivariate structural time series models with an intuitive syntax:
x ~ 1 + prev(x) + (prev(x) | g)
y ~ 1 + (1 + x | g)
That might mean implementing a vectorized pyro.markov statement upstream (analogous to the vectorized pyro.plate) and, when autocorrelation terms are included in a model, generating code where the observations are wrapped in a pyro.markov context instead of a pyro.plate. We might also need to slightly modify Pyro's HMM distributions to generate latent Markov chains and implement an elbo variant capable of exploiting this structure:
brms supports autoregressive correlation structure on response variables via the
cor
argument to itsfit
function and thecor_arma
object. It would be nice to support at least a subset of this functionality, say only AR(1) terms with grouping.In conjunction with support for multiple response variables #42 and unobserved response variables #43 #44 and a syntax extension
prev
for indicating AR(1) autocorrelation, this would allow brms to provide general and highly scalable support for most multivariate structural time series models with an intuitive syntax:Semantically, formula language support for autocorrelation and latent response variables #44 should be backed by code generation targeting the parallel-scan algorithms for Gaussian and discrete state-space models implemented in Pyro and Funsor, so that we could work with very long time series in O(log(T)) time on parallel hardware.
That might mean implementing a vectorized
pyro.markov
statement upstream (analogous to the vectorizedpyro.plate
) and, when autocorrelation terms are included in a model, generating code where the observations are wrapped in apyro.markov
context instead of apyro.plate
. We might also need to slightly modify Pyro's HMM distributions to generate latent Markov chains and implement an elbo variant capable of exploiting this structure:cc @fritzo
The text was updated successfully, but these errors were encountered: