[R-meta] Interpretation of continuous moderator in 3-level meta-regression

Reza Norouzian rnorouz|@n @end|ng |rom gm@||@com
Wed Sep 8 20:34:10 CEST 2021


CORRECTION **** Now if you do: mod1_1_btw - mod1_1_wthn, you get the
contextual effect of mod1.

On Wed, Sep 8, 2021 at 1:30 PM Reza Norouzian <rnorouzian using gmail.com> wrote:
>
> Daniel,
>
> You said mod1 is coded in continuous percentage points (0.0, 0.1, 0.5,
> ..., 0.9, 1.0) or it's a binary factor variable {rows with either 0 or
> 1}? My answer may or may not be exactly what you're looking for. But
> since you linked a post that discussed this, I just offer some
> thoughts.
>
> You could potentially compute the within and between study effects of mod1.
>
> IF mod1 is in continuous percentage points:
>
> library(dplyr)
>
> new_df <-
> df %>%
>   group_by(studyid) %>%
>   mutate(mod1_btw_study = mean(mod1), mod1_wthn_study = mod1 -
> mod1_btw_study) %>% ungroup
>
> And then, use:   mods = ~mod1_btw_study + mod1_wthn_study, data = new_df
>
> Alternatively, you could just use:
>
> mods = ~mod1_btw_study + mod1, data = new_df
>
> In the first parameterization, you can do: "mod1_btw_study -
> mod1_wthn_study" to get the contextual effect of mod1.
>
> In the second parametrization, you directly get the contextual effect
> of mod1 (via "mod1_btw_study" coefficient).
>
> Either way, the interpretation of contextual effect would then be: the
> average difference in two true row effects with the same mod1 value
> that come from studies whose average mod1 values differs by 1
> percentage point.
>
>
> IF mod1 is a binary factor, you would do the same thing but via dummy
> variables (I'm showing method 1 from above):
>
> library('fastDummies') # May be others know of a better package
>
> df$mod1 <- factor(df$mod1) # you can also rename 0 and 1 here if you want
>
> new_df <- df %>%
> dummy_cols(select_columns = mod1) %>%
> group_by(across(all_of(studyid))) %>%
> mutate(across(starts_with(paste0(mod1, "_")), list(wthn = ~ . -
> mean(.), btw = ~ mean(.)))) %>% ungroup
>
>
> mods = ~mod1_1_btw + mod1_1_wthn, data = new_df ## Here I'm taking
> mod1_0_btw + mod1_0_wthn as reference categories
>
> Now if you do: mod1_1_btw - mod1_1_wthn, data = new_df, you get the
> contextual effect of mod1. The interpretation this time becomes:
>
> On average, how much do two true row effects with mod1 == 1 differ if
> they come from studies whose percentage of mod1 == 1 rows differs by
> 1%.
>
> When we do contextual effect stuff with factor variables (requiring
> dummies), they are more commonly referred to as "compositional
> effects" because speaking of "studies whose percentage of mod1 == 1"
> is like asking about their composition of mod1 == 1.
>
> If you want to use the code above, please check it for typos etc.
>
> Kind regards,
> Reza
>
>
>
>
> On Wed, Sep 8, 2021 at 11:01 AM Viechtbauer, Wolfgang (SP)
> <wolfgang.viechtbauer using maastrichtuniversity.nl> wrote:
> >
> > Dear Daniel,
> >
> > Yes, that's correct.
> >
> > I would be cautious if there are no 1's in mod1 for the actual data, since you would then be extrapolating, but I assume there are, so it's all good.
> >
> > Best,
> > Wolfgang
> >
> > >-----Original Message-----
> > >From: R-sig-meta-analysis [mailto:r-sig-meta-analysis-bounces using r-project.org] On
> > >Behalf Of daniel.f.gucciardi using gmail.com
> > >Sent: Wednesday, 08 September, 2021 8:54
> > >To: r-sig-meta-analysis using r-project.org
> > >Subject: [R-meta] Interpretation of continuous moderator in 3-level meta-
> > >regression
> > >
> > >Hi all,
> > >
> > >I was hoping to seek your advice on the interpretation of a 3-level
> > >meta-regression with a continuous variable. Briefly, my effect size (yi) is
> > >sedentary time in minutes and moderator (mod1) is the percentage of wear
> > >time for a 24-hour period for the device used to assess sedentary behaviour.
> > >I have 55 effect sizes (esid) from 36 studies (studyid). The moderator
> > >varies among effect sizes.
> > >
> > >I have coded the moderator on a scale of 0-1; for example, if someone wore
> > >the device for 50% of the 24-hour period, we coded them as 0.50. I removed
> > >the intercept in the moderator analysis because a value of 0 for the
> > >moderator should technically equate to 0 min for the effect size
> > >(https://www.metafor-project.org/doku.php/tips:models_with_or_without_interc
> > >ept).
> > >
> > >library(metafor)
> > >
> > >mods_result <- rma.mv(yi, vi,
> > >                      data = df,
> > >                      level = 95,
> > >                      method = "REML",
> > >                      tdist = TRUE,
> > >                      mods = ~mod1-1,
> > >                      random = ~1 | studyid/esid)
> > >
> > >summary(mods_result)
> > >
> > >Model Results:
> > >
> > >estimate       se     tval  df    pval     ci.lb     ci.ub
> > >mod1  802.2315  19.6706  40.7833  54  <.0001  762.7943  841.6686  ***
> > >
> > >I read this post with interest
> > >(https://stat.ethz.ch/pipermail/r-sig-meta-analysis/2021-August/003125.html)
> > >, which used chronological age as the moderator. For my case, should I
> > >interpret the estimate of approx. 802 min as the expect value for the
> > >moderator at 1 (so 100% wear time)?
> > >
> > >Cheers,
> > >Daniel
> >
> > _______________________________________________
> > R-sig-meta-analysis mailing list
> > R-sig-meta-analysis using r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-sig-meta-analysis
>
>
> On Wed, Sep 8, 2021 at 11:02 AM Viechtbauer, Wolfgang (SP)
> <wolfgang.viechtbauer using maastrichtuniversity.nl> wrote:
> >
> > Dear Daniel,
> >
> > Yes, that's correct.
> >
> > I would be cautious if there are no 1's in mod1 for the actual data, since you would then be extrapolating, but I assume there are, so it's all good.
> >
> > Best,
> > Wolfgang
> >
> > >-----Original Message-----
> > >From: R-sig-meta-analysis [mailto:r-sig-meta-analysis-bounces using r-project.org] On
> > >Behalf Of daniel.f.gucciardi using gmail.com
> > >Sent: Wednesday, 08 September, 2021 8:54
> > >To: r-sig-meta-analysis using r-project.org
> > >Subject: [R-meta] Interpretation of continuous moderator in 3-level meta-
> > >regression
> > >
> > >Hi all,
> > >
> > >I was hoping to seek your advice on the interpretation of a 3-level
> > >meta-regression with a continuous variable. Briefly, my effect size (yi) is
> > >sedentary time in minutes and moderator (mod1) is the percentage of wear
> > >time for a 24-hour period for the device used to assess sedentary behaviour.
> > >I have 55 effect sizes (esid) from 36 studies (studyid). The moderator
> > >varies among effect sizes.
> > >
> > >I have coded the moderator on a scale of 0-1; for example, if someone wore
> > >the device for 50% of the 24-hour period, we coded them as 0.50. I removed
> > >the intercept in the moderator analysis because a value of 0 for the
> > >moderator should technically equate to 0 min for the effect size
> > >(https://www.metafor-project.org/doku.php/tips:models_with_or_without_interc
> > >ept).
> > >
> > >library(metafor)
> > >
> > >mods_result <- rma.mv(yi, vi,
> > >                      data = df,
> > >                      level = 95,
> > >                      method = "REML",
> > >                      tdist = TRUE,
> > >                      mods = ~mod1-1,
> > >                      random = ~1 | studyid/esid)
> > >
> > >summary(mods_result)
> > >
> > >Model Results:
> > >
> > >estimate       se     tval  df    pval     ci.lb     ci.ub
> > >mod1  802.2315  19.6706  40.7833  54  <.0001  762.7943  841.6686  ***
> > >
> > >I read this post with interest
> > >(https://stat.ethz.ch/pipermail/r-sig-meta-analysis/2021-August/003125.html)
> > >, which used chronological age as the moderator. For my case, should I
> > >interpret the estimate of approx. 802 min as the expect value for the
> > >moderator at 1 (so 100% wear time)?
> > >
> > >Cheers,
> > >Daniel
> >
> > _______________________________________________
> > R-sig-meta-analysis mailing list
> > R-sig-meta-analysis using r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-sig-meta-analysis



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