options(digits = 2)
library(pacman)
p_load(kirkegaard)
The idea is that Blacks suffer from environmental deprivation relative to Whites, and that environmental factors vary for each group. One can calculate what the size of the proposed gap has to be in order to potentially explain the gap. The value chosen here is based on heritability of about 80%, which thus leaves 20% variance over for environmental factors. These are then assumed to be entirely non-random and to covary with race.
#simulate data
ns = 1e6
bw = data_frame(
group = rep(c("Black", "White"), each = ns),
env = c(rnorm(ns, -2.2), rnorm(ns)),
SES = c(rnorm(ns, -.65), rnorm(ns))
)
#plot VE
bw %>%
ggplot(aes(env, fill = group)) +
geom_density(alpha = .3) +
theme_bw() +
ggtitle("VE model: required distribution of causal environments, d = 2.2") +
xlab("Z score of environment")
GG_save("~/Pictures/VE_model_2.2d.png")
#plot real life SES gap
bw %>%
ggplot(aes(SES, fill = group)) +
geom_density(alpha = .3) +
theme_bw() +
ggtitle("Actual distribution of SES environments, d = 0.65") +
xlab("Z score of environment")
GG_save("~/Pictures/SES_gap.png")
The idea is that Blacks suffer from an unknown but constant environmental effect that decreases their IQ by the same as the gap size.
data_frame(
group = c("Black", "White"),
env = c(-1, 0)
) %>%
ggplot() +
geom_vline(aes(xintercept = env, color = group)) +
theme_bw() +
ggtitle("X factor model: Hypothetical distribution of causal environments, d = 1") +
xlab("Z score of environment") +
xlim(-1.5, 0.5)
GG_save("~/Pictures/X_gap.png")
The idea is that skin color (and maybe other racial physical traits) is linked to discrimination, and that it varies in Blacks but not in Whites. This produces a GxE model one can visualize.
#simulate data
ns = 1e6
bw2 = data_frame(
group = rep("Black", ns) %>% factor(levels = c("Black", "White")),
env = c(rnorm(ns, -1))
)
#plot
bw2 %>%
ggplot(aes(env, fill = group)) +
geom_density(alpha = .3) +
scale_fill_discrete(drop = F) +
geom_vline(xintercept = 0, color = "#00BFC4", alpha = .8) +
theme_bw() +
ggtitle("GxE model: required distribution of causal environments, d = 1") +
scale_x_continuous("Z score of environment", breaks = seq(-10, 10, by = 1))
GG_save("~/Pictures/GxE_gap.png")