Dynamic causal modelling of immune heterogeneity