IAT: 0.15, 0.35, and 0.65 are considered small, medium, and large levels of bias for individual scores. Positive means bias towards arts / against Math.
iat = read_csv(here::here(params$arquivo_dados), col_types = "cccdc")
iat = iat %>%
mutate(sex = factor(sex, levels = c("m", "f"), ordered = TRUE))
glimpse(iat)
## Rows: 113
## Columns: 5
## $ session_id <chr> "2401243", "2401244", "2401246", "2401249", "2401250", "24…
## $ referrer <chr> "brasilia", "brasilia", "brasilia", "brasilia", "brasilia"…
## $ sex <ord> m, m, f, f, f, m, f, m, m, f, f, f, f, f, m, m, f, m, f, m…
## $ d_art <dbl> 0.1480913, 0.6285349, 0.4977736, 0.3999447, 0.8314632, 1.1…
## $ iat_exclude <chr> "Include", "Include", "Include", "Include", "Include", "In…
iat %>%
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")
iat %>%
ggplot(aes(x = sex, y = d_art)) +
geom_quasirandom(width = .1)
iat %>%
ggplot(aes(x = sex, y = d_art)) +
geom_quasirandom(width = .1) +
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 every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
iat %>%
group_by(sex) %>%
summarise(media = mean(d_art))
## # A tibble: 2 × 2
## sex media
## <ord> <dbl>
## 1 m 0.400
## 2 f 0.570
agrupado = iat %>%
group_by(sex) %>%
summarise(media = mean(d_art))
m = agrupado %>% filter(sex == "m") %>% pull(media)
f = agrupado %>% filter(sex == "f") %>% pull(media)
m - f
## [1] -0.1705546
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
}
booted <- boot(data = iat,
statistic = theta,
R = 2000)
ci = tidy(booted,
conf.level = .95,
conf.method = "bca",
conf.int = TRUE)
glimpse(ci)
## Rows: 1
## Columns: 5
## $ statistic <dbl> -0.1705546
## $ bias <dbl> 0.001931523
## $ std.error <dbl> 0.09053296
## $ conf.low <dbl> -0.3438273
## $ conf.high <dbl> 0.0125642
ci %>%
ggplot(aes(
x = "",
y = statistic,
ymin = conf.low,
ymax = conf.high
)) +
geom_pointrange() +
geom_point(size = 3) +
labs(x = "Diferença",
y = "IAT homens - mulheres")
p1 = iat %>%
ggplot(aes(x = sex, y = d_art)) +
geom_quasirandom(width = .1) +
stat_summary(geom = "point", fun.y = "mean", color = "red", size = 5)
p2 = ci %>%
ggplot(aes(
x = "",
y = statistic,
ymin = conf.low,
ymax = conf.high
)) +
geom_pointrange() +
geom_point(size = 3) +
ylim(-1, 1) +
labs(x = "Diferença",
y = "IAT homens - mulheres")
grid.arrange(p1, p2, ncol = 2)
Em média, as mulheres que participaram do experimento tiveram uma associação implícita (medida pelo IAT) com a matemática positiva e média (média 0.47, desv. padrão 0.55, N = 117). Homens tiveram uma associação positiva com a matemática, portanto menor que a das mulheres (média 0.22, desv. padrão 0.49, N = 38). Houve portanto uma pequena diferença entre homens e mulheres (diferença das médias -0.24, 95% CI [-0.43, -0.06]). A partir desta amostra, estimamos que pode não haver uma diferença entre sexos, ou se ela existir, ela provavelmente é pequena em qualquer das direções.
Exemplos de possíveis conclusões para completar
Realize a análise e compare as conclusões obtidas nos dois casos experimentados:
library(tidyverse)
library(ggbeeswarm)
# Carregar os dados
iat <- read_csv("C:/LabDadosR/lab04/brasilia .csv", col_types = "cccdc") %>%
mutate(sex = factor(sex, levels = c("m", "f"), ordered = TRUE))
# Criar o gráfico
ggplot(iat, aes(x = sex, y = d_art)) +
geom_violin(fill = "lightgray", color = NA, alpha = 0.5) +
geom_quasirandom(width = 0.1, alpha = 0.6, color = "blue") +
stat_summary(fun = mean, geom = "point", color = "red", size = 3) +
stat_summary(fun.data = mean_se, geom = "errorbar", width = 0.1, color = "red") +
labs(
title = "Distribuição dos Escores IAT por Sexo",
x = "Sexo",
y = "Escores IAT (d_art)"
) +
theme_minimal()
O método BCa (Bias-Corrected and Accelerated) é uma técnica para calcular intervalos de confiança em análises de bootstrap. Ele é especialmente útil quando a distribuição da estatística de interesse (como a média ou a diferença de médias) é assimétrica ou enviesada.
A diferença de médias entre sexos pode ter uma distribuição assimétrica.
O método BCa fornece um intervalo de confiança que leva em conta tanto o viés quanto a forma da distribuição, oferecendo uma estimativa mais confiável da incerteza.
Aqui está o código em R que implementa um bootstrap manual com intervalo de confiança BCa (via boot::boot) e visualiza os resultados com ggplot2:`
library(tidyverse)
library(boot)
library(ggbeeswarm)
# Carregar os dados
iat <- read_csv("C:/LabDadosR/lab04/brasilia .csv", col_types = "cccdc") %>%
mutate(sex = factor(sex, levels = c("m", "f"), ordered = TRUE))
# Função para calcular a diferença de médias
theta <- function(data, indices) {
d <- data[indices, ]
m <- mean(d$d_art[d$sex == "m"])
f <- mean(d$d_art[d$sex == "f"])
return(m - f)
}
# Executar bootstrap com método BCa
set.seed(123)
booted <- boot(data = iat, statistic = theta, R = 2000)
ci_bca <- boot.ci(booted, type = "bca")
# Visualização com ggplot2
ggplot(iat, aes(x = sex, y = d_art)) +
geom_violin(fill = "gray90", color = NA) +
geom_quasirandom(width = 0.1, alpha = 0.6, color = "blue") +
stat_summary(fun = mean, geom = "point", color = "red", size = 3) +
stat_summary(fun.data = mean_se, geom = "errorbar", width = 0.1, color = "red") +
labs(
title = "Distribuição dos Escores IAT por Sexo com IC (BCa)",
x = "Sexo",
y = "Escores IAT (d_art)"
) +
theme_minimal()