# Interpretation of the results of a multi-level meta-analysis with metafor

I have noticed that the topic has been already treated in other questions but I am still struggling about one specific issues. In details,

FC_Feedstock <- rma.mv(yi = EF,
+                      V = STDEV,
+                      slab = N,
+                      data = FC,
+                      random = ~ 1 | Title/N,
+                      test = "t",
+                      method = "REML", mods = ~ Feedstock)
> summary(FC_Feedstock)

Multivariate Meta-Analysis Model (k = 19; method: REML)

logLik  Deviance       AIC       BIC      AICc
-2.1142    4.2284   12.2284   15.5612   15.5617

Variance Components:

estim    sqrt  nlvls  fixed   factor
sigma^2.1  0.0523  0.2287      6     no    Title
sigma^2.2  0.0429  0.2071     19     no  Title/N

Test for Residual Heterogeneity:
QE(df = 17) = 274.3639, p-val < .0001

Test of Moderators (coefficient 2):
F(df1 = 1, df2 = 17) = 0.3250, p-val = 0.5761

Model Results:

estimate      se     tval  df    pval    ci.lb   ci.ub
intrcpt             -0.0555  0.1952  -0.2844  17  0.7796  -0.4675  0.3564
Feedstocksoftwood   -0.1149  0.2015  -0.5701  17  0.5761  -0.5400  0.3102

---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1


I understand that the effect size for the category "softwood" of the moderator "feestock" is "-0.0555 + (-0.1149)", that is -0.1704, but the question is if also the confidence intervals should be derived summing them to the ones of the intercept or if instead they are already reported in the "definitive" form. In a few words the effects size and confidence intervals for the category "softwood" are:

-0.1704 [-0.54, 0.3102] or -0.1704 [-1.0075, 0.6666]

• How about removing the intercept with mods = ~Feedstock - 1? That should give you the estimates for each level of Feedstock. Commented Sep 25, 2022 at 12:45
• That's great, now it works perfectly :-)--- thank you very much Commented Sep 25, 2022 at 13:20
• Alternatively, after fitting the model above, use predict(FC_Feedstock, newmods=c(0,1). Commented Sep 26, 2022 at 4:39

I would propose just to reverse the order of the factor levels for the column Feedstock in your original dataset (let's call this original dataset df):

if (!require('tidyverse')) install.packages('tidyverse'); library('tidyverse')
df <- df %>% mutate(Feedstock = fct_rev(Feedstock))


and then to take the intercept's CI. If the output of the model doesn't change, then to run the line

df <- df %>% mutate(Feedstock = fct_rev(Feedstock))


one more time and repeat modeling.

• Can be an idea, thank you Commented Sep 25, 2022 at 9:45
• But if possible I would be glad if someone else can give an universal explanation with no need to repeat all the time the analysis Commented Sep 25, 2022 at 12:33