[R-meta] "Categorical" moderator varying within and between studies

James Pustejovsky jepu@to @end|ng |rom gm@||@com
Wed Jun 3 15:32:56 CEST 2020


I'm not sure what produced that error and I cannot reproduce it. It may
have to do something with the version of dplyr. Here's an alternative way
to recode the Scoring variable, which might be less prone to versioning
differences:

library(dplyr)
library(fastDummies)
library(robumeta)

data("oswald2013")

oswald_centered <-
  oswald2013 %>%

  # make dummy variables
  mutate(
    Scoring = factor(Scoring,
                     levels = c("Absolute", "Difference Score", "Relative
Rating"),
                     labels = c("Absolute", "Difference", "Relative"))
  ) %>%
  dummy_columns(select_columns = "Scoring") %>%

  # centering by study
  group_by(Study) %>%
  mutate_at(vars(starts_with("Scoring_")),
            list(wthn = ~ . - mean(.), btw = ~ mean(.))) %>%

  # calculate Fisher Z and variance
  mutate(
    Z = atanh(R),
    V = 1 / (N - 3)
  )


# Use the predictors in a meta-regression model
# with Scoring = Absolute as the omitted category

robu(Z ~ Scoring_Difference_wthn + Scoring_Relative_wthn +
       Scoring_Difference_btw + Scoring_Relative_btw,
     data = oswald_centered, studynum = Study, var.eff.size = V)

On Tue, Jun 2, 2020 at 10:20 PM Simon Harmel <sim.harmel using gmail.com> wrote:

> Many thanks, James! I keep getting the following error when I run your
> code:
>
> Error: unexpected symbol in:
> "Rating" = "Relative")
> oswald_centered"
>
> On Tue, Jun 2, 2020 at 10:00 PM James Pustejovsky <jepusto using gmail.com>
> wrote:
>
>> Hi Simon,
>>
>> The same strategy can be followed by using dummy variables for each
>> unique level of a categorical moderator. The idea would be to 1) create
>> dummy variables for each category, 2) calculate the study-level means of
>> the dummy variables (between-cluster predictors), and 3) calculate the
>> group-mean centered dummy variables (within-cluster predictors). Just like
>> if you're working with regular categorical predictors, you'll have to pick
>> one reference level to omit when using these sets of predictors.
>>
>> Here is an example of how to carry out such calculations in R, using the
>> fastDummies package along with a bit of dplyr:
>>
>> library(dplyr)
>> library(fastDummies)
>> library(robumeta)
>>
>> data("oswald2013")
>>
>> oswald_centered <-
>>   oswald2013 %>%
>>
>>   # make dummy variables
>>   mutate(
>>     Scoring = recode(Scoring, "Difference Score" = "Difference",
>> "Relative Rating" = "Relative")
>>   ) %>%
>>   dummy_columns(select_columns = "Scoring") %>%
>>
>>   # centering by study
>>   group_by(Study) %>%
>>   mutate_at(vars(starts_with("Scoring_")),
>>             list(wthn = ~ . - mean(.), btw = ~ mean(.))) %>%
>>
>>   # calculate Fisher Z and variance
>>   mutate(
>>     Z = atanh(R),
>>     V = 1 / (N - 3)
>>   )
>>
>>
>> # Use the predictors in a meta-regression model
>> # with Scoring = Absolute as the omitted category
>>
>> robu(Z ~ Scoring_Difference_wthn + Scoring_Relative_wthn +
>> Scoring_Difference_btw + Scoring_Relative_btw, data = oswald_centered,
>> studynum = Study, var.eff.size = V)
>>
>>
>> Kind Regards,
>> James
>>
>> On Tue, Jun 2, 2020 at 6:49 PM Simon Harmel <sim.harmel using gmail.com> wrote:
>>
>>> Hi All,
>>>
>>> Page 13 of *THIS ARTICLE
>>> <
>>> https://cran.r-project.org/web/packages/robumeta/vignettes/robumetaVignette.pdf
>>> >*
>>>  (*top of the page*) recommends that if a *continuous moderator *varies
>>> both within and across studies in a meta-analysis, a strategy is to break
>>> that moderator down into two moderators by:
>>>
>>> *(a)* taking the mean of each study (between-cluster effect),
>>>
>>> *(b)* centering the predictor within each study (within-cluster effect).
>>>
>>> BUT what if my original moderator that varies both within and across
>>> studies is a *"categorical" *moderator?
>>>
>>> I appreciate an R demonstration of the strategy recommended.
>>> Thanks,
>>> Simon
>>>
>>>         [[alternative HTML version deleted]]
>>>
>>> _______________________________________________
>>> R-sig-meta-analysis mailing list
>>> R-sig-meta-analysis using r-project.org
>>> https://stat.ethz.ch/mailman/listinfo/r-sig-meta-analysis
>>>
>>

	[[alternative HTML version deleted]]



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