[R-meta] Time as indicator vs time as meaning
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 at 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 at 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 at 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 at 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 at 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>