Hi all! I am wondering **how to get cluster-specific autocorrelation terms in brms?**

I am interested in conducting time series analyses of data where multiple individuals were measured over time, but don’t know how to specify varying autocorrelation parameters (fixed or random [I know…]) for the individuals. Currently, I find it easy to do an AR(1) model for a single individual:

```
brm(y ~ 1 + ar(), ...)
```

But my data consists of multiple individuals (`id`

), and I want them to have their own intercepts and autocorrelation terms. I can specify

```
brm(y ~ 1 + (1 | id) + ar(gr = id), ...)
```

but that assumes that the autocorrelation term is identical for all individuals. I can also manually construct a lagged response variable `y_lag`

, and specify

```
brm(y ~ 1 + y_lag + (1 + y_lag | id), ...)
```

but unfortunately this would lead to missing data in `y_lag`

.

Presumably I could do something about the missingness in `y_lag`

with `mi()`

, but that doesn’t seem like the best solution either. Alternatively, I could dive into the Stan code of the second model above, and make the `ar`

term a varying effect manually, but it has now been about 3 years since I wrote any Stan and I might have forgotten anything beyond “Hello, one beer please.”

I’d appreciate any thoughts or comments!

PS. Just to see what would happen, I also tried

```
brm(y ~ 1 + (1 + ar(gr = id) | id) + ar(gr = id), ...)
```

but this just returned a varying intercepts model, ignoring the `ar()`

call inside the varying effects specification. It might be useful to just fail with an error in this case.