Skip to content
Prev 2122 / 5636 Next

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

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 at gmail.com> wrote: