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),
desviopadrao = sd(d_art),
N = n()
)
## # A tibble: 2 × 4
## sex media desviopadrao N
## <ord> <dbl> <dbl> <int>
## 1 m 0.400 0.516 48
## 2 f 0.570 0.423 65
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.0003476165
## $ std.error <dbl> 0.09028029
## $ conf.low <dbl> -0.3451162
## $ conf.high <dbl> 0.00438194
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 negativa e média (média 0.57 , desv. padrão 0.423 , N = 65). Homens tiveram uma associação positiva com a matemática, portanto maior que a das mulheres (média 0.40, desv. padrão 0.51, N = 48 ). Houve portanto uma pequena diferença entre homens e mulheres (diferença das médias -0170, 95% CI [-0,479, 0.009]). 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.
A partir desses dados, podemos analisar algumas questões, como: eles representam apenas uma amostra, logo, não refletem esse caso de forma geral, pois com outra amostra, os resultados podem ser diferentes. É é possível entender que não é discrepante a aptidão com a matemática entre homens e mulheres. —
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…
set.seed(123)
diff_means <- function(data) {
agrupado = data %>%
group_by(sex) %>%
summarise(media = mean(d_art))
m = agrupado %>% filter(sex == "m") %>% pull(media)
f = agrupado %>% filter(sex == "f") %>% pull(media)
return(m - f)
}
R = 2000
bootstrap_results <- numeric(R)
for (i in 1:R) {
sample_data <- iat %>% sample_frac(1, replace = TRUE)
bootstrap_results[i] <- diff_means(sample_data)
}
# Intervalos de confiança
ci_manual <- quantile(bootstrap_results, c(0.025, 0.975))
mean_diff_manual <- mean(bootstrap_results)
ci_manual
## 2.5% 97.5%
## -0.346301011 0.004294935
ci_boot <- tidy(booted,
conf.level = .95,
conf.method = "bca",
conf.int = TRUE)
# Resultados
p1 <- ggplot(data.frame(bootstrap_results), aes(x = bootstrap_results)) +
geom_histogram(binwidth = 0.03, fill = "blue", alpha = 0.7) +
geom_vline(xintercept = ci_manual, color = "red", linetype = "dashed") +
labs(title = "Histograma com IC BCa", x = "Diferença de médias(Bootstrap)", y = "Densidade")
p2 <- ggplot(data.frame(booted$t), aes(x = booted$t)) +
geom_histogram(binwidth = 0.03, fill = "green", alpha = 0.7) +
geom_vline(xintercept = ci_boot$conf.low, color = "red", linetype = "dashed") +
geom_vline(xintercept = ci_boot$conf.high, color = "red", linetype = "dashed") +
labs(title = "Histograma com IC percentil", x = "Diferença de médias(Bootstrap)", y = "Densidade")
grid.arrange(p1, p2, ncol = 2)
Uso de métodos robustos e intervalos de confiança não enviesados e mais precisos.
Utilização do método percentil, considerado mais simples e fácil de entender.