Thanks for the nice message @ystad. Yes you can set up multivariate processes when using shared states via the trend_map
argument. But unfortunately it is not quite flexible enough yet to allow the same governing dynamics at multiple sites while also allowing different values of the latent states at each site. In other words, you can set up a model that forces all of species 1’s latent states to take particular temporal values, meaning that the latent state in site 1 at time t = 1
is exactly the same as the latent state in site 2 at t = 1
. And your model can do the same for all of species 2’s latent states. You can also allow these processes to be multivariate (i.e. via a Vector Autoregressive model or perhaps a correlated Random Walk). But it would be nice if you could learn the governing dynamics (i.e. AR coefficients, covariance structures etc…) over all sites while allowing the actual latent state values to vary across sites. Unfortunately this is not yet possible, though it is something that I’d like to build into the package in future.
To answer your other question, yes the package can handle irregularly sampled data using a continuous time autoregressive process. I actually provide an example in this post: Autocorrelation for unevenly spaced time series - #8 by nicholasjclark. But there are no options to set these up as multivariate because they operate on time differences rather than actual time points.