Estimating among-intercept correlations between multiple traits, where one trait only has a single observation per individual


I am currently have a little trouble with specifying a multivariate model in brms and am interested to see if anyone has any advice. Similar topics were discussed in a previous post, but I still have a few questions. Briefly, I have run an experiment where we have repeatedly measured multiple traits (i.e. activity, body condition etc.) every week in individual fish across their entire life. I also measured each individual’s lifespan (in days). Fish were also raised in two separate treatments. A simplified version of my dataset is as follows:

ID      Week       Activity      Body_condition       Lifespan_days      Treatment
1        1           32.5          1.16                    436               A
1        2           24.6          1.88                    NA                A
1        3           36.1          2.23                    NA                A

One of the main questions is whether individuals who are more active for example, are also in better body condition and have a longer lifespan (and whether this varies by treatment). To do this, I have therefore fit something similar to the following multivariate model using the brms package:

Activity_mod <- bf(Activity ~ Week + Treatment +  (1|a|gr(ID, by = Treatment)), family = gaussian)

Condition_mod <- bf(Body_condition ~ Week + Treatment +  (1|a|gr(ID, by = Treatment)), family = gaussian)

Lifespan_mod <- bf(Lifespan_days|mi() ~ Treatment +  (1|a|gr(ID, by = Treatment)), family = gaussian)

Here, as I am interested in the correlation among individual intercepts, I have specific Individual ID as a random intercept, and allowed correlations to vary among intercepts (grouped by treatment). All response variables were also standardized prior to model fitting. However, as Lifespan has a reduced number of repeated measures , I have used imputation during model fitting to account for the missing data using the mi() function.

The issue is that Lifespan obviously only has 1 measure per individual, and therefore allowing random intercepts to vary amongst individuals seems to result in issues with model fitting (i.e. large Rhat, low ESS). However, ideally I would like to estimate correlations between traits at the among-individual (i.e. intercept) level. I know that this can apparently be done using MCMCglmm. See 'Multivariate modelling for individual variaiton - MCMCglmm tutorial, pages 13-16 (Tutorials | Tom Houslay).

But I am wondering if this could also be done using brms? That is, whether I can estimate between trait correlations at the among-individual (i.e. intercept) level in brms, where one of those traits only has 1 repeated measure in brms?

I hope this all makes sense. Any advice would be greatly appreciated!

Many thanks,


1 Like