[R-meta] Meta-analysis dependency - escalc aggregate in Metafor - multiple cluster variables

Paulina Stedall P@u||n@@Sted@|| @end|ng |rom mon@@h@edu
Thu Dec 9 05:54:33 CET 2021

```Hi everyone,

I'm currently working on a meta-analysis using Metafor and am seeking
assistance to address dependence in the data.

In more simple cases (e.g., one study with two patient subgroups), we have
calculated SMD and variance per subgroup, followed by aggregating these two
estimates into one combined effect size. We have taken a similar approach
for scenarios in which two studies report on outcomes for the same cohort
at two timepoints (taking into account the autocorrelation) and for studies
reporting on the same outcome using multiple measures (taking into account
the correlation between the measures). Our question relates to more complex
scenarios that involve dependence across multiple clustering variables. For
example:

The following studies assessed an outcome in two subgroups:

Study 1: assessed Y in group 1 and 2 using measure A at 11 years

Study 2: assessed Y in group 1 and 2 using measure B at 11 years

Study 3: assessed Y in group 1 and 2 using measure B at 12 years

Study 4: assessed Y in group 1 and 2 using measure B at 13 years

Study 5: assessed Y in group 1 and 2 using measure B at 14 years

This means we want to aggregate effect sizes from both groups (struct=”ID),
across 4 time points (struct=”CAR”), and from measure A and B (at time
point 1 only; struct=”CS”).

Could we do this in separate steps, by first aggregating the ES from both
groups, then measure A and B at 11 years, and then across time points? Or
should we aggregate over subgroups first and subsequently use
struct=”CS+CAR” to account for two clustering variables simultaneously? The
latter is probably preferred, but the following code results in an error.

dat <- escalc(measure="SMD", m1i=M_target, sd1i=SD_target, n1i=N_target,

m2i=M_control, sd2i=SD_control, n2i=N_control,
data=data)

class(dat)

dat

Subgroup Timepoint Study Cohort Measure M_target SD_target N_target
M_control SD_control N_control      yi     vi

1         1        11     1      1       1    -0.13      0.90       57
0.07       0.60        49 -0.2558 0.0383

2         2        11     1      1       1     0.10      0.85       53
0.07       0.60        49  0.0402 0.0393

3         2        11     2      1       2     8.63      2.96       32
9.36       3.02        36 -0.2412 0.0595

4         1        11     2      1       2     7.36      3.27       33
9.36       3.02        36 -0.6294 0.0610

5         2        12     3      1       2     8.37      3.51       38
9.96       2.79        48 -0.5038 0.0486

6         1        12     3      1       2     7.67      3.56       46
9.96       2.79        48 -0.7120 0.0453

7         2        13     4      1       2     8.26      2.81       38
9.94       2.76        50 -0.5987 0.0484

8         1        13     4      1       2     7.86      2.87       49
9.94       2.76        50 -0.7332 0.0431

9         2        14     5      1       2     9.17      3.07       29
9.94       3.05        34 -0.2486 0.0644

10        1        14     5      1       2     7.90      3.63       31
9.94       3.05        34 -0.6037 0.0645

#step 1: aggregate subgroup 1 and 2

agg_subgroup <- aggregate(dat, cluster=Study, struct="ID")

agg_subgroup

#combined aggregation for time and measure >> doesn't work!

agg <- aggregate(agg_subgroup, cluster=Cohort, struct="CS+CAR", rho=0.6,
phi=0.8, time=Timepoint)

agg

Error in aggregate.escalc(agg_subgroup, cluster = Cohort, struct = "CS+CAR",  :

Cannot aggregate estimates with a non-positive-definite 'V' matrix.

'V' appears to be not positive definite in cluster 1.

Kind regards,

Paulina

--
*PAULINA STEDALL*
Doctor of Psychology (Clinical Neuropsychology) Candidate
Provisional Psychologist, MCRI Student
BPsy (Hons); Assoc MAPS
email: paulina.stedall using monash.edu

Turner Institute for Brain and Mental Health
School of Psychological Sciences
Monash University

[[alternative HTML version deleted]]

```