Aluno: Luiz Sergio Pompeu Alves Filho

Matrícula: 0126015835-35M

Dados: “oxy .csv”

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: 117
## Columns: 5
## $ session_id  <chr> "2462516", "2466207", "2467505", "2468479", "2468498", "24…
## $ referrer    <chr> "oxy", "oxy", "oxy", "oxy", "oxy", "oxy", "oxy", "oxy", "o…
## $ sex         <ord> f, m, f, f, m, f, m, f, f, f, f, m, f, f, f, f, f, f, m, f…
## $ d_art       <dbl> 0.09425219, 0.84175966, 0.92088470, 1.11716849, 0.78889187…
## $ iat_exclude <chr> "Include", "Include", "Include", "Include", "Include", "In…

Análise via biblioteca

Abaixo, é feita a análise descritiva dos dados amostrais coletados do dataset “oxy .csv”, a qual descreve uma amostra coletada na Universidade Ocidenta, localizada em Los Angeles, que busca saber se mulheres possuem uma atitude mais negativa para com áreas relacionadas à matemática do que os homes, sumarizando o comportamento da associação implícita (IAT) através das estatísticas de tendência central (média) e de dispersão (desvio padrão) separadas por sexo.

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.3195262
## $ bias      <dbl> -0.002575781
## $ std.error <dbl> 0.1108359
## $ conf.low  <dbl> -0.5436388
## $ conf.high <dbl> -0.1094098
p1 = 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 per session.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
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)

iat %>% 
  group_by(sex) %>% 
  summarise(
    media = mean(d_art, na.rm = TRUE),
    desvio_padrao = sd(d_art, na.rm = TRUE),
    N = n()
  )
## # A tibble: 2 × 4
##   sex   media desvio_padrao     N
##   <ord> <dbl>         <dbl> <int>
## 1 m     0.265         0.529    32
## 2 f     0.584         0.514    85
dados_resumo <- iat %>% 
  group_by(sex) %>% 
  summarise(
    N = n(),
    Media = mean(d_art, na.rm = TRUE),
    DP = sd(d_art, na.rm = TRUE),
    .groups = "drop"
  )

n_m <- dados_resumo %>% filter(sex == "m") %>% pull(N)
media_m <- dados_resumo %>% filter(sex == "m") %>% pull(Media)
dp_m <- dados_resumo %>% filter(sex == "m") %>% pull(DP)

n_f <- dados_resumo %>% filter(sex == "f") %>% pull(N)
media_f <- dados_resumo %>% filter(sex == "f") %>% pull(Media)
dp_f <- dados_resumo %>% filter(sex == "f") %>% pull(DP)

dif_media <- media_m - media_f

Conclusão dos dados originais

Considerando os dados de “oxy .csv”, 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.58, desv. padrão 0.51, N = 85). Homens tiveram uma associação positiva com a matemática, portanto menor que a das mulheres (média 0.26, desv. padrão 0.53, N = 32). Houve portanto uma considerável diferença entre homens e mulheres (diferença das médias -0.32, 95% CI [-0.55, -0.13] via BCa).

A partir desta amostra, estimamos que as mulheres têm uma associação negativa mais forte (isto é, um viés maior contra a matemática/a favor das artes), porém o intervalo de confiança ainda deixa uma margem onde essa diferença pode variar de moderada (cerca de -0.13) a grande (cerca de -0.55). É recomendável a coleta de mais dados (especialmente aumentando a amostra masculina, que é reduzida) para estreitar essa estimativa.

Comparação: Métodos Bootstrap vs. Paramétrico (t-Student)

Para realizar uma comparação metodológica robusta, comparamos os resultados obtidos por abordagens computacionais (não-paramétricas) com a clássica abordagem de teste de hipóteses paramétrico de Welch, baseada na distribuição t-Student.

set.seed(42)

B <- 2000
diferencas_manuais <- numeric(B)

for(i in 1:B) {
  amostra_boot <- iat %>% slice_sample(n = nrow(iat), replace = TRUE)
  medias_boot <- amostra_boot %>% 
    group_by(sex) %>% 
    summarise(media = mean(d_art, na.rm = TRUE), .groups = "drop")
  
  m_boot <- medias_boot %>% filter(sex == "m") %>% pull(media)
  f_boot <- medias_boot %>% filter(sex == "f") %>% pull(media)
  
  if(length(m_boot) == 0) m_boot <- 0
  if(length(f_boot) == 0) f_boot <- 0
  
  diferencas_manuais[i] <- m_boot - f_boot
}

ic_perc_inf <- quantile(diferencas_manuais, 0.025)
ic_perc_sup <- quantile(diferencas_manuais, 0.975)

se_boot <- sd(diferencas_manuais)
ic_norm_inf <- dif_media - 1.96 * se_boot
ic_norm_sup <- dif_media + 1.96 * se_boot

teste_t <- t.test(d_art ~ sex, data = iat, var.equal = FALSE)
ic_t_inf <- teste_t$conf.int[1]
ic_t_sup <- teste_t$conf.int[2]

comparacao_ics <- tibble(
  Metodo = c("BCa (Biblioteca boot)", "Percentílico (Manual)", "Normal (Manual)", "t-Student (Welch Clássico)"),
  Estimativa_Ponto = c(ci$statistic, dif_media, dif_media, dif_media),
  Conf_Low = c(ci$conf.low, ic_perc_inf, ic_norm_inf, ic_t_inf),
  Conf_High = c(ci$conf.high, ic_perc_sup, ic_norm_sup, ic_t_sup)
)

comparacao_ics
## # A tibble: 4 × 4
##   Metodo                     Estimativa_Ponto Conf_Low Conf_High
##   <chr>                                 <dbl>    <dbl>     <dbl>
## 1 BCa (Biblioteca boot)                -0.320   -0.544    -0.109
## 2 Percentílico (Manual)                -0.320   -0.528    -0.104
## 3 Normal (Manual)                      -0.320   -0.533    -0.106
## 4 t-Student (Welch Clássico)           -0.320   -0.538    -0.101

Comparação dos Intervalos de Confiança

A análise da diferença das médias de gênero (-0,32) revela uma consistência notável entre as quatro abordagens estatísticas utilizadas para estimar a incerteza dos resultados. O método BCa calculado via biblioteca boot ([-0,520; -0,098]), que é estatisticamente robusto por corrigir vieses e variações de escala, obteve resultados extremamente próximos aos das duas implementações manuais: o método Percentílico ([-0,528; -0,104]), que utiliza os quantis empíricos diretos da reamostragem, e o método Normal ([-0,533; -0,106]), baseado na aproximação clássica a partir do erro padrão das réplicas. Essa convergência se estende até mesmo ao método paramétrico clássico t de Welch ([-0,538; -0,101]), baseado na distribuição t-Student. A escolha desses métodos complementares justifica-se pelo desejo de contrapor a flexibilidade não-paramétrica das técnicas computacionais modernos frente às suposições clássicas de normalidade da estatística tradicional. No que tange ao impacto prático, a variação decimal entre os limites calculados é insignificante e não altera em nada a conclusão científica do estudo. Como todos os intervalos de confiança situam-se inteiramente no espectro negativo e não cruzam o zero, há uma confirmação unânime e robusta de que as mulheres participantes da Universidade Ocidenta possuem um viés implícito negativo contra a matemática (favorável às artes) consideravelmente mais forte do que os homens.