Sobre IAT

IAT: 0.15, 0.35, and 0.65 are considered small, medium, and large level of bias for individual scores.

Positive means bias towards arts / against Math.

Análise de uma replicação

iats <-
    list.files(here::here("data"), pattern = "*.csv") %>% 
    map_df(~read_csv(here::here("data", .), col_types = "cccdc"))

iats = iats %>% 
    mutate(sex = factor(sex, levels = c("m", "f"), ordered = TRUE))
glimpse(iats)
## Rows: 5,930
## Columns: 5
## $ session_id  <chr> "2400853", "2400856", "2400860", "2400868", "2400872", "24…
## $ referrer    <chr> "abington", "abington", "abington", "abington", "abington"…
## $ sex         <ord> f, f, f, m, m, f, m, m, f, f, f, f, f, f, f, f, f, f, f, f…
## $ d_art       <dbl> 0.36016146, 0.58144485, 0.13148464, 0.74446333, 0.01153370…
## $ iat_exclude <chr> "Include", "Include", "Include", "Include", "Include", "In…
iats %>%
    ggplot(aes(x = d_art, fill = sex, color = sex)) +
    geom_histogram(binwidth = .2, alpha = .4) +
    geom_rug() +
    facet_grid(sex ~ ., scales = "free_y") + 
    theme(legend.position = "None")

iats %>% 
    ggplot(aes(x = sex, y = d_art)) + 
    geom_violin(size = .7, alpha = .4) + 
    geom_boxplot(width = .1, coef = 1000)
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once per session.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

iats %>% 
    ggplot(aes(x = sex, y = d_art)) + 
    geom_quasirandom(width = .25) + 
    stat_summary(geom = "point", fun.y = "mean", color = "red", size = 5)
## Warning: The `fun.y` argument of `stat_summary()` is deprecated as of ggplot2 3.3.0.
## ℹ Please use the `fun` argument instead.
## This warning is displayed once per session.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

Qual a diferença na amostra
iats %>% 
    group_by(referrer, sex) %>% 
    summarise(media = mean(d_art), n = n())
## `summarise()` has regrouped the output.
## ℹ Summaries were computed grouped by referrer and sex.
## ℹ Output is grouped by referrer.
## ℹ Use `summarise(.groups = "drop_last")` to silence this message.
## ℹ Use `summarise(.by = c(referrer, sex))` for per-operation grouping
##   (`?dplyr::dplyr_by`) instead.
## # A tibble: 72 × 4
## # Groups:   referrer [36]
##    referrer sex    media     n
##    <chr>    <ord>  <dbl> <int>
##  1 abington m     0.0808    24
##  2 abington f     0.454     53
##  3 brasilia m     0.400     48
##  4 brasilia f     0.570     65
##  5 charles  m     0.340     22
##  6 charles  f     0.735     58
##  7 conncoll m     0.359     29
##  8 conncoll f     0.578     57
##  9 csun     m     0.314     32
## 10 csun     f     0.320    144
## # ℹ 62 more rows
theta1 <- function(d, s) {
    m = mean(d[s == "m"])
    f = mean(d[s == "f"])
    m - f
}

diferencas = iats %>% 
    group_by(referrer) %>% 
    summarise(diff = theta1(d_art, sex)) 
diferencas %>% 
    ggplot(aes(x = reorder(referrer, diff), y = diff)) + 
    geom_point() + 
    coord_flip()

Comparação via ICs

library(boot)

theta <- function(d, i) {
    agrupado = d %>% 
        slice(i) %>% 
        group_by(sex) %>% 
        summarise(media = mean(d_art))
    m = agrupado %>% filter(sex == "m") %>% pull(media)
    f = agrupado %>% filter(sex == "f") %>% pull(media)
    m - f
}

nested = iats %>% 
    group_by(referrer) %>% 
    mutate(n = n()) %>% 
    filter(n > 10) %>% 
    ungroup() %>% 
    nest(-referrer) 
## Warning: Supplying `...` without names was deprecated in tidyr 1.0.0.
## ℹ Please specify a name for each selection.
## ℹ Did you want `data = -referrer`?
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
boots = nested %>% 
    mutate(booted = map(data, ~ boot(.x, 
                                     statistic = theta, 
                                     R = 200)))

boots = boots %>%
    mutate(ci = map(
        booted,
        ~ tidy(
            .x,
            conf.level = .95,
            conf.method = "basic",
            conf.int = TRUE
        )
    )) %>%
    unnest(ci)

glimpse(boots)
## Rows: 35
## Columns: 8
## $ referrer  <chr> "abington", "brasilia", "charles", "conncoll", "csun", "help…
## $ data      <list> [<tbl_df[77 x 5]>], [<tbl_df[113 x 5]>], [<tbl_df[80 x 5]>]…
## $ booted    <list> [-0.3732753, -0.36215652, -0.33804902, -0.32103507, -0.3629…
## $ statistic <dbl> -0.373275323, -0.170554614, -0.394922977, -0.218267740, -0.0…
## $ bias      <dbl> -0.005274008, 0.008299462, -0.001492351, -0.006247744, -0.00…
## $ std.error <dbl> 0.11840274, 0.09403762, 0.09532519, 0.09931618, 0.08980240, …
## $ conf.low  <dbl> -0.6047608, -0.3466602, -0.6096038, -0.4322964, -0.1759482, …
## $ conf.high <dbl> -0.142505688, 0.011801326, -0.204310694, -0.037376990, 0.169…
boots %>%
    ggplot(aes(
        x = referrer,
        y = statistic,
        ymin = conf.low,
        ymax = conf.high
    )) +
    geom_pointrange() +
    geom_point(size = 3) + 
    labs(x = "Diferença", 
         y = "IAT homens - mulheres") + 
    coord_flip()

##Conclusões

Interpretação do quadro geral dos 35 labs
juntando todos os 35 laboratórios com mais de 10 participantes e calculando a diferença e o intervalo de confiança de cada um separadamente (é basicamente o gráfico do tipo “floresta” que aparece no final desse arquivo, com um ponto e uma barra de erro para cada laboratório). Isso me dá uma visão bem mais completa do que olhar só um ou três laboratórios isolados. a minha interpretação é a seguinte:

O padrão mais forte: a direção nunca muda
Dos 35 laboratórios, todos os 35 mostram a mesma direção: homens com uma associação implícita menos positiva com a matemática do que mulheres. Não teve nenhum caso em que o sinal virou, nem um laboratório sequer onde os homens tiveram associação mais forte que as mulheres. Isso é um resultado bem raro em replicações de psicologia, normalmente você espera ver pelo menos alguns laboratórios indo na direção oposta, só por variação amostral. Aqui, não. Isso pesa bastante a favor de que o efeito é real, não é um artefato de um laboratório específico.

Mas a força do efeito varia bastante
A diferença entre os laboratórios vai de quase zero (csun, com -0.006) até mais de meio ponto na escala do IAT (uva, com -0.524). Isso é uma faixa enorme. Se você tivesse rodado só o csun, ia parecer que não existe efeito nenhum. Se tivesse rodado só o uva, ia parecer um efeito gigantesco. Nenhum dos dois sozinho te dá o quadro certo, é olhando o conjunto que a coisa fica clara.

O que separa os que “cruzam zero” dos que não cruzam
De 35 laboratórios, 10 têm intervalo de confiança que passa por zero (ou seja, tecnicamente não dá pra descartar “diferença nenhuma” nesses casos: csun, wl, tilburg, tamuon, help, swps, qccuny, brasilia, wku, msvu). Mas repara numa coisa: praticamente todos esses são laboratórios pequenos, a maioria com 60 a 100 participantes, e vários com bem poucos homens na amostra (o msvu, por exemplo, tem só 9 homens). Não é que o efeito não exista nesses lugares, é que a amostra é pequena demais pra afirmar isso com confiança. Já os laboratórios grandes, como pi (1236 pessoas) e mturk (894 pessoas), têm intervalos bem apertados e claramente abaixo de zero.

Juntando todo mundo numa conta só
Se você põe as 5842 pessoas de todos os laboratórios numa única análise (o que dá pra fazer, já que juntamos os dados de world), a diferença fica em -0.260, com intervalo de confiança de 95% entre -0.286 e -0.233. Um intervalo estreitíssimo, porque agora você tem uma amostra gigante. Isso confirma o que os laboratórios individuais já estavam sugerindo: o efeito é real, tem magnitude moderada (bem entre o limiar de pequeno, 0.15, e o de grande, 0.65, mais perto do meio do caminho) e não é coisa de um lugar específico.

A interpretação equilibrada

Juntando tudo, dá pra afirmar com bastante segurança que existe uma diferença consistente entre homens e mulheres na associação implícita com a matemática, com mulheres associando a matemática a algo mais negativo (e as artes a algo mais positivo) do que os homens. Essa diferença tem tamanho moderado, em torno de 0.25 a 0.26 pontos na escala do IAT, quando olhamos a amostra completa. O que muda de laboratório pra laboratório não é a existência do efeito, é o quanto cada amostra individual consegue captar com precisão esse tamanho, e isso depende quase inteiramente do número de participantes, principalmente de quantos homens entraram na amostra, que costuma ser o grupo menor em quase todos os laboratórios.

O ponto mais interessante para levar para conclusão deste lab é esse: Olhar um único laboratório pequeno pode te dar uma falsa impressão de que o efeito é fraco ou inexistente (é o caso do csun ou do tamuon), quando na verdade o problema não é o efeito ser fraco, é a amostra ser pequena demais pra enxergar ele com clareza. A força da replicação em múltiplos laboratórios é justamente essa: ela separa o que é limitação da amostra do que é sinal real nos dados.