Joint Modelling in brms


Good afternoon, dear colleagues!

I’m concerned with the following question: is it possible to perform a joint modelling of longitudinal data and time-to-event data using the ‘brms’ package?

This, for example, is implemented in the form of stan_jm function in the competing package ‘rtanarm’. But for a number of reasons it’s use is not so convenient as the use of the ‘brms’ package.

Thank you in advance for your thoughts and advices!

  • Operating System: Windows 7
  • brms Version: 2.3.1


Joint models in the form implemented in stan_jm are unfortunately not supported by brms.


Thank you, Paul!

Maybe in any other form?

Maybe you know examples, where it was done manually by ‘brms’ users?


The complex parts of joint models are two aspects.

  1. We have two different data sets one for the survival time and one for the covariates.
  2. The association structures between both model parts are specicically designed for that purpose and do not fit well into the generic structure of brms model.

Thus, I believe it is unlikely that users have applied brms for that purposes but I am happy to be corrected.


I am facing a similar problem (time to death as response, + several covariates) and I am racking my brain trying to think of a way to do this with brms. what if the data is fully synchronous like this (i.e. events and longitudinal data are always on the same timescale) - couldn’t one break the timeseries down with a smart grouping structure, or something of the like?

Time:            1    2    3    4    5
Alive:           1    1    1    0    0
Length:          1.1  1.5  2.6  NA   NA
Pigmentation:    0.3  0.5  0.7  NA   NA


I don’t know if brms has expanded to include such models or not, but the R package JMBayes builds joint longitudinal and time to event models - it can even handle multiple longitudinal covariates. It uses JAGS by default but the mvglmer() command has an option to use Stan, and you can get the Stan code from the model file it makes.

More here:


No way in brms, but please see rstanarm::stan_jm for a very flexibile implementation.