[R-meta] Question about longitudinal that report multiple outcomes

Jack Solomon kj@j@o|omon @end|ng |rom gm@||@com
Fri Apr 30 01:43:41 CEST 2021


Thank you Wolfgang. I realized I confused something in my previous email. I
meant to say the following:

1- If I wanted to fit the `non-multivariate` parametrization of "random =
list(~ outcome | study, ~ time| interaction(study,outcome))", then, would
that have been:

"random = ~ 1| study/outcome/time"? If yes, could I then use "time" as a
fixed predictor as well? (If no, then, I think the multivariate
parametrization is the only specification that allows "time" to be used
both as random and fixed (= moderator), correct?)

2- Imagine we only have "time", then, when would it be appropriate to use:
"random = ~ 1| study/time/esID" [where "esID" is the row numbers]? and then
could I use "time" as a fixed moderator?

Conclusion: If I intend to use "time" or "outcome" both as random and fixed
(= moderator), we only should use the multivariate parametrization of the
random effect in the "rma.mv()" syntax, correct?

Thank you,
Jack

On Thu, Apr 29, 2021 at 3:08 AM Viechtbauer, Wolfgang (SP) <
wolfgang.viechtbauer using maastrichtuniversity.nl> wrote:

> Please see below.
>
> Best,
> Wolfgang
>
> >-----Original Message-----
> >From: Jack Solomon [mailto:kj.jsolomon using gmail.com]
> >Sent: Thursday, 29 April, 2021 4:08
> >To: Viechtbauer, Wolfgang (SP)
> >Cc: r-sig-meta-analysis using r-project.org
> >Subject: Re: Question about longitudinal that report multiple outcomes
> >
> >Dear Wolfgang,
> >
> >Thank you so much for your response.
> >
> >Wolfgang: I can't quite parse your question. We are saying that the two
> 1.1
> >effects are dependent and that the two 1.2 effects are dependent and that
> the two
> >2.1 effects are dependent. But the two 1.1 effects are not correlated
> with any of
> >the other effects and so on. If this is what you meant, then yes.
> >
> >++++ My question is that shouldn't 1.1, and 1.1 be correlated with 1.2
> and 1.2 as
> >they belong to "study 1"? Is n't the goal to let the effect sizes from
> each study
> >to be correlated with each other due to multiple outcomes and
> multiple time
> >points, and let the effect sizes from different studies to be
> uncorrelated with
> >each other due to being from independent studies?
>
> Yes, but that's not the purpose of the '~ time |
> interaction(study,outcome)' term which you asked about. This term allows
> for correlation among multiple effect sizes obtained over time from the
> same study and the same outcome. The correlation of different outcomes from
> the same study occurs via the '~ outcome | study' term.
>
> >++++ I imagine "~time | interaction(study,outcome)" is the same as "~time
> |
> >study/outcome", correct?
>
> If this would work in rma.mv() (which does not), then '~ time |
> study/outcome' should expand into the two terms '~ time | study' and '~
> time | interaction(study,outcome)' (if we would assume the same behavior as
> in lme()), so this is not the same as only adding '~ time |
> interaction(study,outcome)' or list(~ outcome | study, ~ time |
> interaction(study,outcome).
>
> This aside, rma.mv() does not allow terms of the form '~ inner |
> outer1/outer2'. If you want to do this, then you have to do list(~ inner |
> outer1, ~ inner | interaction(outer1, outer2').
>
> > If yes, why not  jus "random = ~time |
> >study/outcome/esID", and instead creating "random = list(~ outcome |
> study, ~ time
> >| study/outcome)"?
>
> Since the answer was no, I'll skip this.
>
> >Thank you for your knowledge,
> >Jack
> >
> >On Wed, Apr 28, 2021 at 5:09 AM Viechtbauer, Wolfgang (SP)
> ><wolfgang.viechtbauer using maastrichtuniversity.nl> wrote:
> >Dear Jack,
> >
> >Please see below for my responses.
> >
> >Best,
> >Wolfgang
> >
> >>-----Original Message-----
> >>From: Jack Solomon [mailto:kj.jsolomon using gmail.com]
> >>Sent: Monday, 26 April, 2021 23:50
> >>To: Viechtbauer, Wolfgang (SP)
> >>Cc: r-sig-meta-analysis using r-project.org
> >>Subject: Re: Question about longitudinal that report multiple outcomes
> >>
> >>Dear Wolfgang,
> >>
> >>Thank you very much for the kind response. I want to follow-up on two
> things.
> >>
> >>++++++First, I compared the syntax you suggest in your above response to
> the ones
> >>you discuss here: (
> https://stat.ethz.ch/pipermail/r-sig-meta-analysis/2018-
> >>July/000896.html), but I was not able to grasp the reasoning behind the
> >syntax you
> >>suggest in your above response?
> >>
> >>Per `?rma.mv`,  "~time | interaction(study,outcome)" would mean that
> effect
> >>sizes with different values of "interaction(study,outcome)" are assumed
> to be
> >>independent, while effects with the same values of the
> >>"interaction(study,outcome)" share correlated random effects
> corresponding to the
> >>levels of the "time".
> >>
> >>For your data example, "interaction(study,outcome)" produces 8
> elements: 1.1,
> >1.1,
> >>1.2, 1.2, 2.1, 2.1, 3.1, 3.2, there are 3 matched pairs (e.g., 1.1, 1.1)
> and 2
> >>unique elements (i.e., 3.1, 3.2).
> >>
> >>Are we saying that effect sizes corresponding to each matched pair
> (e.g., 1.1,
> >>1.1) are dependent, but the effect sizes corresponding to the unique
> elements
> >>(i.e., 3.1, 3.2) are independent from one another?
> >
> >I can't quite parse your question. We are saying that the two 1.1 effects
> are
> >dependent and that the two 1.2 effects are dependent and that the two 2.1
> effects
> >are dependent. But the two 1.1 effects are not correlated with any of the
> other
> >effects and so on. If this is what you meant, then yes.
> >
> >>++++++Second, I understand that the syntax you suggest in your above
> response
> >>provides multivariate results, but if you could possibly clarify what is
> taken as
> >>crossed (I assume 'study'), and why! and what is taken as nested and
> why! I can
> >>better generalize this to my own meta-analysis?
> >
> >There is nothing crossed here. The model below specifies a hierarchical
> model with
> >random effects for the different levels of outcome within studies and
> random
> >effects for the different levels of time within outcomes (which in turn
> are nested
> >within studies). So, it looks like this:
> >
> >     s1        s2      s3
> >     /\         |      /\
> >    /  \        |     /  \
> >   /    \       |    /    \
> >  o1    o2     o1   o1    o2
> >  /\    /\     /\    |     |
> > /  \  /  \   /  \   |     |
> >t1  t2 t1 t2 t1  t2  t1    t1
> >
> >>Highly appreciate your expertise,
> >>Jack
> >>
> >>On Mon, Apr 26, 2021 at 2:14 AM Viechtbauer, Wolfgang (SP)
> >><wolfgang.viechtbauer using maastrichtuniversity.nl> wrote:
> >>Hi Jack,
> >>
> >>That syntax won't work. Assuming the data structure is like this:
> >>
> >>study outcome time
> >>------------------
> >>1     1       1
> >>1     1       2
> >>1     2       1
> >>1     2       2
> >>2     1       1
> >>2     1       2
> >>3     1       1
> >>3     2       1
> >>
> >>then I might use:
> >>
> >>random = list(~ outcome | study, ~ time | interaction(study,outcome))
> >>
> >>with maybe struct = c("CS","AR") if the different levels of 'outcome' do
> not have
> >>any inherent meaning and are just used to distinguish different outcomes
> for the
> >>same underlying construct. If they do, then instead of "CS" one could
> use "HCS"
> >or
> >>"UN" (in which case one might also want to use yi ~
> factor(outcome)*factor(time)
> >>or, equivalently, yi ~ 0 + factor(outcome) +
> factor(outcome):factor(time)). But
> >>"HCS" and esp. "UN" adds many parameters if there are many outcomes, so
> this
> >needs
> >>to be balanced with how much data there is.
> >>
> >>Instead of "AR", one could also consider "HAR" or "CAR", but that again
> depends
> >on
> >>how much data there is and the spacing of the timepoints.
> >>
> >>Finally, strictly speaking, the 'V' matrix should then reflect not only
> the
> >>covariances in multiple observations of the same outcome over time, but
> also
> >among
> >>different outcomes (and of different outcomes measured at different time
> points).
> >>Constructing such a V matrix is tricky. The impute_covariance_matrix()
> function
> >>from the clubSandwich could be useful for this (to construct an
> approximate V
> >>matrix). This can then be followed by using cluster robust inference
> methods.
> >>
> >>Best,
> >>Wolfgang
> >>
> >>>-----Original Message-----
> >>>From: Jack Solomon [mailto:kj.jsolomon using gmail.com]
> >>>Sent: Tuesday, 20 April, 2021 17:39
> >>>To: r-sig-meta-analysis using r-project.org
> >>>Subject: Question about longitudinal that report multiple outcomes
> >>>
> >>>Hi List Members,
> >>>
> >>>I was wondering, in this example
> >>>(https://wviechtb.github.io/metafor/reference/dat.ishak2007.html), if
> the
> >>>longitudinal studies also reported multiple outcomes, would we change
> our syntax
> >>>to:
> >>>
> >>>metafor::rma.mv(yi ~ 0 + factor(time), V, random = ~ time | study /
> outcome,
> >>>struct = "HAR", data = dat.long)
> >>>
> >>>Or additional changes to V also would be recommended?
> >>>
> >>>Thank you,
> >>>Jack
>

	[[alternative HTML version deleted]]



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