[R] metafor - Cochrane on change score in pre-post design

Michael Dewey lists at dewey.myzen.co.uk
Tue Apr 14 10:34:11 CEST 2015


Comment below

On 13/04/2015 20:46, Antonello Preti wrote:
> Hi, this is another quesite related to the use of 'metafor' for calculation
> of standardized mean change in pre-post design studies.
> Essentially, my aim is to compare different method to arrive at the same
> conclusion: Does the treatment work?
>
> The Cochrane manual advise not to calculate change score:
>
> "9.4.5.2  Meta-analysis of change scores
>
> In some circumstances an analysis based on changes from baseline will be
> more efficient and powerful than comparison of final values,
> as it removes a component of between-person variability from the analysis.
> However, calculation of a change score requires measurement of the outcome
> twice
> and in practice may be less efficient for outcomes which are unstable or
> difficult to measure precisely,
> where the measurement error may be larger than true between-person baseline
> variability.
> Change-from-baseline outcomes may also be preferred if they have a less
> skewed distribution than final measurement outcomes.
> Although sometimes used as a device to ‘correct’ for unlucky randomization,
> this practice is not recommended.
>
> The preferred statistical approach to accounting for baseline measurements
> of the outcome variable
> is to include the baseline outcome measurements as a covariate in a
> regression model or analysis of covariance (ANCOVA)".
>

As I read Cochrane this is a comment about which data you should extract 
from the primary studies if you have a choice. It is not a 
recommendation to you the meta-analyst about how you subsequently 
conduct the meta-analysis of the extracted data.

> My question is: how do include both baseline (experimental and control
> group)  in the analysis as a covariate in 'metafor'?
> So, far, this is what I did.
> I kinly request some help tp add the baseline as covariate to comply with
> the Cochrane suggestion-
> How can I add the baseline mean in both groups?
> Should I consider baseline standard deviation, and if yes, how?
> Should I take into account dropouts? I mean, in some sample at baseline n =
> 30 and 35 and at end of treatment n was 28 and 29...
>
>
>
> Thank you in advance,
> Antonello Preti
>
>
>
>
> This is my dataset (with imputed r = 0.70 for pre-post correlation, put in
> the 'ri' variable):
>
> ##### the data
>
> dat <- structure(list(study = structure(c(11L, 8L, 7L, 12L, 13L, 4L,
> 5L, 1L, 10L, 3L, 6L, 9L, 2L), .Label = c("Study A, 2012",
> "Study B, 2013", "Study C, 2013", "Study D, 2010",
> "Study E, 2012", "Study F, 2013", "Study G, 2006",
> "Study H, 2005", "Study I, 2013", "Study L, 2012",
> "Study M, 2003", "Study N, 2007", "Study P, 2007"
> ), class = "factor"), c_pre_mean = c(4.9, 15.18, 19.01, 5.1,
> 16.5, 27.35, 18.1, 2.4, 14.23, 0.08, 21.26, 21.5, 21.73), c_pre_sd = c(2.6,
> 2.21, 7.1, 1.5, 7.2, 13.92, 5.4, 0.13, 4.89, 0.94, 7.65, 5.22,
> 8.43), c_post_mean = c(6.1, 13.98, 18.5, 4.53, 15.9, 23, 16.9,
> 2.2, 16.58, -0.02, 16, 16.84, 23.54), c_post_sd = c(2.06, 3.24,
> 7, 2.06, 6.8, 12.06, 3.8, 0.13, 6.35, 0.88, 4.69, 4.64, 6.74),
>      c_sample = c(14, 13, 19, 15, 34, 20, 24, 35, 31, 26, 49,
>      21, 22), e_pre_mean = c(4.6, 13.81, 19.9, 5.3, 18.7, 22.71,
>      19.2, 2.7, 15.97, -0.22, 20.9, 20.43, 21.94), e_pre_sd = c(2.1,
>      6.64, 8.1, 2.9, 7.3, 7.82, 4.1, 0.13, 6.73, 0.93, 5.18, 4.87,
>      7.02), e_post_mean = c(4.64, 15.86, 18.1, 4.33, 17.2, 24.89,
>      17.6, 2.8, 13.6, 0.06, 17.41, 16.05, 19.29), e_post_sd = c(2.34,
>      7.76, 7.8, 2.26, 7.4, 11.89, 3.7, 0.13, 5.79, 1.12, 5.16,
>      4.17, 6.58), e_sample = c(14, 18, 16, 16, 33, 28, 29, 36,
>      38, 27, 43, 25, 17), ri = c(.70,
> .70,.70,.70,.70,.70,.70,.70,.70,.70,.70,.70,.70)), .Names = c("study",
> "c_pre_mean", "c_pre_sd",
> "c_post_mean", "c_post_sd", "c_sample", "e_pre_mean", "e_pre_sd",
> "e_post_mean", "e_post_sd", "e_sample", "ri"), class = "data.frame",
> row.names = c(NA,
> -13L))
>
>
> ### check the data
>
> dim(dat)
> head(dat)
> str(dat)
>
> attach(dat) #### yes, I know, do'nt do this....
>
> # call the library
>
> library(metafor)
>
>
> # Computing Standardized Mean Difference (Hedges' g) for Each Group
> (experimental and control) at post treatment
> # use "SMD" for the standardized mean difference using raw score
> standardization
>
> datT <- escalc(measure="SMD", m1i=e_post_mean, sd1i=e_post_sd,
> n1i=e_sample, m2i=c_post_mean, sd2i=c_post_sd, n2i=c_sample, vtype="UB",
> data=dat, append=TRUE)
>
>
> # Extract the effect size ( Standardized Mean Difference (Hedges' g)) and
> its variance
>
> yi <- datT$yi
> vi <- datT$vi
>
>
>
> ###############################################
> #
> # fixed-effects model
> #
> ###############################################
>
> model.FE <- rma(yi, vi, method="FE", digits=2)
>
> summary(model.FE)
>
> # plot globale
>
> plot(model.FE, slab=paste(study))
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

-- 
Michael
http://www.dewey.myzen.co.uk/home.html



More information about the R-help mailing list