## 13.3 Relative conditional indirect effects

Before we use Hayes’s formulas at the top of pate 488 to re-express the posterior in terms of the relative conditional indirect effects, we might want to clarify which of the post columns correspond to the relevant parameters.

• $$a_{1}$$ = b_respappr_D1
• $$a_{2}$$ = b_respappr_D2
• $$a_{4}$$ = b_respappr_D1:sexism
• $$a_{5}$$ = b_respappr_D2:sexism
• $$b$$ = b_liking_respappr

To get our posterior transformations, we’ll use the purrr::map() approach, which first requires we define two custom functions.

# (a1 + a4W)*b
D1_function <- function(w){
(post$b_respappr_D1 + post$b_respappr_D1:sexism*w)*post$b_liking_respappr } # (a2 + a5W)*b D2_function <- function(w){ (post$b_respappr_D2 + post$b_respappr_D2:sexism*w)*post$b_liking_respappr
}

Next, we’ll make a 30-row tibble with each row containing a value for sexism, ranging from 3.5 to 6.5. We’ll then apply our two custom functions to the sexism values and wrangle the results a bit to make them useful for our purposes.

rcie_tibble <-
tibble(sexism = seq(from = 3.5, to = 6.5, length.out = 30)) %>%
group_by(sexism) %>%
mutate(Protest vs. No Protest            = map(sexism, D1_function),
Collective vs. Individual Protest = map(sexism, D2_function)) %>%
unnest() %>%
ungroup() %>%
mutate(iter = rep(1:4000, times = 30)) %>%
gather(indirect effect, value, -sexism, -iter) %>%
mutate(indirect effect = factor(indirect effect, levels = c("Protest vs. No Protest", "Collective vs. Individual Protest")))

head(rcie_tibble)
## # A tibble: 6 x 4
##   sexism  iter indirect effect         value
##    <dbl> <int> <fct>                     <dbl>
## 1    3.5     1 Protest vs. No Protest  0.160
## 2    3.5     2 Protest vs. No Protest -0.0305
## 3    3.5     3 Protest vs. No Protest -0.174
## 4    3.5     4 Protest vs. No Protest -0.143
## 5    3.5     5 Protest vs. No Protest -0.118
## 6    3.5     6 Protest vs. No Protest  0.00955

Here is our variant of Figure 13.4, with respect to the relative conditional indirect effects.

rcie_tibble %>%
group_by(indirect effect, sexism) %>%
summarize(median = median(value),
ll = quantile(value, probs = .025),
ul = quantile(value, probs = .975)) %>%

ggplot(aes(x = sexism, group = indirect effect)) +
geom_ribbon(aes(ymin = ll, ymax = ul),
color = "white", fill = "transparent", linetype = 3) +
geom_line(aes(y = median),
color = "white") +
coord_cartesian(xlim = 4:6,
ylim = c(-.6, .8)) +
labs(x = expression(paste("Perceived Pervasiveness of Sex Discrimination in Society (", italic(W), ")")),
y = "Relative Conditional Effect on Liking") +
theme_black() +
theme(panel.grid = element_blank(),
legend.position = "none") +
facet_grid(~ indirect effect)

Here are the indirect effect summaries relevant to the contents of Table 13.2.

rcie_tibble_pick_a_point <-
# notice how we've restricted ourselves to only 3 values for sexism
tibble(sexism = c(4.25, 5.125, 5.896)) %>%
group_by(sexism) %>%
mutate(Protest vs. No Protest = map(sexism, D1_function),
Collective vs. Individual Protest = map(sexism, D2_function)) %>%
unnest() %>%
ungroup() %>%
# because we only have 3 sexism values, we only need to repeat times = 3
mutate(iter = rep(1:4000, times = 3)) %>%
gather(indirect effect, value, -sexism, -iter) %>%
mutate(indirect effect = factor(indirect effect, levels = c("Protest vs. No Protest", "Collective vs. Individual Protest")))

rcie_tibble_pick_a_point %>%
group_by(sexism, indirect effect) %>%
summarize(median = median(value),
ll = quantile(value, probs = .025),
ul = quantile(value, probs = .975)) %>%
mutate_if(is.double, round, digits = 3)
## # A tibble: 6 x 5
## # Groups:   sexism [3]
##   sexism indirect effect                 median     ll    ul
##    <dbl> <fct>                              <dbl>  <dbl> <dbl>
## 1   4.25 Protest vs. No Protest             0.248  0.03  0.538
## 2   4.25 Collective vs. Individual Protest  0.225 -0.033 0.545
## 3   5.12 Protest vs. No Protest             0.518  0.288 0.807
## 4   5.12 Collective vs. Individual Protest  0.15  -0.021 0.347
## 5   5.90 Protest vs. No Protest             0.755  0.423 1.16
## 6   5.90 Collective vs. Individual Protest  0.083 -0.152 0.331