[R-meta] Data Extraction

Viechtbauer, Wolfgang (SP) wo||g@ng@v|echtb@uer @end|ng |rom m@@@tr|chtun|ver@|ty@n|
Tue Aug 18 11:58:01 CEST 2020


se.from.p() back-calculates the SE based on a z-test, when we can probably safely assume that something more along the lines of a t-test was done. But we can do something along the same lines, but using a t-test, with:

1.88 / qt(.64/2, df=30+36-2, lower.tail=FALSE)

This yields 4.000567 for the SE. Using the back-calculation based on the CI, i.e.,

(9.3 - -5.7) / (2*qt(.975, df=30+36-2))

yields 3.754262. The discrepancy is quite large and cannot really be explained based on rounding errors. I don't know how that p-value was computed in the original study - the code above assumes that a t-test was done on the change scores for the two groups.

The SD reported by se.from.p() is based on multiplying the SE with sqrt(N), but this isn't appropriate here either. It should be SE / sqrt(1/n1 + 1/n2), so either

1.88 / qt(.64/2, df=30+36-2, lower.tail=FALSE) / sqrt(1/30 + 1/36)

or

(9.3 - -5.7) / (2*qt(.975, df=30+36-2)) / sqrt(1/30 + 1/36)

So either one of these (~16.2 or ~15.2) can be assumed as the SD of the change scores (within each group). If we now assume r = 0.5, then indeed the SD of the change scores is the same as the SD of the raw scores (although I would not call this conservative), so I would do either:

summary(escalc(measure="SMD", m1i=1.88, sd1i=16.2, m2i=0, sd2i=16.2, n1i=30, n2i=36))
summary(escalc(measure="SMD", m1i=1.88, sd1i=15.2, m2i=0, sd2i=15.2, n1i=30, n2i=36))

This isn't all that different from what got, but in my opinion more justifiable.

Best,
Wolfgang

>-----Original Message-----
>From: Tobias Saueressig [mailto:t.saueressig using gmx.de]
>Sent: Tuesday, 18 August, 2020 11:14
>To: Viechtbauer, Wolfgang (SP)
>Cc: r-sig-meta-analysis using r-project.org
>Subject: Aw: RE: RE: [R-meta] Data Extraction
>
>Dear Wolfgang, at all
>
>sorry for that.
>
>I thought this might also a way to do it. Or am I way off?
>Between-group change score from baseline to follow-up (9 months) is 1.8(-
>5.7, 9.3) (mean and 95%CI) and p-value 0.64; Sample size is n1 = 30; n2 =
>36 (two group RCT).
>require(dmetar)
>require(esc)
>#### Calculate the standard error from the effect size and p-value ####
>se.from.p(effect.size = 1.88, p = 0.64, N = 66,effect.size.type=
>"difference", calculate.g = FALSE)
>#### Results####
>EffectSize StandardError StandardDeviation      LLCI     ULCI
>1       1.88      3.871948          31.45585 -5.709017 9.469017
>##### Assume that r = 0.5 (conservative) => SD_change = SD_pre_post *
>sqrt(2*0.5) ####
>esc_mean_se(grp1m = 1.88, grp1se = 3.871948, grp1n = 30,
>grp2m = 0, grp2se = 3.871948 , grp2n = 36, es.type = "g")
>#### Results ####
>Effect Size Calculation for Meta Analysis
>
>     Conversion: mean and se to effect size Hedges' g
>    Effect Size:   0.0845
> Standard Error:   0.2473
>       Variance:   0.0612
>       Lower CI:  -0.4003
>       Upper CI:   0.5692
>         Weight:  16.3488
>
>Gesendet: Dienstag, 18. August 2020 um 08:50 Uhr
>Von: "Viechtbauer, Wolfgang (SP)"
><wolfgang.viechtbauer using maastrichtuniversity.nl>
>An: "Tobias Saueressig" <t.saueressig using gmx.de>
>Cc: "r-sig-meta-analysis using r-project.org" <r-sig-meta-analysis using r-project.org>
>Betreff: RE: RE: [R-meta] Data Extraction
>Please always cc the mailing list.
>
>You can include the study if you know (or can guestimate) the pre-post
>correlation.
>
>SD of the change scores = SD * sqrt(2*(1-r)),
>
>where SD is the pre or post treatment SD (this assumes that the SD is the
>same before and after the treatment). So if you know r, you can easily
>recover the SD and standardize in the usual manner.
>
>Best,
>Wolfgang
>
>>-----Original Message-----
>>From: Tobias Saueressig [mailto:t.saueressig using gmx.de]
>>Sent: Tuesday, 18 August, 2020 7:40
>>To: Viechtbauer, Wolfgang (SP)
>>Subject: Aw: RE: [R-meta] Data Extraction
>>
>>Dear Wolfgang,
>>
>>you are my hero. Thank you.
>>
>>I am a bit sad that I cannot include the study because it is based on
>change
>>scores and I have used postintervention only.
>>
>>Gesendet: Montag, 17. August 2020 um 22:33 Uhr
>>Von: "Viechtbauer, Wolfgang (SP)"
>><wolfgang.viechtbauer using maastrichtuniversity.nl>
>>An: "Tobias Saueressig" <t.saueressig using gmx.de>, "r-sig-meta-analysis using r-
>>project.org" <r-sig-meta-analysis using r-project.org>
>>Betreff: RE: [R-meta] Data Extraction
>>Dear Tobias,
>>
>>The difference between the upper and lower CI bounds divided by the
>>appropriate critical t-value should be *twice* the SE. So:
>>
>>SE <- (9.3 - -5.7) / (2*1.99)
>>
>>should be the SE of the difference in the mean change between the two
>>groups. Dividing this by sqrt(1/n1 + 1/n2) should give you the SD of the
>>change scores (assuming homoscedasticity of the change variances in the two
>>groups), so:
>>
>>SD <- SE / sqrt(1/30 + 1/36)
>>
>>Hence:
>>
>>1.8/SD
>>
>>yields approximately 0.12. Sure you can apply the bias correction, but this
>>is hardly relevant here.
>>
>>More importantly, this d-value standardizes the difference between the two
>>groups based on the (pooled) SD of the change scores. This is not
>comparable
>>to d-values that use the SD of a single time point for the standardization.
>>
>>Best,
>>Wolfgang
>>
>>>-----Original Message-----
>>>From: R-sig-meta-analysis [mailto:r-sig-meta-analysis-bounces using r-
>>project.org]
>>>On Behalf Of Tobias Saueressig
>>>Sent: Monday, 17 August, 2020 12:03
>>>To: r-sig-meta-analysis using r-project.org
>>>Subject: [R-meta] Data Extraction
>>>
>>>Hello,
>>>
>>>I have a problem to extract data from one study.  I want to calculate
>>hedges
>>>g.
>>>
>>>I have the following information (2 groups):
>>>
>>>Between-group change score from baseline to follow-up (9 months) is 1.8(-
>>>5.7,9.3) (mean and 95%CI) and p-value 0.64
>>>
>>>Sample size is n1 = 30; n2 = 36 (two group RCT).
>>>
>>>Link: https://linkinghub.elsevier.com/retrieve/pii/S1063458420309882 (TABL
>E
>>>2 HOOS ADL)
>>>
>>>I would do it the following way:
>>>
>>>Calculate a SD for both group from the CI. _> SE = (Upper limit-lower
>>>limit)/t-statistic (~2) => SD = SE/squ(1/n1 + 1/n2)
>>>
>>>Then g = d = MD/SD
>>>
>>>g* = (1-3/(4*(n1+n2)-9) * g
>>>
>>>e.g.
>>>
>>>SE = (9.3+5.7)/1.99 = 7.54 => SD = 7.54/squ(1/30+1/36) = 7.54/0.25 = 30.16
>>>
>>>g = 1.8/30.16 = 0.06
>>>
>>>g* = 0.06 * (1-3/255) = 0.06 * 0.99 = 0.0594
>>>
>>>Is that correct?
>>>
>>>Best regards
>>>
>>>Tobias


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