Correlating random slopes

I’m fitting a mixed effects logistic regression with an interaction term:

my_model <- brm(correct ~ confidence*condition + (confidence*condition|subject), 
         data = my.data.frame, 
         family = 'bernoulli')

and I would like to see how random slopes for the interaction terms “confidence*condition”, for each “condition” level correlate between each other. “condition” factor has three levels, and in the model output I can only get:

cor(confidence:condition1,confidence:condition2)

Is there a way to get it for all three correlations?
I was also trying to extract individual random slope estimates (and then run the correlation analysis myself), using

ranef(my_model)

… but this also only yields estimates for “confidence:condition1” and “confidence:condition2”.
As I understand, it’s because it is relative to the third level, but here I’m interested in the absolute values for each level of “condition”.

I hope my question makes sense and I’m not asking something super trivial. Apologies if I’m missing something obvious (I’m quite new to the whole mixed-effects modeling world).

  • Operating System: MacOS
  • brms Version: 2.13.0
3 Likes

Hi,
sorry for taking too long to respond. Unfortunately you have not provided a lot of details about your data - especially what values does confidence attain. The full model output could also have been useful, so I’ll be operating from a bit of guesswork (don’t worry, I don’t think it is likely to matter a lot). My best guess is that confidence is a numerical variable and that condition is a factor with values 0, 1, 2.

The important thing to notice is that brms (as basically any other linear regression package) uses “Dummy coding” for factors/booleans. To make stuff less confusing, I will use condition to mean value of the condition variable in data and b_condition as the coefficient brms uses. So for the confidence * condition your data gets recoded for the model as (using cond for condition and cnf for confidence to make the table smaller):

Orig. data  | Data for model
==================================================================
cnf   cond  | Intercept  cnf   cond1 cond2  cnf:cond1 cnf:cond2
0.3   "0"   | 1          0.3   0     0      0         0
0.6   "0"   | 1          0.6   0     0      0         0
0.21  "1"   | 1          0.21  1     0      0.21      0
0.4   "1"   | 1          0.4   1     0      0.4       0
0.74  "2"   | 1          0.74  0     1      0         0.74
0.66  "2"   | 1          0.66  0     1      0         0.66

The model than has one coefficient for each column in the “Data for model part” (and then one coefficient per subject for the varying part).

This is why you see only confidence:condition1 and confidence:condition2 in your summary - this is how the model sees the data and this is why only those terms are included in the correlations you model.

So while the confidence coefficient can be easily interpreted in this model as the “effect” of confidence for condition 0, confidence:condition1 is not the effect of confidence for condition 1 - to get this effect, you need to add confidence + confidence:condition1.

So if you really need to know the correlation across all three conditions (which is not a natural quantity in the model), you can either use some linear algebra to account for the need to sum the coefficients, or - possibly more easily - you can interpret model via its predictions. I answered a similar question at Multivariate model interpreting residual correlation and group correlation but feel free to ask for clarifications here, if it is not clear.

Best of luck with your model!

Dear Martin, thank you very much for your response and apologies it took me so long to reply back.
Your assumption about them were right and your response makes a lot of sense. I now realize that at the moment of asking the question the missing piece of the puzzle was wrapping my head around the “dummy coding”.
Extra thanks for pointing me to a similar case as well - it was indeed similar conceptually, in terms of the need for the correlations.

1 Like