# Meta-analysis of percentages at baseline and follow-ups in R using metafor package

I would like to conduct a meta-analysis in the context where I have studies available that measure a continuos variable at multiple time points (0, 1, 2, 3, 4, 5). Time 0 represents the baseline where values are at 100%. Right afterwards there is an intervention and the effect of the intervention is measured over time (114% represents a 14% change relative to baseline). Also I have given two different groups that received different interventions.

Please consider the following dummy data set:

library(ggplot2)
library(metafor)
library(dplyr)
n <- 10
a <- c(rnorm(n,100,0), rnorm(n, 110,2), rnorm(n,130,2), rnorm(n,135,2), rnorm(n,130,2), rnorm(n,125,2))
b <- c(rnorm(n,100,0), rnorm(n,107,2), rnorm(n,122,2), rnorm(n,128,2), rnorm(n,122,2), rnorm(n,125,2))
sd <- rnorm(n,10,1)
my_dat <- data.frame(mean=c(a, b), sd=rep(sd,12), time=rep(c(rep(0,n), rep(1,n), rep(2,n), rep(3,n), rep(4,n), rep(5,n)),2), group=c(rep("A", 60), rep("B",60)), n=rep(n,120))
my_dat$study <- 1:10 p <- ggplot(aes(y=mean, x=time, colour=group), data=my_dat) p + geom_jitter() + geom_smooth() + ylab("% relative to baseline") + xlab("time")  I would like to : 1) investigate the main effect of time (as well as post-hoc tests) for each group individually using the metafor package. 2) investigate the main effect of group (as well as post-hoc tests) for each point in time using the metafor package. 3) investigate group-time interactions. Thus I rearrange the data and calculate hegdes g relative to baseline t0: t0_dat <- summarise(group_by(my_dat[my_dat$time==0,], study, group), t0_mean=mean(mean), t0_sd=mean(sd))
my_dat <- merge(my_dat, t0_dat, by=c("study", "group"), all.x=T)
my_dat <- escalc(m1i=mean, m2i=t0_mean, sd1i=sd, sd2i=t0_sd, n1i=n, n2i=n, measure="SMD", data=my_dat, append=T)
p <- ggplot(aes(y=yi, x=time, xmin=yi-vi, xmax=yi+vi, colour=group), data=my_dat)
p + geom_point() + geom_smooth() + ylab("hedges g") + xlab("time") + xlim(c(0,5)) + ylim(c(0,5))


Finally I can run the meta-analysis:

m1 <- rma(yi,vi, data=my_dat, mods=~time*group)
summary(m1)


This indicates a sig. effect of time, a sig. effect of group but no interaction: Model Results:

         estimate      se     zval    pval    ci.lb    ci.ub
intrcpt        1.4500  0.2159   6.7158  <.0001   1.0269   1.8732  ***
time           0.3294  0.0667   4.9363  <.0001   0.1986   0.4602  ***
groupB        -0.6808  0.2994  -2.2738  0.0230  -1.2676  -0.0940    *
time:groupB    0.0802  0.0932   0.8609  0.3893  -0.1024   0.2628

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


Is this an valid approach? Would it be appropriate to instead of converting to effect size (hedges g) to use the percentage values (as extracted from the papers) and log-transform them as suggested in this question, in this question or in the comments below? Hints to papers that conducted comparable analysis are more then welcome!

• There is no study id variable in the dataset. Are these supposed to be 10 studies? So, is my_dat\$study <- 1:10 correct? – Wolfgang Dec 7 '14 at 18:59
• Yes, correct! I updated the code as suggested. – jokel Dec 7 '14 at 21:54
• Percent change is not a valid dependent variable because it is asymmetric (e.g., a 100% increase is balanced by a 50% decrease). Use the log ratio and then interpret anti-logs of regression coefficients as fold change estimates (ratios of medians). – Frank Harrell Dec 7 '14 at 23:43
• Also, what is the meaning of time 0 in that dataset? Is time 0 = baseline? But if those values are supposed to be percent change values, then what do those values at time 0 represent? – Wolfgang Dec 8 '14 at 8:16
• What I actually meant is "% relative to baseline" (baseline=t0). I updated the question to make it more clear. – jokel Dec 9 '14 at 23:08