[R-meta] Time as indicator vs time as meaning

Stefanou Revesz @te|@noureve@z @end|ng |rom gm@||@com
Fri Oct 15 18:29:35 CEST 2021


Dear Wolfgang,

Once again, thank you for your help! I wanted to follow-up on the two
different senses of time that we discussed together. Let's assume
measurement occasions are spaced equally (in weeks) across the studies
(or that it can be controlled for if needed).

In "model_time_car", we conclude that for each additional week, the
average true effect of treatment goes up by 0.1156 in the SMD unit. My
audience should then think that the effect of treatment consistently
increases compared to the intercept (0.3667); each week going up by
0.1156 up to the last possible week in the data (plot attached).

In "model_time_UN", we conclude that at the baseline, the average true
effect of treatment is 0.0194 in the SMD unit. But that effect
fluctuates a bit across subsequent time points and then goes up to
1.8208 at the 4th post-test (this bump is spurious as only one study
had a 4th post test, but let's leave that aside). (plot attached).

In your expert opinion, if my audience wants to design a future study
based off of the two meta-analyses bove, how can these two senses of
"time" can help them determine the "length of their study", and the
"time or the number of intervals" between their testing occasions?

Indeed, how do these two senses of time complement each other (if they
do at all) in helping my audience understand the longitudinal effect
of treatment?

Best of everything,
Stefanou


model_time_car <- rma.mv(yi ~ time_btw + time_wthn, vi,
                 random = list(~ time_wthn | study, ~time_wk | study, ~1|obs),
                 struct = c("GEN","CAR"), data=dat)

           estimate      se    zval    pval    ci.lb   ci.ub
intrcpt      0.3667  0.1280  2.8640  0.0042   0.1157  0.6176   **
time_btw     0.0138  0.0271  0.5093  0.6106  -0.0393  0.0668
time_wthn    0.1156  0.0252  4.5880  <.0001   0.0662  0.1650  ***


model_time_UN <- rma.mv(yi ~ 0 + time, vi,
             random = list(~time|study, ~1|obs),
             struct = c("UN"), data=dat)

       estimate      se    zval    pval    ci.lb   ci.ub
time0    0.0194  0.0527  0.3683  0.7127  -0.0838  0.1226
time1    0.6477  0.1410  4.5921  <.0001   0.3712  0.9241  ***
time2    0.5755  0.1521  3.7838  0.0002   0.2774  0.8736  ***
time3    0.6454  0.1940  3.3272  0.0009   0.2652  1.0255  ***
time4    1.8208  0.3610  5.0438  <.0001   1.1133  2.5284  ***

On Tue, Oct 12, 2021 at 12:36 PM Stefanou Revesz
<stefanourevesz using gmail.com> wrote:
>
> Thank you very much Wolfgang. That was exactly what I was looking for.
>
> Thank you so much!
> Stefanou
>
> On Tue, Oct 12, 2021 at 11:44 AM Viechtbauer, Wolfgang (SP)
> <wolfgang.viechtbauer using maastrichtuniversity.nl> wrote:
> >
> > That's seems somewhat redundant and I suspect profile() would tell you as much. But it might also depend on how much data you have. In a large dataset, one might be able to distinguish correlation that has the structure as assumed by (C)AR from whatever correlation is not like that and that might get picked up by "UN", but "UN" is already as flexible as possible (in the sense of not assuming any structure of the correlations), so again, it's a bit redudant.
> >
> > Best,
> > Wolfgang
> >
> > >-----Original Message-----
> > >From: Stefanou Revesz [mailto:stefanourevesz using gmail.com]
> > >Sent: Tuesday, 12 October, 2021 18:25
> > >To: Viechtbauer, Wolfgang (SP)
> > >Cc: R meta
> > >Subject: Re: [R-meta] Time as indicator vs time as meaning
> > >
> > >It does very much help!
> > >
> > >But does the same logic apply, if I had used the categorical "time"
> > >(measurement occasions) with struct = "AR", then would it have made
> > >sense to add a "UN" on top of
> > >that?
> > >
> > >yi ~ time, random = list(~ time | study, ~ time | study), struct = c("AR", "UN")
> > >
> > >On Tue, Oct 12, 2021 at 11:13 AM Viechtbauer, Wolfgang (SP)
> > ><wolfgang.viechtbauer using maastrichtuniversity.nl> wrote:
> > >>
> > >> I don't really know how to respond to that, except to repeat what I said in my
> > >previous mail. Or do this:
> > >>
> > >> Draw two lines with different intercepts and slopes. ~ time_wthn | study with
> > >struct="GEN" is using random effects to account for differences in intercepts and
> > >slopes of those lines.
> > >>
> > >> Now add a bunch of points around those two lines. Those are the true effects
> > >for those two studies. Those points could be autocorrelated -- that's captured by
> > >phi. Also, they differ from the lines. That source of heterogeneity is captured
> > >by gamma^2.
> > >>
> > >> That is what is happening here and it is conceptually analogous to what is
> > >happening in lme() (except that in a meta-analysis model, there is the further
> > >differentiation between the observed and true effects and the sampling errors
> > >could also exhibit autocorrelation, but let's leave this complication aside).
> > >>
> > >> Another way to put this: The error term of a model is also a random effect.
> > >It's not typically denoted this way, but such semantic differences can be
> > >misleading. Or put differently: What you put in 'random' and what you put in
> > >'correlation' in lme() is still about the same data. What these things do (i.e.,
> > >what they account for in the data) in the context of a model is different, but
> > >again, it's all about modeling the data.
> > >>
> > >> Not sure if this helps.
> > >>
> > >> Best,
> > >> Wolfgang
> > >>
> > >> >-----Original Message-----
> > >> >From: Stefanou Revesz [mailto:stefanourevesz using gmail.com]
> > >> >Sent: Tuesday, 12 October, 2021 17:51
> > >> >To: Viechtbauer, Wolfgang (SP)
> > >> >Cc: R meta
> > >> >Subject: Re: [R-meta] Time as indicator vs time as meaning
> > >> >
> > >> >Sure, but in the lme(), "correlation=" has to do with the structure of
> > >> >V matrix (i.e., e_ij), not random-effects, no?
> > >> >
> > >> >Say, I had used the categorical "time" (measurement occasions) with
> > >> >struct = "HAR", then would it have made sense to add a "UN" on top of
> > >> >that?
> > >> >
> > >> >yi ~ time, random = list(~ time | study, ~ time | study), struct =
> > >> >c("HAR", "UN")
> > >> >
> > >> >Best of all,
> > >> >Stefanou

-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 29935 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-sig-meta-analysis/attachments/20211015/035efed1/attachment-0002.png>

-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 40275 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-sig-meta-analysis/attachments/20211015/035efed1/attachment-0003.png>


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