Effect Size e a desigualdade de renda entre gêneros em Vitória

Effect Size e a desigualdade de renda entre gêneros em Vitória

Ainda há um bocado de coisas para cobrir nessa série de “inferência 101” e para continuar os estudos trouxe a base da RAIS (Relação Anual de Informações Sociais) de 20171. Com ela, vamos introduzir o conceito de effect size e de quebra analisar a desigualdade de gênero em nossa querida capital Vitória.

OS DADOS

Coloco aqui duas opções para buscar esses dados:

  1. Manualmente, navegando em ftp://ftp.mtps.gov.br/pdet/microdados/RAIS/2017/ES2017.7z
  2. De forma programática via Python.

Escolhi o Python aqui porque não conheço um pacote no CRAN2 que lide com compressão 7zip — se souber, por favor, indique nos comentários! Se escolher baixar e descompactar via script, podemos executar códigos Python através do R com o {reticulate}:

1# ativando python
2library(reticulate)
3
4# escolhendo o ambiente
5use_condaenv("base")

Depois de ativar o ambiente Python, vamos baixar e descompactar a base de dados para uma pasta chamada data dentro do diretório do nosso projeto. Se você baixou manualmente, crie a pasta data e cole o arquivo lá.

 1# importando módulos
 2import urllib.request as rq
 3import py7zr
 4
 5# baixando dados
 6url = "ftp://ftp.mtps.gov.br/pdet/microdados/RAIS/2017/ES2017.7z"
 7rq.urlretrieve(url, "data/rais.7z")
 8
 9# descompactando
10rais = py7zr.SevenZipFile("data/rais.7z", mode="r")
11rais.extractall(path="data/")
12rais.close()

Vamos precisar também da tabela do Código Brasileiro de Ocupações para entendermos as profissões das pessoas analisadas. Depois de fazer o download, coloque na pasta data junto com o arquivo da Rais.

Com os dados baixados, vamos importá-los, conhecê-los e começar a extrair sentido deles.

 1# pacotes
 2library(tidyverse)
 3
 4# importando a Rais
 5# como os dados possuem caracteres especiais (acentos),
 6# é necessário alterar o encoding para LATIN1
 7data = read_delim("data/ES2017.txt", delim = ";",
 8                  locale = readr::locale(encoding = "LATIN1"),
 9                  col_names = FALSE,
10                  skip = 1)
11
12# escolhendo as variáveis de interesse e renomeando colunas
13# também vamos precisar substituir vírgulas por pontos
14# se preferir, realize essa etapa via encoding
15data = data %>%
16  select(X8, X20, X26, X31, X35, X38) %>%
17  rename("cod_profissao" = X8,
18         "idade" = X20,
19         "municipio" = X26,
20         "cod_raca" = X31,
21         "rem_media" = X35,
22         "sexo" = X38) %>%
23  mutate(rem_media = as.numeric(str_replace_all(rem_media, ",", ".")),
24         sexo = as.integer(sexo),
25         idade = as.integer(idade))
26
27# importando tabela CBO
28cbo = read_delim("data/CBO2002.csv", delim = ";",
29                 locale = readr::locale(encoding = "LATIN1"),
30                 col_names = c("cod_profissao", "profissao"),
31                 col_types = c("d", "c"),
32                 skip = 1)
33
34# juntando ambas tabelas e filtrando apenas Vitória
35data = data %>%
36  inner_join(cbo, by = "cod_profissao") %>%
37  filter(municipio == 320530)

Nossos dados agora têm essa cara:

1# visualizando dataframe
2head(data)
## # A tibble: 6 x 7
##   cod_profissao idade municipio cod_raca rem_media  sexo profissao              
##           <dbl> <int>     <dbl> <chr>        <dbl> <int> <chr>                  
## 1        717020    42    320530 04            909.     1 Servente de obras      
## 2        715210    28    320530 02           1167.     1 Pedreiro               
## 3        717020    63    320530 02           1022.     1 Servente de obras      
## 4        717020    59    320530 02            880.     1 Servente de obras      
## 5        517410    29    320530 08           1880.     1 Porteiro de edifícios  
## 6        715115    61    320530 08              0      1 Operador de escavadeira

DIFERENÇAS NO AGREGADO

Primeiramente, vamos tentar entender o que temos em mãos em termos de amostra:

 1# quantidade de homens e mulheres
 2data %>%
 3  ggplot(aes(x = factor(sexo),
 4             fill = factor(sexo),
 5             label = scales::number(..count..))) +
 6  geom_bar() +
 7  geom_label(stat = "count",
 8             show.legend = FALSE,
 9             color = "grey30") +
10  scale_y_continuous(labels = scales::number) +
11  scale_fill_manual(name = "sexo",
12                    labels = c("homens", "mulheres"),
13                    values = c("lightblue", "salmon")) +
14  labs(x = "",
15       y = "quantidade",
16       title = "QUANTIDADE DE HOMENS E MULHERES",
17       subtitle = "amostra da cidade de Vitória-ES",
18       caption = "fonte: Rais/2017") +
19  theme_minimal() +
20  theme(text = element_text(family = "Century Gothic",
21                            color = "grey30"),
22        axis.text.x = element_blank())

Temos praticamente a mesma quantidade de homens e mulheres em nossa amostra. Podemos, antes de realizar qualquer outra análise e aplicar quaisquer filtros, calcular a remuneração média:

1# remuneração média
2aggregate(data = data, rem_media ~ sexo, FUN = mean)
##   sexo rem_media
## 1    1  3925.187
## 2    2  2846.727

No agregado, a renda média dos homens em Vitória é quase 40% maior que a das mulheres e mesmo quando consideramos a mediana ainda é quase 30% maior. Podemos verificar se essa diferença é significativa com um teste t, mas antes devemos verificar se seus pré-requisitos são atendidos.

 1# quartis
 2boxplot_data = data %>%
 3  group_by(sexo) %>%
 4  summarise(stats = list(fivenum(rem_media))) %>%
 5  unnest(cols = c(stats))
 6
 7# boxplot
 8data %>%
 9  ggplot(aes(
10    x = factor(sexo),
11    y = rem_media,
12    fill = factor(sexo)
13  )) +
14  geom_boxplot() +
15  geom_label(
16    data = boxplot_data,
17    aes(x = factor(sexo), y = stats, label = scales::number(stats)),
18    nudge_x = 0.25,
19    show.legend = FALSE
20  ) +
21  coord_cartesian(ylim = c(0, 5000)) +
22  scale_y_continuous(labels = scales::number) +
23  scale_fill_manual(
24    name = "sexo",
25    labels = c("homens", "mulheres"),
26    values = c("lightblue", "salmon")
27  ) +
28  labs(
29    x = "",
30    y = "remuneração média",
31    title = "DISTRIBUIÇÃO DA REMUNERAÇÃO MÉDIA ENTRE HOMENS E MULHERES",
32    subtitle = "amostra da cidade de Vitória-ES",
33    caption = "fonte: Rais/2017"
34  ) +
35  theme_minimal() +
36  theme(
37    text = element_text(
38      family = "Century Gothic",
39      color = "grey30"
40    ),
41    axis.text.x = element_blank()
42  )

VERIFICANDO A HIPÓTESE DA NORMALIDADE

Sabemos que o teste t é um teste paramétrico e já discutimos anteriormente que, quando os dados não seguem uma distribuição próxima da normal, precisamos realizar transformações para alcançar a normalidade.

Você pode pensar que, com uma amostra desse tamanho, o Teorema Central do Limite garante a hipótese da normalidade. Entretanto, principalmente em dados com muitos outliers extremos, o tamanho da amostra necessária para convergência pode ser absurda, invalidando, na prática, a afirmação a partir da TCL.3. Portanto, defendo que devemos, sim, ter cuidado com essa hipótese mesmo lidando com grandes amostras.

A primeira análise nesse sentido é a visual. Podemos verificar que a distribuição apresenta fat tail e passa longe de uma normal, tanto pelo histograma quanto pelo Q-Q plot.

 1# histograma
 2data %>%
 3  ggplot(aes(
 4    x = rem_media,
 5    fill = factor(sexo)
 6  )) +
 7  geom_histogram(binwidth = 500) +
 8  coord_cartesian(xlim = c(0, 20000)) +
 9  scale_y_continuous(labels = scales::number) +
10  scale_x_continuous(labels = scales::number) +
11  scale_fill_manual(
12    name = "sexo",
13    labels = c("homens", "mulheres"),
14    values = c("lightblue", "salmon")
15  ) +
16  labs(
17    x = "remuneração média",
18    y = "quantidade",
19    title = "DISTRIBUIÇÃO DA REMUNERAÇÃO MÉDIA ENTRE HOMENS E MULHERES",
20    subtitle = "amostra da cidade de Vitória-ES",
21    caption = "fonte: Rais/2017"
22  ) +
23  theme_minimal() +
24  theme(text = element_text(
25    family = "Century Gothic",
26    color = "grey30"
27  ))
28
29# qqplot
30# os dados estarão em cima da reta caso sejam distribuídos normalmente
31par(mfrow = c(1, 2))
32
33qqnorm(data[data$sexo == 1, ]$rem_media,
34  main = "Q-Q PLOT: HOMENS")
35qqline(data[data$sexo == 1, ]$rem_media)
36
37qqnorm(data[data$sexo == 2, ]$rem_media,
38  main = "Q-Q PLOT: MULHERES")
39qqline(data[data$sexo == 2, ]$rem_media)

Podemos realizar um experimento para verificar a velocidade de convergência para a distribuição normal. Calculando a distribuição de mil médias de 30 homens cada, se ela apresentar distribuição próxima da normal poderemos assumir a normalidade e prosseguir com o trabalho. Caso contrário, precisaremos tratar a base.

 1# garantir reprodutibilidade
 2set.seed(1)
 3
 4# quantidade de amostras
 5n = 1000
 6
 7# médias
 8medias = rep(NA, n)
 9
10# tirando amostras e calculando as médias
11for (i in 1:n) {
12  medias[i] = mean(
13    sample(data[data$sexo == 1, ]$rem_media,
14      size = 30, replace = TRUE
15    )
16  )
17}
18
19# qqplot
20qqnorm(medias)
21qqline(medias)
22
23# visualização
24hist(medias,
25    main = "DISTRIBUIÇÃO DAS MÉDIAS AMOSTRAIS",
26    xlab = "médias",
27    sub = "seed = 1"
28)

Ufa! O TCL se manteve em nossos dados e tanto o Q-Q plot quanto o histograma demonstraram distribuição próxima da normal, nos habilitando a prosseguir com os testes.

TESTE T

Agora que garantimos os pré-requisitos, vamos testar se a diferença entre as médias é significativa. Para isso, vamos usar o pacote {infer}:

 1# transformando variável `sexo`
 2data = data %>%
 3  mutate(sexo = ifelse(sexo == 1, "homem", "mulher"))
 4
 5# carregando pacote
 6library(infer)
 7
 8# calculando estatística t
 9estatistica_calculada = data %>%
10  specify(rem_media ~ sexo) %>%
11  calculate(stat = "t", order = c("homem", "mulher"))
12
13# gerando distribuição nula
14distr_nula = data %>%
15  specify(rem_media ~ sexo) %>%
16  hypothesise(null = "independence") %>%
17  generate(reps = 100, type = "permute") %>%
18  calculate(stat = "t", order = c("homem", "mulher"))
19
20# visualizando distribuição nula e estatística do teste
21distr_nula %>%
22  visualize(method = "both") +
23  shade_p_value(estatistica_calculada, direction = "greater")
24
25# calculando p-valor
26distr_nula %>%
27  get_p_value(obs_stat = estatistica_calculada, direction = "greater")

## # A tibble: 1 x 1
##   p_value
##     <dbl>
## 1       0

Com p-valor de 0% e uma estatística calculada a quilômetros da distribuição nula, fica bem claro que a diferença é significativa. Entretanto, isso não quer dizer que ela seja grande ou pequena. É aí que entram os indicadores de tamanho de efeito.

TAMANHO DO EFEITO: Cohen’s D

Nesse post eu mostrei que o tamanho da amostra é determinante para o teste t e tenderemos a rejeitar a hipótese nula quanto maior for a amostra. Aqui, se tratando de mais de 140 mil observações para cada sexo, dificilmente essas diferenças não seriam significativas. Para complementar esse teste, podemos calcular o tamanho do efeito com a estatística d de Cohen.

Muito usada no campo da saúde em experimentos com testes t pareados, quando é preciso definir o efeito de uma ação em um grupo de tratamento em relação ao grupo de controle, a estatística d de Cohen é um indicador de diferenças padronizadas e é particularmente valiosa para quantificar o efeito de uma intervenção, seja em políticas públicas ou em ações de marketing na sua empresa. Isso quer dizer que ele enfatiza o tamanho da diferença entre as médias, sem confundir com a questão do tamanho da amostra.

Por ser padronizado (i.e. não é medido na unidade da amostra, aqui em BR$, mas sim em desvios-padrões) pode ser facilmente comparado à diferentes experimentos. Sua forma de cálculo é a seguinte: \[ d = \frac{\text{média do grupo experimental} - \text{média do grupo de controle}}{\text{desvio padrão agrupado}} \]

Para duas médias fixadas, quanto menor for o desvio padrão, maior será a estatística d. Por outro lado, quanto maior for o desvio padrão, menor será o tamanho do efeito.

No R, vamos utilizar o pacote {effectsize}:

 1# carregando pacote
 2library(effectsize)
 3
 4# calculando a diferença padronizada
 5cohens_d(
 6  data[data$sexo == "homem", ]$rem_media,
 7  data[data$sexo == "mulher", ]$rem_media
 8)
 9
10# interpretando a estatística d
11interpret_d(0.26, "gignac2016")
## Cohen's d |       95% CI
## ------------------------
## 0.26      | [0.28, 0.28]
## 
## - Estimated using pooled SD.
## [1] "small"
## (Rules: gignac2016)

Com uma estatística \(d=0.26\), a diferença é considerada pequena. Na escala de Gignac & Szodorai (2016):

1rules(
2  c(0.2, 0.41, 0.63),
3  c("muito pequeno", "pequeno", "moderado", "grande"),
4  "Gignac & Szodorai (2016)"
5)
## # Reference thresholds (Gignac & Szodorai (2016))
## 
## muito pequeno <= 0.2 < pequeno <= 0.41 < moderado <= 0.63 < grande

Em uma situação de equidade, 50% das mulheres teriam remuneração abaixo do que o homem médio, enquanto a outra metade teria remuneração superior.

Um efeito de 0.26, equivale a dizer que 62% das mulheres teriam remuneração abaixo da remuneração do homem médio em Vitória, enquanto apenas 38% receberiam mais do que o homem médio4.

Claro que analisar o agregado significa olhar para a média. Como serão essas diferenças dentre as diversas profissões?

DIFERENÇAS ENTRE PROFISSÕES

Podemos estender nossa análise verificando em quais profissões há maior e menor divergência na remuneração.

 1# criando dataframe de diferenças na remuneração
 2# profissões selecionadas
 3diferencas = data %>%
 4  mutate(profissao = case_when(
 5    str_detect(profissao, "Advogado") ~ "Advogados",
 6    str_detect(profissao, "Engenheiro") ~ "Engenheiros",
 7    str_detect(profissao, "Médico") ~ "Médicos",
 8    str_detect(profissao, "Gerente") ~ "Gerentes",
 9    str_detect(profissao, "Dirigentes|Diretor") ~ "Diretores",
10    str_detect(profissao, "Economista") ~ "Economistas",
11    str_detect(profissao, "Analista") ~ "Analistas",
12    str_detect(profissao, "Técnico") ~ "Técnicos",
13    str_detect(profissao, "Enfermeiro") ~ "Enfermeiros",
14    str_detect(profissao,
15      "(Professor)(.*)(ensino superior)(.*)") ~ "Prof. Ensino Superior",
16    TRUE ~ "Outros"
17  )) %>%
18  group_by(sexo, profissao) %>%
19  summarise(
20    renda = mean(rem_media),
21    n = n()
22  ) %>%
23  ungroup() %>%
24    pivot_wider(names_from = sexo, values_from = c(renda, n)) %>%
25    mutate(dif = renda_homem - renda_mulher) %>%
26    arrange(desc(dif))
27
28# visualizando tabela
29diferencas
## # A tibble: 11 x 6
##    profissao             renda_homem renda_mulher n_homem n_mulher   dif
##    <chr>                       <dbl>        <dbl>   <int>    <int> <dbl>
##  1 Diretores                  13559.        6994.     393      228 6565.
##  2 Engenheiros                13997.       10446.    1850      409 3550.
##  3 Advogados                   8625.        5658.     244      342 2966.
##  4 Economistas                 8251.        5576.     168      184 2675.
##  5 Gerentes                    6599.        4463.    3659     3477 2136.
##  6 Técnicos                    4790.        2731.   10434    10493 2060.
##  7 Analistas                   5647.        4039.    2931     1869 1607.
##  8 Prof. Ensino Superior       7384.        6470.    1248     1062  914.
##  9 Outros                      3427.        2606.  121362   120682  820.
## 10 Médicos                     8232.        7704.    1840     1984  528.
## 11 Enfermeiros                 4166.        4439.     540     2139 -273.

Dentre as profissões selecionadas, apenas a de enfermagem tem remuneração média maior para as mulheres. Os homens levam vantagem em todos os demais. Colocando em gráfico:

 1# gráfico
 2diferenca_media = 3925.18 - 2846.727
 3setas = tibble(
 4  x1 = c(2.9, 9.6, 8.3),
 5  x2 = c(3.5, 9.2, 7.4),
 6  y1 = c(2000, 6000, 0),
 7  y2 = c(1200, 6300, -270)
 8)
 9
10diferencas %>%
11  ggplot(aes(x = reorder(profissao, desc(profissao)), y = dif)) +
12  geom_hline(yintercept = diferenca_media, color = "grey85") +
13  geom_segment(
14    aes(y = diferenca_media, yend = dif, xend = profissao),
15    color = "grey85", size = .7
16  ) +
17  geom_point(aes(size = renda_homem), color = "#F06337") +
18  scale_y_continuous(labels = scales::number) +
19  scale_size_continuous(labels = scales::number, range = c(1, 10)) +
20  annotate("text",
21    x = 2.5, y = 2000, size = 3.5, color = "grey85",
22    label = "a diferença média é de
23R$ 1.078"
24  ) +
25  annotate ("text",
26    x = 10.5, y = 5500, size = 3.5, color = "grey85",
27    label = paste("posições de executivo",
28    "é onde a diferença é maior",
29    "e é também onde estão
30os maiores salários",
31    sep = "
32"
33  )) +
34  annotate("text",
35  x = 9, y = 250, size = 3.5, color = "grey85",
36  label = paste(
37    "dentre essas profissões,",
38    "apenas as enfermeiras",
39    "recebem mais que homens",
40    sep = "
41"),
42  ) +
43  geom_curve(
44    data = setas, aes(x = x1, y = y1, xend = x2, yend = y2),
45    arrow = arrow(length = unit(0.1, "inch")),
46    size = 0.3, color = "grey85", curvature = 0.3
47  ) +
48  coord_flip() +
49  labs(
50    x = "",
51    y = "diferença salarial em R$",
52    size = "rem. média
53(homem)",
54    title = "desigualdade de gênero",
55    subtitle = paste("as disparidades salarias evidenciam o longo caminho na superação da colocação",
56    "da mulher como profissional de segunda categoria no mercado de trabalho",
57    sep = "
58"),
59    caption = "fonte: Rais 2017, Vitória/ES | elaboração: Alberson Miranda"
60  ) +
61  theme(
62    panel.grid = element_blank(),
63    plot.background = element_rect(fill = "#002538"),
64    panel.background = element_rect(fill = "#002538"),
65    text = element_text(
66      family = "Century Gothic",
67      color = "grey85"
68    ),
69    axis.text = element_text(color = "grey85", size = 10),
70    axis.ticks = element_line(color = "grey85"),
71    plot.title = element_text(size = 36, margin = margin(10, 0, 5, 10)),
72    plot.subtitle = element_text(
73      hjust = 0,
74      margin = margin(0, 0, 30, 0),
75      size = 16
76    ),
77    plot.caption = element_text(hjust = 1),
78    plot.title.position = "plot",
79    panel.border = element_rect(color = "grey85", fill = NA),
80    legend.background = element_rect(fill = "#002538"),
81    legend.key = element_rect(fill = "#002538")
82  )

Dentre essas profissões que escolhemos, vamos analisar o tamanho do efeito para médicos e executivos (dirigentes e diretores).

DISPARIDADE SALARIAL ENTRE MÉDICOS

Primeiramente, vamos verificar a significância da diferença. Como esperado, ela é significativa.

 1# calculando estatística t
 2estatistica_calculada = data %>%
 3  filter(str_detect(profissao, "Médico")) %>%
 4  specify(rem_media ~ sexo) %>%
 5  calculate(stat = "t", order = c("homem", "mulher"))
 6
 7# gerando distribuição nula
 8distr_nula = data %>%
 9  filter(str_detect(profissao, "Médico")) %>%
10  specify(rem_media ~ sexo) %>%
11  hypothesise(null = "independence") %>%
12  generate(reps = 100, type = "permute") %>%
13  calculate(stat = "t", order = c("homem", "mulher"))
14
15# calculando intervalo de confiança
16percentile_ci = get_ci(distr_nula)
17
18# visualizando distribuição nula e estatística do teste
19distr_nula %>%
20  visualize(method = "both") +
21  shade_p_value(estatistica_calculada, direction = "greater") +
22  shade_confidence_interval(endpoints = percentile_ci)
23
24# calculando p-valor
25distr_nula %>%
26  get_p_value(obs_stat = estatistica_calculada, direction = "greater")

## # A tibble: 1 x 1
##   p_value
##     <dbl>
## 1       0

Em seguida, vamos calcular o tamanho do efeito.

 1 # calculando a diferença padronizada
 2 cohens_d(
 3   data[data$sexo == "homem" &
 4     str_detect(data$profissao, "Médico"), ]$rem_media,
 5   data[data$sexo == "mulher" &
 6     str_detect(data$profissao, "Médico"), ]$rem_media
 7 )
 8
 9 # interpretando a estatística d
10 interpret_d(0.12, "gignac2016")
## Cohen's d |       95% CI
## ------------------------
## 0.12      | [0.06, 0.19]
## 
## - Estimated using pooled SD.
## [1] "very small"
## (Rules: gignac2016)

Com uma estatística d de 0.12, temos um efeito muito pequeno na escala de Gignac & Szodorai (2016). Isso significa que 54% das médicas da cidade de Vitória teriam remuneração abaixo do que o médico médio do município, enqaunto 46% receberiam mais que o médico médio.

DISPARIDADE SALARIAL EM CARGOS EXECUTIVOS

Repetindo o mesmo procedimento para as pessoas em cargos executivos, vemos que a diferença também é significativa.

 1# calculando estatística t
 2estatistica_calculada = data %>%
 3  filter(str_detect(profissao, "Dirigentes|Diretor")) %>%
 4  specify(rem_media ~ sexo) %>%
 5  calculate(stat = "t", order = c("homem", "mulher"))
 6
 7# gerando distribuição nula
 8distr_nula <- data %>%
 9  filter(str_detect(profissao, "Dirigentes|Diretor")) %>%
10  specify(rem_media ~ sexo) %>%
11  hypothesise(null = "independence") %>%
12  generate(reps = 100, type = "permute") %>%
13  calculate(stat = "t", order = c("homem", "mulher"))
14
15# calculando intervalo de confiança
16percentile_ci <- get_ci(distr_nula)
17
18# visualizando distribuição nula e estatística do teste
19distr_nula %>%
20  visualize(method = "both") +
21  shade_p_value(estatistica_calculada, direction = "greater") +
22  shade_confidence_interval(endpoints = percentile_ci)

E calculando o tamanho do efeito:

 1 # calculando a diferença padronizada
 2 cohens_d(
 3   data[data$sexo == "homem" &
 4     str_detect(data$profissao, "Dirigentes|Diretor"), ]$rem_media,
 5   data[data$sexo == "mulher" &
 6     str_detect(data$profissao, "Dirigentes|Diretor"), ]$rem_media
 7 )
 8
 9 # interpretando a estatística d
10 interpret_d(0.47, "gignac2016")
11 
## Cohen's d |       95% CI
## ------------------------
## 0.47      | [0.30, 0.63]
## 
## - Estimated using pooled SD.
## [1] "moderate"
## (Rules: gignac2016)

Com uma estatística d de 0.47, temos um efeito moderado na escala de Gignac & Szodorai (2016). Isso significa dizer que 69% das mulheres em posição de dirigentes e diretoras receberiam menos do que o homem médio na mesma posição.

CONSIDERAÇÕES

A escala de Gignac & Szodorai é apenas uma rule of thumb dentre outras — além dela, duas regras muito usadas são as regras de Cohen (1988) e de Sawilowsky (2009). Pode ser que para a natureza desse problema a interpretação sugerida por essas regras não seja razoável. Nelas, uma estatística d de 0.47 é considerada pequena ou moderada. No entanto, se tratando de disparidades salariais entre gêneros, podemos argumentar que uma taxa de 69% das mulheres com remuneração menor que a do homem médio seja um resultado expressivo, justificando uma escala específica.

De qualquer forma, a desigualdade é escancarada e ainda há várias variáveis a serem exploradas nesse contexto — se adicionarmos raça, qual será o comportamento?

Se você chegou até aqui e tem sugestão de variáveis, escalas para interpretação ou outras profissões para analisarmos, deixe seu comentário que a gente atualiza com um edit!


  1. Escolhi 2017 porque os dados mais atuais estão agrupados com Minas Gerais e Rio de Janeiro, ficando muito pesado para uma análise casual.↩︎

  2. Compreehensive R Archive Network.↩︎

  3. Há vários estudos que tratam disso, vide este exemplo.↩︎

  4. A tabela de interpretação de effect sizes pode ser consultada neste artigo.↩︎

comments powered by Disqus