Dear Daniel,
predict(metareg, transf=transf.ipft.hm, targ=list(ni=a$total)) gives you
the fitted values (proportions) for the 11 studies. So these are the
predicted values (based on the model) for whatever values these studies
take on for the moderator variables. If you want to compute predicted
values for other combinations of moderator values, you need to use the
'newmods' argument. For example:
predict(metareg, newmods = c(0,1,1,0),
transf=transf.ipft.hm, targ=list(ni=a$total))
will give the predicted value (proportion) for continent = North America,
age = infant, and pm = LA (based on your post on Stack Overflow --
https://stackoverflow.com/questions/58203464/reverse-transformation-of-double-arscine-transformed-estimates-when-doing-meta-r
-- I can see that pm has two levels, LA (reference level) and TA).
By varying one moderator and holding the other moderators constant, you
can illustrate how a moderator affects the results (you cannot just take
the model coefficients and transform them).
But: The back-transformation for the FT transformation is problematic.
Please take a look at:
https://onlinelibrary.wiley.com/doi/full/10.1002/jrsm.1348
Even though the FT transformation has some nice properties, I would
therefore avoid it (because we typically do want to back-transform in the
end). You could either just use the 'standard' arcsine square root
transformation (measure="PAS") or maybe even better switch to a logistic
mixed-effects model, which you can fit with rma.glmm():
metareg <- rma.glmm(measure="PLO", ai=compl, nu=total, data=a,
mods = ~ continent + age + pm)
The results are then analyzed on the logit (log odds) scale. So, the
back-transformation to odds would be:
predict(metareg, newmods = c(0,1,1,0), transf=exp)
In fact, here, you can exponentiate the coefficients themselves, which
then reflect odds ratios:
round(exp(coef(summary(metareg))[,c("estimtate", "ci.lb", "ci.ub")]), 3)
The back-transformation to proportions would be:
predict(metareg, newmods = c(0,1,1,0), transf=transf.ilogit)
Best,
Wolfgang
-----Original Message-----
From: R-sig-meta-analysis [mailto:
r-sig-meta-analysis-bounces at r-project.org] On Behalf Of Daniel M?nsted
Shabanzadeh
Sent: Friday, 04 October, 2019 10:47
To: r-sig-meta-analysis at r-project.org
Subject: [R-meta] Back transformation of double arscine transformed
estimates in metafor
Hey
I am performing a meta-regression of multiple single arm
studies. The outcome is proportions of complications following a specific
surgical treatment which is the same for all included studies. I want to
explore if variables such as age, continent or medications have an impact
on the outcome. Since some of the identified studies have 0 complications
events I have performed Freeman-Tuckey double arscine transformation of
data.
Data transformation
b<-escalc(xi=compl, ni=total, data=a, measure="PFT", add=0)
Meta-regression of multiple identified studies
metareg<-rma(yi, vi, data=b, mods=~continent+age+pm)
print(metareg)
Mixed-Effects Model (k = 11; tau^2 estimator: REML)
tau^2 (estimated amount of residual heterogeneity): 0.0091 (SE =
0.0060)
tau (square root of estimated tau^2 value): 0.0952
I^2 (residual heterogeneity / unaccounted variability): 91.15%
H^2 (unaccounted variability / sampling variability): 11.30
R^2 (amount of heterogeneity accounted for): 28.85%
Test for Residual Heterogeneity:
QE(df = 6) = 78.3204, p-val < .0001
Test of Moderators (coefficient(s) 2:5):
QM(df = 4) = 7.6936, p-val = 0.1035
Model Results:
estimate se zval pval ci.lb ci.ub
intrcpt 0.3197 0.1079 2.9640 0.0030 0.1083
0.5311 **
continentAsia -0.1666 0.1062 -1.5685 0.1168 -0.3747 0.0416
continentNorth America -0.1755 0.1067 -1.6452 0.0999 -0.3845
0.0336 .
ageinfant 0.1824 0.0741 2.4616 0.0138 0.0372
0.3277 *
pmTA -0.1484 0.0973 -1.5252 0.1272 -0.3392 0.0423
---
Signif. codes: 0 ?***? 0.001 ?**? 0.01 ?*? 0.05 ?.? 0.1 ? ? 1
These estimates and CI are transformed. Usually I would transform them back
to proportions with predict in presence of simple models. But I am not sure
hos to do it in multiple models.
predict(metareg, transf=transf.ipft.hm, targ=list(ni=a$total)). This gives
us multiple lines of estimates which I cannot interpretate:
pred ci.lb ci.ub cr.lb cr.ub
1 0.0259 0.0017 0.0715 0.0000 0.1388
2 0.0202 0.0005 0.0594 0.0000 0.1245
3 0.0000 0.0000 0.0348 0.0000 0.0692
4 0.0202 0.0005 0.0594 0.0000 0.1245
5 0.1058 0.0290 0.2206 0.0056 0.2976
6 0.0175 0.0000 0.0940 0.0000 0.1478
7 0.1174 0.0380 0.2310 0.0100 0.3110
8 0.0202 0.0005 0.0594 0.0000 0.1245
9 0.0283 0.0000 0.1236 0.0000 0.1799
10 0.0259 0.0017 0.0715 0.0000 0.1388
11 0.0259 0.0017 0.0715 0.0000 0.1388
How do I obtain estimates of proportions for the impact of each variable
explored in the model?
Regards,
Daniel