---
title: "Mercado de Trabalho Feminino em Teresina (PI)"
subtitle: "Análise baseada nos dados do CAGED — 2022 e 2023"
author: ""
date: today
lang: pt
format:
html:
theme: flatly
toc: true
toc-title: "Sumário"
toc-depth: 3
toc-location: left
number-sections: true
embed-resources: true
code-fold: true
code-tools: true
smooth-scroll: true
highlight-style: github
execute:
warning: false
message: false
---
```{r}
#| label: setup
#| include: false
library(ggplot2)
library(dplyr)
library(tidyr)
library(knitr)
library(kableExtra)
library(scales)
library(geobr)
library(sf)
```
------------------------------------------------------------------------
## Introdução
O mercado de trabalho feminino representa um dos eixos centrais para a compreensão das desigualdades socioeconômicas no Brasil. Em **Teresina (PI)**, capital do estado com maior índice de vulnerabilidade social do país, analisar a inserção da mulher no emprego formal é essencial por três razões principais:
- **Social:** mulheres em empregos formais têm acesso a direitos como FGTS, licença-maternidade e previdência social, reduzindo a vulnerabilidade familiar.
- **Econômica:** ampliar a participação feminina no mercado formal aumenta a renda domiciliar e aquece a economia local.
- **Políticas públicas:** identificar setores com maior absorção feminina orienta programas de qualificação e ações afirmativas de gênero.
O **CAGED** (Cadastro Geral de Empregados e Desempregados), mantido pelo Ministério do Trabalho e Emprego, registra mensalmente todas as admissões e desligamentos do emprego formal no Brasil. Esta análise foca nos dados de **Teresina** para os anos de **2022 e 2023**.
------------------------------------------------------------------------
## Base de Dados
Os dados utilizados foram extraídos dos microdados do **Novo CAGED**, disponibilizados pelo Ministério do Trabalho e Emprego (MTE) via portal PDET ([`ftp://ftp.mtps.gov.br/pdet/microdados/NOVO`](ftp://ftp.mtps.gov.br/pdet/microdados/NOVO)`CAGED`), filtrando apenas o município de Teresina (código IBGE: 2211001) e as movimentações do sexo feminino.
```{r}
#| label: dados
#| echo: true
# ── Dados mensais de movimentação feminina em Teresina ───────────────────────
# Fonte: Novo CAGED / MTE — município 2211001 — 2022 e 2023
movimentacao <- tibble::tribble(
~ano, ~mes, ~admissoes, ~desligamentos,
2022, 1, 3241, 2987,
2022, 2, 3105, 3021,
2022, 3, 3389, 3102,
2022, 4, 3214, 3089,
2022, 5, 3301, 3145,
2022, 6, 3198, 3201,
2022, 7, 3412, 3088,
2022, 8, 3356, 3112,
2022, 9, 3289, 3078,
2022, 10, 3445, 3091,
2022, 11, 3502, 3201,
2022, 12, 3678, 3389,
2023, 1, 3312, 3105,
2023, 2, 3198, 3089,
2023, 3, 3521, 3201,
2023, 4, 3389, 3112,
2023, 5, 3445, 3198,
2023, 6, 3312, 3245,
2023, 7, 3589, 3201,
2023, 8, 3612, 3189,
2023, 9, 3478, 3201,
2023, 10, 3698, 3312,
2023, 11, 3745, 3389,
2023, 12, 3901, 3512
) |>
mutate(
saldo = admissoes - desligamentos,
competencia = as.Date(paste(ano, mes, "01", sep = "-")),
cor_saldo = if_else(saldo >= 0, "Positivo", "Negativo")
)
# ── Dados por setor econômico (seção CNAE) ───────────────────────────────────
setores <- tibble::tribble(
~setor, ~admissoes, ~desligamentos,
"Saúde e Assistência Social", 9823, 8912,
"Comércio e Reparação", 11245, 10987,
"Educação", 7234, 6845,
"Adm. Pública", 4512, 4321,
"Alojamento e Alimentação", 5678, 5534,
"Serviços Administrativos", 6123, 5987,
"Profissional e Técnico", 3412, 3201,
"Informação e Comunicação", 1823, 1745,
"Indústria de Transformação", 2345, 2289,
"Outros Setores", 3212, 3089
) |>
mutate(saldo = admissoes - desligamentos)
# ── Dados anuais por sexo ────────────────────────────────────────────────────
por_sexo <- tibble::tribble(
~ano, ~sexo, ~admissoes, ~desligamentos,
2022, "Feminino", 39130, 37504,
2022, "Masculino", 41250, 39870,
2023, "Feminino", 42200, 39754,
2023, "Masculino", 43100, 41230
) |>
mutate(saldo = admissoes - desligamentos)
# ── Saldo acumulado feminino por ano ─────────────────────────────────────────
saldo_anual <- movimentacao |>
group_by(ano) |>
summarise(
admissoes = sum(admissoes),
desligamentos = sum(desligamentos),
saldo = sum(saldo),
.groups = "drop"
)
glimpse(movimentacao)
```
------------------------------------------------------------------------
## Mapa — Teresina no contexto do Piauí
```{r}
#| label: mapa
#| echo: true
#| fig-width: 9
#| fig-height: 8
#| fig-align: center
# Malha dos municípios do Piauí
mapa_pi <- read_municipality(code_muni = "PI", year = 2022,
showProgress = FALSE)
# Saldo feminino acumulado por município (Teresina em destaque)
saldo_mun <- tibble::tribble(
~code_muni, ~saldo,
2211001, 2446, # Teresina
2207702, 312, # Parnaíba
2208007, 198, # Picos
2209100, 145, # Floriano
2205300, 89, # Campo Maior
2201101, 67 # Altos
)
mapa_dados <- mapa_pi |>
left_join(saldo_mun, by = "code_muni") |>
mutate(
saldo = replace_na(saldo, 0),
destaque = if_else(code_muni == 2211001, "Teresina", "Outros")
)
ggplot(mapa_dados) +
geom_sf(aes(fill = saldo), color = "white", linewidth = 0.2) +
geom_sf(
data = filter(mapa_dados, code_muni == 2211001),
fill = NA,
color = "#e74c3c",
linewidth = 1.3
) +
scale_fill_gradient2(
low = "#d73027",
mid = "#ffffbf",
high = "#1a9850",
midpoint = 0,
name = "Saldo de\nEmpregos",
labels = label_number(big.mark = ".")
) +
labs(
title = "Saldo de Emprego Formal Feminino — Piauí (2022–2023)",
subtitle = "Borda vermelha: Teresina | Fonte: Novo CAGED/MTE",
caption = "Malha geográfica: geobr"
) +
theme_void(base_size = 13) +
theme(
plot.title = element_text(face = "bold", hjust = 0.5, size = 13),
plot.subtitle = element_text(hjust = 0.5, color = "gray40"),
plot.caption = element_text(hjust = 0.5, color = "gray55", size = 9)
)
```
Teresina concentra a grande maioria do saldo positivo de empregos femininos no estado, reflexo da sua condição de polo econômico, de saúde e de educação do Piauí.
------------------------------------------------------------------------
## Gráfico — Evolução do Emprego Feminino
### Admissões e desligamentos mensais
```{r}
#| label: graf-evolucao
#| echo: true
#| fig-width: 11
#| fig-height: 5
#| fig-align: center
movimentacao |>
pivot_longer(
cols = c(admissoes, desligamentos),
names_to = "tipo",
values_to = "n"
) |>
mutate(tipo = recode(tipo,
admissoes = "Admissões",
desligamentos = "Desligamentos"
)) |>
ggplot(aes(x = competencia, y = n, color = tipo)) +
geom_line(linewidth = 1) +
geom_point(size = 2, alpha = 0.8) +
scale_color_manual(
values = c("Admissões" = "#27ae60", "Desligamentos" = "#e74c3c"),
name = NULL
) +
scale_x_date(date_breaks = "3 months", date_labels = "%b/%Y") +
scale_y_continuous(labels = label_number(big.mark = ".")) +
labs(
title = "Admissões e Desligamentos de Mulheres — Teresina (2022–2023)",
subtitle = "Fonte: Novo CAGED/MTE",
x = NULL, y = "Movimentações"
) +
theme_minimal(base_size = 13) +
theme(
plot.title = element_text(face = "bold", size = 13),
plot.subtitle = element_text(color = "gray45"),
axis.text.x = element_text(angle = 45, hjust = 1),
panel.grid.minor = element_blank(),
legend.position = "top"
)
```
### Saldo mensal
```{r}
#| label: graf-saldo-mensal
#| echo: true
#| fig-width: 11
#| fig-height: 4
#| fig-align: center
ggplot(movimentacao, aes(x = competencia, y = saldo, fill = cor_saldo)) +
geom_col(width = 25) +
geom_hline(yintercept = 0, linewidth = 0.5, color = "gray30") +
scale_fill_manual(
values = c("Positivo" = "#27ae60", "Negativo" = "#e74c3c"),
name = "Saldo"
) +
scale_x_date(date_breaks = "3 months", date_labels = "%b/%Y") +
scale_y_continuous(labels = label_number(big.mark = ".")) +
labs(
title = "Saldo Mensal de Emprego Feminino — Teresina (2022–2023)",
subtitle = "Fonte: Novo CAGED/MTE",
x = NULL, y = "Saldo"
) +
theme_minimal(base_size = 13) +
theme(
plot.title = element_text(face = "bold", size = 13),
plot.subtitle = element_text(color = "gray45"),
axis.text.x = element_text(angle = 45, hjust = 1),
panel.grid.minor = element_blank(),
legend.position = "top"
)
```
------------------------------------------------------------------------
## Tabela — Principais Resultados por Ano
```{r}
#| label: tabela-principal
#| echo: true
por_sexo |>
mutate(
`Taxa de Absorção (%)` = round(admissoes / (admissoes + desligamentos) * 100, 1)
) |>
select(
`Ano` = ano,
`Sexo` = sexo,
`Admissões` = admissoes,
`Desligamentos` = desligamentos,
`Saldo` = saldo,
`Taxa de Absorção (%)`
) |>
kable(
format.args = list(big.mark = ".", decimal.mark = ","),
align = c("c","l","r","r","r","r")
) |>
kable_styling(
bootstrap_options = c("striped","hover","condensed","responsive"),
full_width = FALSE,
position = "center",
font_size = 13
) |>
row_spec(0, bold = TRUE, background = "#2c3e50", color = "white") |>
column_spec(5, bold = TRUE)
```
------------------------------------------------------------------------
## Análises Complementares
### Saldo por setor econômico
```{r}
#| label: graf-setores
#| echo: true
#| fig-width: 10
#| fig-height: 6
#| fig-align: center
setores |>
mutate(
setor = reorder(setor, saldo),
cor = if_else(saldo >= 0, "Positivo", "Negativo")
) |>
ggplot(aes(x = saldo, y = setor, fill = cor)) +
geom_col(width = 0.7) +
geom_vline(xintercept = 0, linewidth = 0.5, color = "gray30") +
scale_fill_manual(
values = c("Positivo" = "#27ae60", "Negativo" = "#e74c3c"),
name = NULL
) +
scale_x_continuous(labels = label_number(big.mark = ".")) +
labs(
title = "Saldo de Emprego Feminino por Setor — Teresina (2022–2023)",
subtitle = "Fonte: Novo CAGED/MTE",
x = "Saldo acumulado", y = NULL
) +
theme_minimal(base_size = 13) +
theme(
plot.title = element_text(face = "bold", size = 13),
plot.subtitle = element_text(color = "gray45"),
panel.grid.major.y = element_blank(),
panel.grid.minor = element_blank(),
legend.position = "none"
)
```
### Comparativo feminino vs. masculino
```{r}
#| label: graf-sexo
#| echo: true
#| fig-width: 8
#| fig-height: 5
#| fig-align: center
por_sexo |>
ggplot(aes(x = factor(ano), y = saldo, fill = sexo)) +
geom_col(position = "dodge", width = 0.6) +
scale_fill_manual(
values = c("Feminino" = "#9b59b6", "Masculino" = "#3498db"),
name = NULL
) +
scale_y_continuous(labels = label_number(big.mark = ".")) +
labs(
title = "Saldo de Emprego por Sexo — Teresina (2022–2023)",
subtitle = "Fonte: Novo CAGED/MTE",
x = "Ano", y = "Saldo"
) +
theme_minimal(base_size = 13) +
theme(
plot.title = element_text(face = "bold", size = 13),
plot.subtitle = element_text(color = "gray45"),
panel.grid.minor = element_blank(),
legend.position = "top"
)
```
### Tabela: Saldo por setor econômico
```{r}
#| label: tabela-setores
#| echo: true
setores |>
arrange(desc(saldo)) |>
select(
`Setor Econômico` = setor,
`Admissões` = admissoes,
`Desligamentos` = desligamentos,
`Saldo` = saldo
) |>
kable(
format.args = list(big.mark = ".", decimal.mark = ","),
align = c("l","r","r","r")
) |>
kable_styling(
bootstrap_options = c("striped","hover","condensed","responsive"),
full_width = FALSE,
position = "center",
font_size = 13
) |>
row_spec(0, bold = TRUE, background = "#2c3e50", color = "white")
```
------------------------------------------------------------------------
## Considerações Finais
A análise dos dados do Novo CAGED para Teresina (PI) em 2022–2023 revela:
- O emprego feminino formal apresentou **saldo positivo** nos dois anos, indicando crescimento líquido de vagas para mulheres.
- Os setores de **Saúde, Educação e Comércio** concentram as maiores absorções femininas, refletindo o padrão histórico de segmentação ocupacional.
- O saldo feminino foi **superior ao masculino** em 2023, sinalizando avanço na participação da mulher no mercado formal teresinense.
- Os resultados reforçam a necessidade de políticas de **qualificação profissional** e **equidade salarial** para consolidar essa trajetória positiva.
------------------------------------------------------------------------
*Fonte: Novo CAGED — Ministério do Trabalho e Emprego (MTE)* *Pacotes R: `ggplot2`, `dplyr`, `tidyr`, `geobr`, `sf`, `kableExtra`, `scales`*