[R-meta] mix of information available from the individual studies to compute these measures

Viechtbauer Wolfgang (SP) wolfgang.viechtbauer at maastrichtuniversity.nl
Sun Oct 1 23:04:17 CEST 2017


I am having a hard time understanding your questions.

What do you mean by 'calculating in opposite direction'?

As for the second part, if I understand you correctly, you are wondering what to do when some studies directly provide some kind of standardized mean change value (or the difference between the standardized mean change in a treatment versus a control group), but you do not know how exactly the value was computed. Since there are various ways of computing the standardized mean change - some using raw, some using change score standardization - and they are not all directly comparable, I would not feel comfortable adding them to a meta-analysis unless I know how they were computed.

Best,
Wolfgang

-----Original Message-----
From: R-sig-meta-analysis [mailto:r-sig-meta-analysis-bounces at r-project.org] On Behalf Of P. Roberto Bakker
Sent: Saturday, 30 September, 2017 11:11
To: r-sig-meta-analysis at r-project.org
Subject: [R-meta] mix of information available from the individual studies to compute these measures

Hi everybody, 

I am conducting a meta-analysis of pre-post changes and find mix information. 
The notes how to solve this problem are very clear in the Metafor information (https://cran.r-project.org/web/packages/metafor/metafor.pdf) * 
Two questions
1. I was wondering whether the calculating in opposite direction would also be a good alternative. i.e. calculating the mean change + SD from pre-post (if m1i and m2i)? I have many studies with pre-post info. Please find the syntax as pilot**. Is this a good alternative?
2. The articles for my meta-analysis do not mention how mean changes/SD were calculated – so I never know whether calculating mean change/SD into if m1i and m2i, or from if m1i and m2i use the same formula. Probably Hedges g, but this is not sure. What is your view in this.

Best and thank you in advance. 
Roberto

* Metafor: https://cran.r-project.org/web/packages/metafor/metafor.pdf
“A few notes about the change score measures. In practice, one often has a mix of information available from the individual studies to compute these measures. In particular, if m1i and m2i are unknown, but the raw mean change is directly reported in a particular study, then you can set m1i to that value and m2i to 0 (making sure that the raw mean change was computed as m1i-m2i within that study and not the other way around). Also, for the raw mean change ("MC") or the standardized mean change using change score standardization ("SMCC"), if sd1i, sd2i, and ri are unknown, but the standard deviation of the change scores is directly reported, then you can set sd1i to that value and both sd2i and ri to 0. Finally, for the standardized mean change using raw score standardization ("SMCR"), argument sd2i is actually not needed, as the standardization is only based on sd1i (Becker, 1988; Morris, 2000), which is usually the pretest standard deviation (if the post-test standard deviation should be used, then set sd1i to that). Finally, all of these measures are also applicable for matched-pairs designs (subscripts 1 and 2 then simply denote the first and second group that are formed by the matching).”

** [I hope this is the correct way to send syntaxes it by mail]

datT <- data.frame(
  m_pre   = c(30.6, 23.5, 0.5, 53.4, 35.6),
  m_post  = c(38.5, 26.8, 0.7, 75.9, 36.0),
  sd_pre  = c(15.0, 3.1, 0.1, 14.5, 4.7),
  sd_post = c(11.6, 4.1, 0.1, 4.4, 4.6),
  ni      = c(20, 50, 9, 10, 14),
  ri      = c(0.47, 0.64, 0.77, 0.89, 0.44))

datC <- data.frame(
  m_pre   = c(23.1, 24.9, 0.6, 55.7, 34.8),
  m_post  = c(19.7, 25.3, 0.6, 60.7, 33.4),
  sd_pre  = c(13.8, 4.1, 0.2, 17.3, 3.1),
  sd_post = c(14.8, 3.3, 0.2, 17.9, 6.9),
  ni      = c(20, 42, 9, 11, 14),
  ri      = c(0.47, 0.64, 0.77, 0.89, 0.44))

datT
datC

datT <- escalc(measure="SMCR", m1i=m_post, m2i=m_pre, sd1i=sd_pre, ni=ni, ri=ri, data=datT)
datC <- escalc(measure="SMCR", m1i=m_post, m2i=m_pre, sd1i=sd_pre, ni=ni, ri=ri, data=datC)

datT
datC

datT[c(1:4),c(7,8)] <- NA
datC[c(1:4),c(7,8)] <- NA
datT[c(5),c(1:6)] <- NA
datC[c(5),c(1:6)] <- NA

datT
datC

datT <- replmiss(datT, escalc(measure="SMCR", m1i=m_post, m2i=m_pre, sd1i=sd_pre, ni=ni, ri=ri, data=datT))
datC <- replmiss(datC, escalc(measure="SMCR", m1i=m_post, m2i=m_pre, sd1i=sd_pre, ni=ni, ri=ri, data=datC))

datT
datC

dat <- data.frame(yi = datT$yi - datC$yi, vi = datT$vi + datC$vi)
round(dat, 2)

rma(yi, vi, data=dat, method="FE", digits=2)


More information about the R-sig-meta-analysis mailing list