[R-meta] mix of information available from the individual studies to compute these measures
P. Roberto Bakker
robertobakker at gmail.com
Mon Oct 2 07:38:59 CEST 2017
Hi Wolfgang,
My apologies, now I am reading my text I see it is not clear.
My first question:
I was wondering why one whould calculate the missing m1i an m21 from
mean/sd - as one needs the mean/sd for the meta.
So, wouldn't be beter to calculate the missing mean/sd from the m1i m21
(opposite direction)?
I hope my text is clear.
My second question:
You understand correctly. Thank you for your reply. You confirm my doubts.
Best regards,
Roberto
2017-10-01 23:04 GMT+02:00 Viechtbauer Wolfgang (SP) <
wolfgang.viechtbauer at maastrichtuniversity.nl>:
> 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)
>
[[alternative HTML version deleted]]
More information about the R-sig-meta-analysis
mailing list