Modeling a time series of ordered vectors I have a series of ordered vectors, $\pmb{x}^o(1), \ldots, \pmb{x}^o(n)$. Here, $\pmb{x}^o$ means the ordered vector of $\pmb{x}$. For example, if $\pmb{x} = (2,5,1)^\top$, then $\pmb{x}^o = (1,2,5)^\top$.
Is there any (possibly simple) model to fit this time series? For example, something similar to an "ordered" autoregressive model: $$\pmb{x}^o(t) = \pmb{A} \pmb{x}^o(t-1) + \pmb{\epsilon}(t).$$ However, I think this is incorrect in this form because the errors are not ordered (since they are random). Can we modify this model in some way? I am also fine with any other model.
Note: If possible, it would be good if the model is simple. Because, as a next step, I need to estimate its parameters.
 A: Here's a model:
$$
\mathbf{x}(t) = \mathbf{A} \mathbf{x}(t-1) + \mathbf{v}(t) \tag{1}
$$
$$
\mathbf{x}^o(t) = g(\mathbf{x}(t)) \tag{2}
$$
where $g$ is the ordering function, $\{\mathbf{v}(s)\}_s$ are iid multivariate Gaussian errors with covariance matrix $\mathbf{\Sigma}$, and $\mathbf{A}$ is a real-valued matrix.
We have to assume each $\mathbf{x}(t)$ is unobserved, so this is a state space model. The likelihood for this particular model is intractable, which means you'll have to resort to a technique that doesn't assume you can evaluate the likelihood or the gradient.
On technique is pseudo-marginal Metropolis-Hastings (PMMH). Or you can get a little fancier and use the correlated PMMH approach. Unfortunately, this can be computationally expensive to do. I (sorry for the shameless self-plug) have an R package with a vignette that describes how to do this in R using c++ code.
Here's a broad overview of the steps involved:

*

*Write a c++ class for the above model that defines equations (1) and (2). Inherit from a particle filter base class so that all of the complex parts you don't have to write.

*Write an R function that evaluates an approximate, random likelihood using the above class, and finally

*plug that R approximate likelihood function into cPseudoMaRg::makeCPMSampler() to get something that samples the parameters of this model.

