# How to test for contrasts and interpret multiple meta-regression in metafor

Lets say I was meta-analysing studies which have assessed the influence of a warm- up on running performance (completely hypothetical). Lets also say that I wanted to find out whether pre-exercise nutrition, the duration of the warm up, and the type of music had any influence.

Nutrition<- c("Meal", "Shake", "Nothing")
Duration<- c("Long", "Short")
Music<- c("Self-selected", "Pre-determined"


For Nutrition, the reference level is "Meal". For duration, the reference level is "Long". For music, the reference level is "Self-selected". I then build the following mixed effects model using the excellent package metafor and assume that these are additive (for simplicities sake).

rma.mv(yi= effect, V= samp_var, slab= Auth, Data= Final_Dat, mods= ~ Nutrition + Duration + Music, method "REML", random= ~ Study/Outcome)


Having gotten this far, let's say I receive the following output from the model.

intercept= 15.50
Nutrition Shake= -2.620
Nutrition Nothing = -5.387
Duration short = - 2.113
Music Pre-determined= 4.2


Now based on my reading, and previous stats knowledge, I understand that the intercept is the estimated effect of having a long warm-up with self-selected music following a proper meal. I also understand that coefficients 2 and 3 represent the difference between that level of the factor and the intercept. Based on this my questions are as follows:

Q1: I assume for coefficients 2& 3, the levels of the other factor(s) are held constant? So, in this case, coefficient 2 would be the estimated average difference in running performance when a shake is consumed before a long warm up with self-selected music. Is this the correct interpretation?

Q2: What is the interpretation of coefficients 4&5? Are these similar to 2&3 in that the other categories are held constant? That is, would the interpretation of coefficient 4 be "the average difference in effect between a short warm-up performed to self-selected music after a meal" or is this just the average difference between a short and long warm up, irrespective of the level of the other categories?

Q3: How do I calculate comparisons for those not explicitly reported in the output. That is, what if I wanted to know whether there was a difference between consuming nothing when a short warm-up is completed with pre-determined music?

I tried reading: https://www.metafor-project.org/doku.php/tips:multiple_factors_interactions. This has some excellent information and examples, but I was wondering if anyone could help extending this to the case where categorical moderators are >2. It seems the general way to do this would be to perform an anova with the coefficients specified in someway, or through the glht function of the multicomp package. However, I'm just looking for a bit more guidance on how this would actually be implemented.