Análise em R dos salários referentes a cientistas de dados na base RAIS (Para este caso: 390.583 linhas, 267.60 GB). De início é feito uma análise exploratória e em seguida é encontrado um modelo através de Regressão Linear. Projeto feito com auxílio da Semana Data Science na Prática da Curso-R.
Utilizando o datalake da iniciativa Base dos Dados. Armazenada na Google Cloud
codigos_cbo <- c("252515", "252525", "211110", "211205", "211210", "411035", "211215", "131120")
# Filtrando pelo cbo e os anos acima de 2013
tabela_microdados_vinculos_tbl <- tbl(conexao, "microdados_vinculos") |>
select(everything()) |>
filter(
ano >= 2013,
cbo_2002 %in% codigos_cbo
)
tabela_microdados_vinculos <- collect(tabela_microdados_vinculos_tbl)
readr::write_rds(tabela_microdados_vinculos, "tabela_microdados_vinculos.rds", compress = "xz")
tabela_microdados_vinculos <- readRDS("tabela_microdados_vinculos.rds")
tabela_2020 <- tabela_microdados_vinculos |>
filter(ano == "2020") |>
summarise(media2020 = mean(valor_remuneracao_media), mediana2020 = median(valor_remuneracao_media))
tabela_2020 |>
knitr::kable()
| media2020 | mediana2020 |
|---|---|
| 4823.555 | 3412.88 |
# pacote para plotagem de gráficos
library(ggplot2)
tabela_medias_anuais <- tabela_microdados_vinculos |>
group_by(ano) |>
summarise(mediaAnual = mean(valor_remuneracao_media))
ggplot(tabela_medias_anuais) +
aes(x = ano, y = mediaAnual) +
geom_col() +
scale_x_continuous(breaks = 2013:2020) +
labs(y = "Ano", x = "Salário Médio (R$)")

| ano | mediaAnual |
|---|---|
| 2013 | 3457.553 |
| 2014 | 3702.131 |
| 2015 | 4229.452 |
| 2016 | 4409.327 |
| 2017 | 4969.977 |
| 2018 | 4886.116 |
| 2019 | 4969.408 |
| 2020 | 4823.555 |
tabela_media_uf <- tabela_microdados_vinculos |>
group_by(sigla_uf) |>
summarise(
media_por_regiao = mean(valor_remuneracao_media)
)
library(forcats)
tabela_media_uf |>
mutate(sigla_uf = fct_reorder(sigla_uf, media_por_regiao)) |>
arrange(desc(sigla_uf)) |>
ggplot() +
aes(y = sigla_uf, x = media_por_regiao) +
geom_col() +
labs(y = "Unidade da Federação", x = "Média Salarial (R$)")


tabela_resumo_sexo <- tabela_microdados_vinculos |>
group_by(sexo) |>
summarise(
media = mean(valor_remuneracao_media),
mediana = median(valor_remuneracao_media)
) |>
mutate(sexo, sexo = ifelse(sexo == "1", "Masculino", "Feminino"))
ggplot(tabela_resumo_sexo) +
aes(x = sexo, y = media, fill = sexo) +
geom_col()
tabela_resumo_sexo |>
knitr::kable()
| sexo | media | mediana |
|---|---|---|
| Masculino | 5397.193 | 4000.0 |
| Feminino | 3649.779 | 2359.1 |


| raca_cor | media | mediana |
|---|---|---|
| Indígena | 3200.315 | 2814.955 |
| Branca | 4355.907 | 2977.775 |
| Preta | 3115.713 | 2148.900 |
| Amarela | 6800.561 | 5409.820 |
| Parda | 2797.077 | 1806.400 |
| Não Identificado | 5665.834 | 4779.850 |

library(ggplot2)
codigos_cbo <- c("252515", "252525", "211110", "211205", "211210", "411035", "211215", "131120")
tabela_medias_CBO <- tabela_microdados_vinculos |>
group_by(cbo_2002) |>
summarise(media_salario = median(valor_remuneracao_media))
ggplot(tabela_medias_CBO) +
aes(x = codigos_cbo, y = media_salario) +
geom_col() +
labs(y = "Salário médio (R$)", x = "Códigos por ocupação")

Dica: Distill is a publication format for scientific and technical writing, native to the web. Learn more about using Distill at https://rstudio.github.io/distill.