Hello everyone !
I’m fairly new to Stan (discovered R a few months ago).
I’ve collected data that includes compositional data. Meaning that one of my variables is divided into 4 sublevels that sum to 1 (or 100%) [S1 + S2 + S3 + S4 = 1 ]. They are compositional since if one goes down, another will go up.
To analyze this compositional data, I’ve been using a Dirichlet regression as suggested by Douma and Weedon (2019) [https://besjournals.onlinelibrary.wiley.com/doi/10.1111/2041-210X.13234].
However, my previous models were simple to understand. Today, I’m dealing with interaction and I’m lost.
In short, I’m doing what could be seen as a 2x2x3 design
My first factor is Feet - FA, FT (within-subject)
My second factor is FB - NoFB, GoodFB, ErroneousFB (within-subject)
My third factor is Realized - oui, non (between-subject)
My dependant variable with 4 level is Frequency Band (Med, Low, VL, UL)
My principal hypothesis is to see if there is a shift in frequency under different feedback conditions. Based on the other variable collected during the same project, I do expect to see an interaction between FB:Realized.
After doing my Dirichlet Regression, I don’t understand how to interpret the results of the interaction.
Here is my model (obtained with brms).
fit <- brm(cbind(Med, Low, VL, UL) ~ Feet + Realized + FB + (1|Participant) + (1|Trial),
data = WaveletML, family = dirichlet())
Family: dirichlet
Links: muLow = logit; muVL = logit; muUL = logit; phi = identity
Formula: cbind(Med, Low, VL, UL) ~ Feet * Realized * FB + (1 | Participant)
Data: WaveletML (Number of observations: 747)
Draws: 4 chains, each with iter = 2000; warmup = 1000; thin = 1;
total post-warmup draws = 4000
Group-Level Effects:
~Participant (Number of levels: 25)
Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
sd(muLow_Intercept) 0.06 0.04 0.00 0.14 1.00 1061 1508
sd(muVL_Intercept) 0.22 0.05 0.14 0.32 1.00 1599 2537
sd(muUL_Intercept) 0.34 0.06 0.25 0.48 1.01 1230 2216
Population-Level Effects:
Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
muLow_Intercept 0.87 0.10 0.68 1.06 1.00 1092 2069
muVL_Intercept 0.51 0.11 0.28 0.73 1.00 1226 2181
muUL_Intercept 1.07 0.12 0.83 1.33 1.01 830 1526
muLow_FeetFT 0.27 0.14 -0.00 0.54 1.00 927 1731
muLow_Realizedoui -0.03 0.17 -0.35 0.31 1.00 894 1872
muLow_FBGoodFB 0.09 0.14 -0.17 0.37 1.00 996 1814
muLow_FBNoFB -0.06 0.13 -0.32 0.21 1.00 1169 2071
muLow_FeetFT:Realizedoui -0.10 0.23 -0.56 0.35 1.00 851 1693
muLow_FeetFT:FBGoodFB -0.08 0.20 -0.46 0.30 1.00 889 1579
muLow_FeetFT:FBNoFB -0.08 0.19 -0.47 0.29 1.00 1029 1855
muLow_Realizedoui:FBGoodFB -0.34 0.22 -0.77 0.09 1.00 856 1635
muLow_Realizedoui:FBNoFB -0.15 0.22 -0.59 0.27 1.00 989 2200
muLow_FeetFT:Realizedoui:FBGoodFB 0.41 0.32 -0.22 1.02 1.00 858 1521
muLow_FeetFT:Realizedoui:FBNoFB 0.37 0.32 -0.26 1.01 1.00 978 1863
muVL_FeetFT 0.71 0.14 0.43 0.98 1.00 1002 1947
muVL_Realizedoui 0.00 0.19 -0.35 0.38 1.00 1005 2002
muVL_FBGoodFB 0.12 0.14 -0.16 0.40 1.00 1086 1813
muVL_FBNoFB -0.16 0.14 -0.44 0.11 1.00 1210 2370
muVL_FeetFT:Realizedoui -0.30 0.24 -0.78 0.17 1.00 892 1802
muVL_FeetFT:FBGoodFB -0.23 0.20 -0.61 0.17 1.00 1001 2020
muVL_FeetFT:FBNoFB 0.06 0.20 -0.32 0.45 1.00 1173 1969
muVL_Realizedoui:FBGoodFB -0.86 0.24 -1.34 -0.41 1.00 1012 1730
muVL_Realizedoui:FBNoFB -0.30 0.23 -0.75 0.15 1.00 1073 1847
muVL_FeetFT:Realizedoui:FBGoodFB 0.68 0.33 0.02 1.30 1.00 969 1712
muVL_FeetFT:Realizedoui:FBNoFB 0.62 0.33 -0.03 1.26 1.00 1021 1942
muUL_FeetFT 0.13 0.14 -0.14 0.40 1.00 860 1541
muUL_Realizedoui 0.18 0.21 -0.21 0.61 1.00 762 1648
muUL_FBGoodFB -0.00 0.13 -0.25 0.25 1.00 949 1812
muUL_FBNoFB -0.12 0.13 -0.37 0.14 1.00 1105 2358
muUL_FeetFT:Realizedoui -0.04 0.22 -0.48 0.39 1.00 841 1652
muUL_FeetFT:FBGoodFB -0.11 0.19 -0.49 0.27 1.00 913 1704
muUL_FeetFT:FBNoFB 0.30 0.19 -0.08 0.67 1.00 1006 1986
muUL_Realizedoui:FBGoodFB -1.07 0.22 -1.49 -0.64 1.00 909 1651
muUL_Realizedoui:FBNoFB -0.51 0.21 -0.93 -0.12 1.00 951 2264
muUL_FeetFT:Realizedoui:FBGoodFB 0.59 0.32 -0.04 1.20 1.00 915 1720
muUL_FeetFT:Realizedoui:FBNoFB 0.51 0.31 -0.09 1.12 1.00 1025 2002
Family Specific Parameters:
Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
phi 11.34 0.33 10.71 11.99 1.00 5405 3008
Draws were sampled using sampling(NUTS). For each parameter, Bulk_ESS
and Tail_ESS are effective sample size measures, and Rhat is the potential
scale reduction factor on split chains (at convergence, Rhat = 1).
From the result, I see a significant intercept and few significant slopes as suggested by a 95%CrI that do not include zero.
Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
muLow_Intercept 0.87 0.10 0.68 1.06 1.00 1092 2069
muVL_Intercept 0.51 0.11 0.28 0.73 1.00 1226 2181
muUL_Intercept 1.07 0.12 0.83 1.33 1.01 830 1526
muVL_FeetFT 0.71 0.14 0.43 0.98 1.00 1002 1947
muVL_Realizedoui:FBGoodFB -0.86 0.24 -1.34 -0.41 1.00 1012 1730
muVL_FeetFT:Realizedoui:FBGoodFB 0.68 0.33 0.02 1.30 1.00 969 1712
muUL_Realizedoui:FBGoodFB -1.07 0.22 -1.49 -0.64 1.00 909 1651
muUL_Realizedoui:FBNoFB -0.51 0.21 -0.93 -0.12 1.00 951 2264
From my understanding of this output, the slope/intercept is compared to a reference value. In this case, the reference value is ErroneousFB-FA-non and the Med band. Thus, when I have a significant slope like :
muUL_Realizedoui:FBGoodFB -1.07 0.22 -1.49 -0.64 1.00 909 1651
it means that the slope for that condition specifically is different from the slope from the reference.
However, although it is interesting, I feel that there is some comparison missing … like in a post-hoc or simple effect analysis through emmeans.
Here is a graph representation of the mean contribution and the 95%CI
We see through the figure that there is an interaction between FB:Realized. However, the Dirichlet regression only looks at specific predictors. For instance, I don’t know if there is an effect of GoodFB compared to NoFB (as it is always compared to ErroneousFB - the reference).
So what am I missing? Do I need to do an additional step/analysis? How can I interpret my results (and provide evidence of significant differences)? Is there a kind of post-hoc for the Dirichlet regression?
Any help would be much appreciated!
Thanks !