meta-analysis – Back-Transforming Regression Coefficients in Multilevel Meta-Regression Using Metafor

meta-analysismeta-regressionmetaforreliability-generalizationreliability-meta-analysis

My question is an extension of this one, where I asked about back-transforming the results of a reliability generalization meta-analysis.

I have run a three-level meta-regression, using the Bonett-transformed coefficient alpha as an effect size and various categorical and centred-continuous predictors. The model shell looks something like this:

model <- rma.mv(yi, vi, random = ~ 1 | level3/level2, mods = ~ I(pred1-mean(pred1)) + I(pred2-mean(pred2)) + factor(pred3) + factor(pred4))

The output I get with summary(model) gives me the transformed regression coefficients.

My question is, how do I retrieve the back-transformed regression coefficients (e.g., the intercept, betas, and standard errors in their original scale?).

Furthermore, is there an accessible way to retrieve the standardized regression coefficients, after having back-transformed them?"

I have tried the following methods:

Manual back-transform (for a Bonett transform)

b0_est <- 1 - exp(-model$b[1])
b0_se <- 1 - exp(-model$se[1])

Where [1] would reference the intercept, but [2] would reference a regression weight (in this example, we would reference 2-5, since there are four predictors).

The issue I am having with this method is that the transformed estimates do not necessarily match the untransformed estimates. For instance, the back-transformed regression coefficient for one predictor is .5 (SE = .27). The transformed estimate that I get from the summary(model) output is significant at the 5% level (.69, SE = .31, z = 2.24) but the manually back-transformed values would no longer be significant (e.g., .5, SE .27, z = 1.85).

Predict function

predict(model, newmods=colMeans(model.matrix(model))[-1], transf=transf.iabt)

This provides a back-transformed estimate of the intercept, but I am not sure how to apply this to retrieve the regression weights and their standard errors.

Best Answer

You cannot back-transform the coefficients directly, as they do not reflect estimated transformed coefficient alpha values, but differences thereof (e.g., between different categories of a categorical moderator or differences when a quantitative moderator increases by one unit).

One can compute predicted transformed values using the predict() function and then use the transf=transf.iabt back-transformation as you have done. That's of course not the same as getting 'back-transformed regression coefficients' but again, you essentially cannot get the latter.