Interpreting results

Good evening,

I am using brms() to run the analysis of a longitudinal, multivariate data set (R version 3.6.2, Platform: x86_64-w64-mingw32/x64 (64-bit), brms version 2.12). My research is about which predictor(s) best explain(s) the change observed over the time in the income generation of 66 individuals (3 or 4 time points per individuals).
I compared several models using loo() and ended up with this one (“revenus” = income) :

mdSi6__ <- brm(data = DT, family = student(), formula = revenus ~ 1 + capital + cycle*octroi + cycle:signification + (1 + capital + cycle*octroi + cycle*signification | id_client), iter = 4000, warmup = 1000, chains = 4, control = list(adapt_delta = .90, max_treedepth = 20), seed = 1414)

With the following output:

Family: student 
Links: mu = identity; sigma = identity; nu = identity 
Formula: revenus ~ 1 + capital + cycle * octroi + cycle:signification + (1 + capital + cycle * octroi + cycle * signification | id_client) 
Data: DT (Number of observations: 222) 
Samples: 4 chains, each with iter = 4000; warmup = 1000; thin = 1;
         total post-warmup samples = 12000

Group-Level Effects: 
~id_client (Number of levels: 66) 
                                       Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
sd(Intercept)                            685.80    488.48    33.67    1836.61 1.00     3427     4957
sd(capital)                                0.59      0.11     0.40    0.82 1.00     2839     4404
sd(cycle)                                318.13    237.03    12.45    887.34 1.00     3784     5256
sd(octroi)                                 0.26      0.19     0.01    0.70 1.00     3427     6176
sd(signification)                         79.03     50.11     3.95    189.44 1.00     1414     3396
sd(cycle:octroi)                           0.09      0.07     0.00    0.25 1.00     2542     4457
sd(cycle:signification)                   42.48     25.77     2.48    97.38 1.00     1362     3598

(I won't display cor, because none is significant)

Population-Level Effects: 
                    Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS
Intercept            1426.62    557.11   330.79  2508.66 1.00     6853
capital                 0.96      0.13     0.71     1.22 1.00     4286
cycle                -121.83    448.65  -975.28   790.58 1.00     6223
octroi                  0.66      0.32     0.04     1.28 1.00     7478
cycle:octroi           -0.24      0.11    -0.46    -0.02 1.00     6814
cycle:signification    68.84     24.51    21.21   117.63 1.00     5901
                    Tail_ESS
Intercept               9216
capital                 5551
cycle                   8056
octroi                  8184
cycle:octroi            7547
cycle:signification     6705

Family Specific Parameters: 
      Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
sigma  1211.48    209.07   816.01  1633.53 1.00     1692     1449
nu        2.37      0.65     1.42     3.91 1.00     2915     2593

A basic interpretation of these results is that the intercepts of “capital” and “octroi”, and the slope of “signification” do contribute significantly to “income” improvement.

Well, my question is : can I assume that “capital” and “octroi” are only contributing to the intercept of my outcome variable (eg, improvement at time 0) and that the only variable contributing to the improvement of the later OVER THE TIME is the slope of “signification” ? Thus, concluding that the only positive change factor is “signification” ? Or, does the results claim for a positive contribution of both “capital” and “octroi” intercepts at any time point ?

Thank you for your help !

Best,

If I’m following your model correctly, I would disagree slightly with your interpretation. It looks like “capital” and “octroi” are slopes, not intercepts. There is also the issue of whether one should refer to Bayesian estimates as significant or not, but I get what you mean and I suspect most of your readers would, too.

1 Like

Is there a reason for why you didn’t include a main (fixed) effect for signification? Generally, it’s recommended to always include main effects for any higher order interactions in your model.

Is using student_t() likelihood justfified? If you’re trying to deal with outliers, then they could also just be a natural outcome of your data generating process, and could be better accomodated via appropriate likelihood. For example, since your dependent variable is income, that tends to be distributed with a right-skew (long upper tail) and that’s something you’d be better off modeling via the lognormal() family. The best way how to check this is to do posterior predictive checks. I’d recommend running pp_check() and posting the results here.